ファイル システム転送ジョブを作成する前に、必要な 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権限を含む Service Usage 管理者 IAM ロール(roles/serviceusage.serviceUsageAdmin)が必要です。詳しくは、ロールを付与する方法をご覧ください。
Docker のインストール
Google Cloud CLI または Docker を使用して転送エージェントをインストールして実行する場合は、物理または仮想の Linux マシンに Docker Engine をインストールします。
Podman を使用して転送エージェントをインストールして実行する場合は、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