ファイル システム転送ジョブを作成する前に、必要な API を有効にして Docker をインストールする必要があります。
初回設定中にエラーが発生した場合は、設定手順に必要な権限がログイン ユーザーに付与されていることを確認してください。多くの場合、これらの権限はすべてのユーザーに付与されているわけではありません。プロジェクト管理者のサポートが必要になることがあります。
システム要件
Storage Transfer Service をファイル システム転送で使用するには、以下が必要です。
POSIX 準拠のソースまたは宛先。
保持ポリシーが設定されていない Cloud Storage バケット保持ポリシーが設定されたバケットに転送するには、 保持ポリシーが設定されたバケットに転送するをご覧ください。
送信接続用に TCP ポート 443(HTTPS)が開いていること。
転送エージェント マシンの要件は次のとおりです。
転送するデータにアクセス可能な Docker 対応の 64 ビット Linux サーバーまたは仮想マシン。 Docker Community Edition は、CentOS、Debian、Fedora、Ubuntu オペレーティング システムをサポートしています。
他の Linux オペレーティング システムを使用するには、Docker Enterprise をご覧ください。
効率的な処理を行うには、コンテナあたり少なくとも 8 GB のメモリと 4 個以上の CPU を割り当てる必要があります。
ulimit -uによる構成など、許可されるプロセス ID の数にシステムレベルまたはユーザーレベルの制約がある場合は、実行するエージェントの数を考慮する必要があります。個々のエージェント プロセスは数百のスレッドを作成する場合があります。転送エージェントを実行するときは、プロセス ID の上限を削除することをおすすめします。Podman を使用してエージェント コンテナを作成するには、Storage Transfer Service エージェント スレッドに対応できる十分な
--pids-limit値を指定する必要があります。デフォルトの--pids-limit値は 2048 です。これにより、複数のエージェントを実行すると問題が発生する可能性があります。コンテナごとに無制限のプロセス ID を許可するには、--pids-limit=-1を設定することをおすすめします。
必要なエンドポイント
転送エージェントは、次の DNS エンドポイントにアクセスできる必要があります。エージェントは構成に応じてこれらのエンドポイントのサブセットのみを使用しますが、すべてのエンドポイントを許可して完全な機能を実現する必要があります。
Google エンドポイント
必要なエンドポイントのリストは変更される可能性があります。転送の中断を防ぐため、組織のセキュリティ ポリシーで許可されている場合は、ベース googleapis.com ドメインと gcr.io を許可することをおすすめします。
| エンドポイント | サービス | 目的 |
|---|---|---|
storagetransfer.googleapis.com |
Storage Transfer Service | エージェントが Storage Transfer Service に接続し、転送タスクを受信して、ヘルス ステータスを報告するために使用します。 |
storage.googleapis.com |
Cloud Storage | Cloud Storage バケットへのオブジェクトの一覧表示、読み取り、書き込みなど、コアデータ転送オペレーションの実行に使用します。 |
www.googleapis.com |
Google API | 転送エージェントのバージョン アップデートをダウンロードするために使用します。 |
monitoring.googleapis.com |
Cloud Monitoring | 転送パフォーマンスとエージェントのヘルス指標をエクスポートするために使用します。 |
logging.googleapis.com |
Cloud Logging | エージェントのシステムログとアクティビティ ログを公開するために使用します。 |
oauth2.googleapis.com |
Google OAuth 2.0 | 認証情報を安全に交換し、API 認証用の有効期間の短いアクセス トークンを取得するために使用します。 |
iamcredentials.googleapis.com |
IAM サービス アカウントの認証情報 | エージェントが特定のサービス アカウントを偽装するように構成されている場合に、一時的な認証情報を生成するために使用します。 |
cloudresourcemanager.googleapis.com |
Resource Manager | エージェントのインストールと設定時に、プロジェクトの構成と権限を確認するために使用します。 |
gcr.io |
Container Registry | インストール時に Storage Transfer Service エージェント コンテナ イメージをダウンロードするために使用します。 |
転送パフォーマンスを最適化するため、エージェントはさまざまなエンドポイントと通信する際に、HTTP/1.1 や HTTP/2 などのさまざまな HTTP プロトコルを使用する場合があります。構成したプロキシまたはファイアウォールが、これらのすべてのプロトコル タイプを適切にサポートし、パフォーマンスを発揮することを確認してください。
リージョン エンドポイント
リージョン エンドポイント
(例: storage.REGION.rep.googleapis.com)
を使用するようにエージェントを構成している場合は、標準の storage.googleapis.com エンドポイントではなく、プロキシまたはファイアウォール ルールで特定のドメイン名を許可する必要があります。
ソース ストレージ エンドポイントと宛先ストレージ エンドポイント
エージェントは、S3 互換 API、HDFS クラスタ、POSIX 用の NFS など、特定のソース ストレージ システムと宛先ストレージ システムへのネットワーク アクセスも必要とします。
ジョブとエージェントのスケーリング制限
Storage Transfer Service では、転送ジョブとエージェントに次のスケーリング制限があります。
- ジョブあたり 10 億ファイル未満
- 帯域幅上限が 1 MBps 以上
- エージェント プールあたり最大 100 個のエージェント
- プロジェクトあたり最大 800 のエージェント プール
API を有効にする
-
Google Storage Transfer API を有効にします。
API を有効にするために必要なロール
API を有効にするには、
serviceusage.services.enable権限が必要です。プロジェクトを作成した場合は、オーナーロール(roles/owner)を通じてこの権限が付与されている可能性があります。それ以外の場合は、Service Usage 管理者ロール(roles/serviceusage.serviceUsageAdmin)を通じてこの権限を取得できます。ロールを付与する方法をご覧ください。
Docker のインストール
Google Cloud CLI または Docker を使用して 転送エージェントをインストールして実行する場合は、 物理または仮想の Linux マシンに Docker Engine をインストールします。
Podman を使用して転送エージェントをインストールして実行する場合は、 the Podman 固有のインストール手順に直接スキップしてください。
curl -fsSL https://get.docker.com -o get-docker.sh
sudo sh get-docker.sh
sudo systemctl enable docker --now
インストール エラーが発生した場合は、 トラブルシューティングをご覧ください。
Docker に認証を許可する
Docker コンテナを gcloudのデフォルト認証情報で認証できるようにするには、次のコマンドを実行してアプリケーションのデフォルト認証情報のファイルを含む Docker ボリュームを作成します。
sudo docker run -ti --name gcloud-config google/cloud-sdk gcloud auth application-default login