Snowflake 転送のプライベート接続を構成する
このガイドでは、Snowflake から BigQuery へのプライベート データ転送を作成するためにプライベート接続を構成する方法について説明します。プライベート データ転送を使用すると、プライベート ネットワーク内でデータをあるソースから別のソースに転送し、公共のインターネット経由でデータを転送する際のセキュリティ リスクを軽減できます。
以降のセクションでは、Snowflake の転送を作成する前にプライベート接続を構成するために必要な手順について説明します。
プライベート転送は、Amazon Web Services(AWS)、Microsoft Azure、 Google Cloudでホストされている Snowflake インスタンスでサポートされています。
Snowflake へのプライベート リンクを作成する
Snowflake アカウントをクラウド プロバイダに接続するプライベート リンクを作成します。詳細については、次のいずれかのオプションを選択してください。
AWS
AWS PrivateLink を構成して、Snowflake アカウントを AWS アカウントに接続します。AWS アカウントには、Snowflake 転送に必要な Amazon S3 ステージング バケットが含まれている必要があります。
Azure
Azure Private Link を構成して、Azure Virtual Network(VNet)を Azure の Snowflake VNet に接続します。Azure アカウントには、Snowflake 転送に必要な Blob ステージング バケットが含まれている必要があります。
Google Cloud
Google Cloud Private Service Connect を構成して、Virtual Private Cloud(VPC)ネットワーク サブネットを Google Cloudでホストされている Snowflake アカウントに接続します。Google Cloud には、Snowflake 転送に必要な Cloud Storage ステージング バケットが必要です。
Cross-Cloud Interconnect または HA VPN を設定する
AWS または Azure から Cross-Cloud Interconnect または HA VPN を設定します。この手順は、Google Cloudでホストされている Snowflake アカウントでは必要ありません。
AWS
高可用性 VPN を使用すると、暗号化された VPN トンネルを介してデータを転送できます。プライベート Snowflake 転送に HA VPN を使用するには、 Google Cloud と AWS の間に HA VPN 接続を作成するをご覧ください。
Cross-Cloud Interconnect 接続は、クラウド プロバイダ間に専用のプライベート リンクを作成し、低レイテンシ要件のある大規模なデータ転送に適しています。プライベート Snowflake 転送に Cross-Cloud Interconnect を使用するには、AWS に接続するをご覧ください。
Azure
高可用性 VPN を使用すると、暗号化された VPN トンネルを介してデータを転送できます。プライベート Snowflake 転送に HA VPN を使用するには、 Google Cloud と Azure の間に HA VPN 接続を作成するをご覧ください。
Cross-Cloud Interconnect 接続は、クラウド プロバイダ間に専用のプライベート リンクを作成し、低レイテンシ要件のある大規模なデータ転送に適しています。プライベート Snowflake 転送に Cross-Cloud Interconnect を使用するには、Azure に接続するをご覧ください。
プロキシ VM を作成する
プライベート接続を完了するには、データが公共のインターネットに到達することなく、データソース間の接続を完了するためにプロキシ VM が必要です。この手順は、AWS、Azure、 Google Cloudでホストされている Snowflake インスタンスに必要です。
Snowflake プライベート転送用のプロキシ VM を作成して構成するには、次の操作を行います。
- コンシューマー VPC ネットワーク内に1 つ以上の Compute Engine VM インスタンスを作成します。
- HAProxy や Nginx などの TCP プロキシ ソフトウェアをダウンロードし、次のように構成します。
- ポートを指定します。例:
443 - 受信したすべての TCP トラフィックを Snowflake インスタンスのプライベート ホスト名とポートに転送します。
- ポートを指定します。例:
- コンシューマー VPC ネットワークで構成された DNS を介して Snowflake プライベート ホスト名を解決するように VM を構成します。
- 次の手順で内部パススルー ロードバランサを設定します。
サービス アタッチメントを作成する
Private Service Connect を使用してネットワーク アタッチメントを作成し、サービスを公開します。この手順は、AWS、Azure、 Google Cloudでホストされている Snowflake インスタンスに必要です。
サービス アタッチメントは、BigQuery データセットと同じリージョンに存在する必要があります。
サービスで明示的な承認(connection-preference が ACCEPT_MANUAL に設定されている)を使用している場合、Snowflake のプライベート データ転送で使用されるサービス アカウントには、次の IAM 権限が必要です。
compute.serviceAttachments.getcompute.serviceAttachments.updatecompute.regionOperations.get
サービス アタッチメントを作成したら、サービス アタッチメントの URI をメモします。この URI は、Snowflake 転送構成を作成するときに必要になります。
エンドポイントの作成
AWS アカウントまたは Azure アカウントにエンドポイントを作成します。この手順は、Google Cloudでホストされている Snowflake アカウントでは必要ありません。
AWS
AWS で、Amazon S3 に接続する VPC エンドポイントを作成します。詳細については、インターフェース VPC エンドポイントを使用して AWS サービスにアクセスするをご覧ください。
Azure
Azure のストレージ アカウントにプライベート エンドポイントを構成します。詳細については、Azure Storage にプライベート エンドポイントを使用するをご覧ください。
Storage Transfer Service には *.blob.core.microsoft.net エンドポイントが必要です。*.dfs.core.microsoft.net エンドポイントはサポートされていません。
作成したら、エンドポイントの IP アドレスをメモします。次のセクションでロードバランサを作成するときに、IP アドレスを指定する必要があります。
ネットワーク ロードバランサを作成する
ハイブリッド接続でリージョン内部プロキシ ネットワーク ロードバランサ(NLB)を設定します。前のセクションで作成した Amazon S3 VPC エンドポイントまたは Azure Storage プライベート エンドポイントにトラフィックを転送するロードバランサを作成できます。詳細については、ハイブリッド接続でリージョン内部プロキシ ネットワーク ロードバランサを設定するをご覧ください。
NLB を登録する
ネットワーク NLB を作成したら、Storage Transfer Service の Service Directory に登録します。詳細については、Service Directory に NLB を登録するをご覧ください。
Service Directory へのリンクをメモします。Snowflake 転送構成を作成する際に、サービスのセルフリンクが必要になります。
プライベート Snowflake 転送構成を作成する
Snowflake 転送を作成します。転送構成を設定する際は、次の操作を行います。
コンソール
- [プライベート ネットワークを使用する] で [True] を選択します。
- [PSC サービス アタッチメント] に、サービス アタッチメントの URI を入力します。サービス アタッチメント URI の検索については、公開サービスの詳細を表示するをご覧ください。サービス アタッチメント URI の形式は
projects/PROJECT_ID/regions/REGION/serviceAttachments/SERVICE_ATTACHMENTです。 - [プライベート ネットワーク サービス] に、NLB サービスのセルフリンクを入力します。形式は
projects/PROJECT_ID/locations/LOCATION/namespaces/NAMESPACE/services/SERVICE_NAMEです。
bq
use_private_networkパラメータをTRUEに設定します。service_attachmentパラメータには、サービス アタッチメント URI を指定します。サービス アタッチメント URI の検索については、公開サービスの詳細を表示するをご覧ください。サービス アタッチメント URI の形式はprojects/PROJECT_ID/regions/REGION/serviceAttachments/SERVICE_ATTACHMENTです。private_network_serviceパラメータには、NLB サービスのセルフリンクを指定します。形式はprojects/PROJECT_ID/locations/LOCATION/namespaces/NAMESPACE/services/SERVICE_NAMEです。