Google Cloud Cross-Cloud Interconnect または Partner Interconnect を使用して確立されたプライベート ネットワーク接続は、AWS または Azure と Cloud Storage 間のデータ転送に大きなメリットをもたらします。
- 費用を最適化できる可能性がある: 下り(外向き)の費用を削減できる可能性があります。 既存の相互接続を使用しているお客様や、大規模なデータ転送や定期的なデータ転送を行っているお客様にとって、長期的に大幅な費用削減につながる可能性があります。
- 専用のネットワーク帯域幅: 相互接続を使用すると、一貫した 大容量のスループットと低レイテンシを実現できます。これは、大規模で 時間制約のある移行やリアルタイムのデータ同期に不可欠です。
- コンプライアンス要件を満たす: 規制要件によりデータをパブリック インターネットから切り離す必要があるワークロードに最適です。この機能を使用すると、相互接続を使用してデータを非公開で転送し、コンプライアンスの遵守、データ主権のサポート、監査の簡素化を実現できます。
概要
このドキュメントでは、次の手順について説明します。
- Cross-Cloud Interconnect を注文して構成する
- S3 または Azure にエンドポイントを作成する
- ハイブリッド接続でリージョン内部プロキシ ネットワーク ロードバランサを設定する
- ロードバランサを Service Directory に登録する
- 転送を作成する
- トラフィックが相互接続を使用していることを確認する
必要な権限
以下の各セクションを完了するには、特定の権限が必要です。 これらの権限は、手順のセットのドキュメントに記載されています。
相互接続のオプション
Storage Transfer Service は、 Cross-Cloud Interconnect (CCI)または Partner Interconnectを介して AWS と Azure からデータを転送できます。
以下の手順は CCI に固有のものですが、Partner Interconnect のネットワークを構成する場合にも適用されます。
Cross-Cloud Interconnect を注文して構成する
Cross-Cloud Interconnect は、Google Cloud と他のクラウド プロバイダ間の専用の物理接続です。
CCI 接続がすでにある場合は、次のセクションに進んでください。
AWS
Amazon Web Services に接続するの手順に沿って、新しい Cross-Cloud Interconnect を注文して構成します。Google Cloud と AWS でネットワークを構成するには、適切な権限が必要です。
AWS と Google Cloud 間の CCI を注文して構成する手順について説明している動画をご覧ください。
Azure
Microsoft Azure に接続する の手順に沿って、新しい Cross-Cloud Interconnect を注文して構成します。Google Cloud と Azure でネットワークを構成するには、適切な権限が必要です。
Cloud Storage バケットがリージョン バケットの場合は、ネットワーク レイテンシを短縮するために、バケットと同じリージョンに CCI を構成する必要があります。
S3 または Azure にエンドポイントを作成する
S3 または Azure アカウントにエンドポイントを作成します。
AWS
Amazon Web Services アカウントで、S3 に接続する VPC エンドポイントを作成します。
AWS の手順(インターフェース VPC エンドポイント を使用して AWS サービスにアクセスする)に沿って、エンドポイントを作成します。
Azure
次の手順に沿って、Azure のストレージ アカウントにプライベート エンドポイントを構成します。
Storage Transfer Service には *.blob.core.microsoft.net エンドポイントが必要です。*.dfs.core.microsoft.net エンドポイントは対象外です。
作成したら、エンドポイントの IP アドレスをメモします。次のセクションでロードバランサを作成するときに、IP アドレスを指定する必要があります。
ハイブリッド接続でリージョン内部プロキシ ネットワーク ロードバランサを設定する
Google Cloud で、ハイブリッド接続でリージョン内部プロキシ ネットワーク ロードバランサを設定します。これにより、ロードバランサと同じ VPC ネットワークで実行されているクライアントに制限された内部 IP アドレスが提供され、前のセクションで作成した S3 VPC エンドポイントまたは Azure Storage プライベート エンドポイントにトラフィックがルーティングされます。
ロードバランサは、Cloud Interconnect とのインターフェースとなる VLAN アタッチメントと同じプロジェクトと VPC ネットワークに作成する必要があります。相互接続自体は同じ組織内の別のプロジェクトに配置できますが、アタッチメントはロードバランサと同じ VPC とリージョンに配置する必要があります。
[ハイブリッド接続 NEG にエンドポイントを追加] というラベルの手順に到達したら、S3 VPC エンドポイントまたは Azure Storage プライベート エンドポイントの IP アドレスを指定します。
次のセクションで指定する必要があるため、NLB のフロントエンド IP アドレスとポートをメモしておきます。
接続を検証する
続行する前に、ロードバランサがリモート ストレージ エンドポイントに接続できることを確認することをおすすめします。
手順は次のとおりです。
- ロードバランサと同じ VPC ネットワークに Compute Engine VM を作成します。
VM から
curlを使用して、ロードバランサの IP アドレスとポートへの接続をテストします。curl -v --resolve HOSTNAME:PORT:LOAD_BALANCER_IP https://HOSTNAME次のように置き換えます。
- HOSTNAME は、ソース ストレージ プロバイダのホスト名です。
- AWS S3 の場合は、バケットのリージョンの S3 API エンドポイント(
s3.us-west-1.amazonaws.comなど)を使用します。 - Azure Storage の場合は、ストレージ アカウントの Blob エンドポイント(
mystorageaccount.blob.core.windows.netなど)を使用します。
- AWS S3 の場合は、バケットのリージョンの S3 API エンドポイント(
- PORT は、ロードバランサの
転送ルールで構成したポートです。通常は
443です。 - LOAD_BALANCER_IP は、ロードバランサのフロントエンド IP アドレスです。
- HOSTNAME は、ソース ストレージ プロバイダのホスト名です。
リモート エンドポイントからのレスポンス(エラーを含む)は、接続が成功したことを示します。接続がタイムアウトした場合は、ネットワーク設定に誤りがあるため、続行する前に解決する必要があります。
NLB を Service Directory に登録する
Service Directory に NLB を登録します。Storage Transfer Service は Service Directory を使用してロードバランサのアドレスを解決し、直接接続します。
手順に沿って、 内部ロードバランサを登録します。 転送ルールを指定するときに作成したロードバランサの IP アドレスとポートを使用します。
作成したら、サービスのセルフリンクをメモします。形式は projects/{project_id}/locations/{location}/namespaces/{namespace}/services/{service} です。
この値は、転送ジョブを作成するときに必要になります。
転送を作成する
サービス エージェントに次の権限を付与します。サービス エージェントの取得とサービス エージェントへの権限の付与の手順については、 Google マネージド サービス エージェント の権限をご覧ください。
- Service Directory 閲覧者 (roles/servicedirectory.viewer) Service Directory リソースを含むプロジェクトのプロジェクト レベル。
- VPC を含むプロジェクトのプロジェクト レベルでの Private Service Connect 承認済みサービス (roles/servicedirectory.pscAuthorizedService) 。
- 宛先バケットに対する Storage レガシー バケット書き込み (roles/storage.legacyBucketWriter) 。
Cross-Cloud Interconnect を使用する転送ジョブを作成するには、Storage Transfer Service REST API を使用する必要があります。次のようにリクエストを送信します。
privateNetworkService フィールドに注目してください。ここに Service Directory サービスの selfLink を指定します。
AWS
POST https://storagetransfer.googleapis.com/v1/transferJobs
{
"status": "ENABLED",
"projectId": "PROJECT_ID",
"transferSpec": {
"awsS3DataSource": {
"privateNetworkService": "SERVICE_SELF_LINK",
"bucketName": "S3_BUCKET_NAME",
"awsAccessKey": {
"accessKeyId": "ACCESS_KEY_ID",
"secretAccessKey": "SECRET_ACCESS_KEY"
}
},
"gcsDataSink": {
"bucketName": "GCS_BUCKET_NAME"
}
}
}
Azure
POST https://storagetransfer.googleapis.com/v1/transferJobs
{
"status": "ENABLED",
"projectId": "PROJECT_ID",
"transferSpec": {
"azureBlobStorageDataSource": {
"privateNetworkService": "SERVICE_SELF_LINK",
"storageAccount": "AZURE_SOURCE_NAME",
"container": "AZURE_CONTAINER",
"azureCredentials": {
"sasToken": "AZURE_SAS_TOKEN",
}
},
"gcsDataSink": {
"bucketName": "GCS_BUCKET_NAME"
}
}
}
次のように置き換えます。
- SERVICE_SELF_LINK は、Service Directory
サービスのセルフリンクです。形式は
projects/{project_id}/locations/{location}/namespaces/{namespace}/services/{service}です。
その他のフィールドについては、transferSpec リファレンス ドキュメントをご覧ください。
トラフィックが相互接続を使用していることを確認する
Cloud Monitoring を使用して、AWS または Azure から相互接続を通過するトラフィックを確認します。
- Google Cloud コンソールで、ハイブリッド接続 > Cloud Interconnect に移動します。
- AWS/Azure 環境に接続する VLAN アタッチメントを選択します。
- 接続の詳細ページで、[モニタリング] タブを選択します。データ転送を示す指標を探します。詳細は以下のとおりです。
- Ingress Bytes: この指標は、AWS または Azure から Google Cloud VPC に入るデータを示します。
- 動作ステータス: 物理接続と BGP セッションの両方が正常な動作状態であることを確認します。