VPC ピアリングを使用してプライベート インスタンスを作成する

このページでは、内部 IP アドレスを使用して Cloud Data Fusion インスタンスを作成する方法について説明します。インスタンスは、VPC ネットワークまたは共有 VPC ネットワーク内に作成します。

プライベート Cloud Data Fusion インスタンスには、次のような利点があります。

  • インスタンスへの接続は、Google Cloud プロジェクトのプライベート VPC ネットワークを介して確立されます。ネットワークを介したトラフィックは公共のインターネットを経由しません。

  • オンプレミス ネットワークは Cloud VPN または Cloud Interconnect を介して Google Cloud のプライベート VPC ネットワークに接続するため、インスタンスがオンプレミス リソース(リレーショナル データベースなど)に接続できます。外部からの Google Cloud へのアクセス手段を生じさせることなく、データベースなどのオンプレミス リソースにプライベート ネットワーク経由で安全にアクセスできます。

目標

  • VPC ネットワークまたは共有 VPC ネットワークを設定します。
  • テナント プロジェクトに Cloud Data Fusion インスタンスをデプロイするために使用する IP 範囲を割り当てます。
  • Cloud Data Fusion プライベート インスタンスを作成します。
  • Cloud Data Fusion インスタンスを含む VPC と、関連付けられたテナント プロジェクトを含む VPC の間に VPC ネットワーク ピアリングを設定します。
  • 共有 VPC ネットワークの場合は、Identity and Access Management(IAM)の権限を設定します。
  • プライベート インスタンスで Cloud Data Fusion バージョン 6.2.0 以前を使用している場合は、ファイアウォール ルールを作成します。
  • Dataproc サブネットで限定公開の Google アクセスを有効にして、さまざまな Google Cloud サービスが内部で通信できるようにします。

始める前に

  • Cloud Data Fusion のデプロイ アーキテクチャについては、ネットワーキングをご覧ください。

VPC ネットワークを設定する

VPC ネットワークまたは共有 VPC ネットワークをまだ作成していない場合は作成します。

VPC ネットワークを設定するには、IP アドレス範囲を割り当てる必要があります。

IP 範囲を割り当てる

VPC ネットワーク

共有 VPC ネットワークを使用していない場合、Cloud Data Fusion はインスタンスの作成時に、デフォルトで IP 範囲を割り当てます。

共有 VPC ネットワーク

共有 VPC を使用するには、Cloud Data Fusion インスタンスに IP 範囲を割り当てる必要があります。

Cloud Data Fusion インスタンスに IP 範囲を割り当てるには、次の手順に従います。

  1. Google Cloud コンソールで、[VPC ネットワーク] ページに移動します。

    [VPC ネットワーク] に移動

  2. [名前] 列で、プライベート Cloud Data Fusion インスタンスを作成する VPC ネットワークをクリックします。

    [VPC ネットワークの詳細] ページが開きます。

  3. [プライベート サービス接続] をクリックします。 プロンプトが表示されたら、[API を有効にする] をクリックして Service Networking API を有効にします。

    VPC ネットワークの詳細を構成します。

  4. [IP 範囲の割り当て] をクリックします。

    1. IP 範囲に名前を付けます。

    2. [IP 範囲] で [自動] をクリックします。

    3. 接頭辞の長さを 22 に指定します。

    4. [割り当て] をクリックします。

      IP 範囲を割り当てます。

プライベート インスタンスを作成する

VPC ネットワークまたは共有 VPC ネットワークにプライベート Cloud Data Fusion インスタンスを作成します。

VPC ネットワーク

VPC ネットワーク内にインスタンスを作成するには、Google Cloud コンソールまたは cURL を使用します。

Google Cloud コンソールを使用してプライベート インスタンスを作成すると、Cloud Data Fusion では、デフォルトで /22 IP アドレス範囲が割り当てられます。別の IP 範囲を選択するには、cURL コマンドを使用する必要があります。

Console

  1. [Data Fusion インスタンスの作成] ページに移動します。

    [Data Fusion インスタンスの作成] に移動

  2. インスタンスの名前と説明を入力します。

  3. インスタンスを作成する [リージョン] を入力します。

  4. Cloud Data Fusion のバージョンエディションを選択します。

  5. Dataproc で Cloud Data Fusion パイプラインの実行に使用する [Dataproc サービス アカウント] を指定します。デフォルト値の [Compute Engine アカウント] があらかじめ選択されています。

  6. [詳細オプション] メニューを開き、[プライベート IP を有効化] をクリックします。

  7. [ネットワーク] フィールドで、インスタンスを作成するネットワークを選択します。

  8. [作成] をクリックします。インスタンスの作成プロセスが完了するまで 30 分ほどかかります。

cURL

簡単に処理できるように、次の変数をエクスポートすることも、以下のコマンドで直接これらの値に置き換えることもできます。

export PROJECT=PROJECT_ID
export LOCATION=REGION
export DATA_FUSION_API_NAME=datafusion.googleapis.com

インスタンスを作成するには、その create() メソッドを呼び出します。

curl -H "Authorization: Bearer $(gcloud auth print-access-token)" -H "Content-Type: application/json" https://$DATA_FUSION_API_NAME/v1/projects/$PROJECT/locations/$LOCATION/instances?instance_id=INSTANCE_ID -X POST -d '{"description": "Private CDF instance created through REST.", "type": "ENTERPRISE", "privateInstance": true, "networkConfig": {"network": "NETWORK_NAME", "ipAllocation": "IP_RANGE"}}'

以下を置き換えます。

  • INSTANCE_ID: 新しいインスタンスが取得する ID 文字列。
  • NETWORK_NAME: プライベート インスタンスを作成する VPC ネットワークの名前。
  • IP_RANGE: 割り当てた IP 範囲。Google Cloud コンソールで IP 範囲を確認するには、[VPC ネットワークの詳細] > [プライベート サービス接続] > [内部 IP 範囲] に移動します。

共有 VPC ネットワーク

共有 VPC ネットワーク内にインスタンスを作成する場合は、Google Cloud コンソールではなく cURL を使用します。

cURL

簡単に処理できるように、次の変数をエクスポートすることも、以下のコマンドで直接これらの値に置き換えることもできます。

export PROJECT=PROJECT_ID
export LOCATION=REGION
export DATA_FUSION_API_NAME=datafusion.googleapis.com

インスタンスを作成するには、その create() メソッドを呼び出します。

curl -H "Authorization: Bearer $(gcloud auth print-access-token)" -H "Content-Type: application/json" https://$DATA_FUSION_API_NAME/v1/projects/$PROJECT/locations/$LOCATION/instances?instanceId=INSTANCE_ID -X POST -d '{"description": "Private CDF instance created through REST.", "type": "ENTERPRISE", "privateInstance": true, "networkConfig": {"network": "projects/SHARED_VPC_HOST_PROJECT_ID/global/networks/NETWORK_NAME", "ipAllocation": "IP_RANGE"}}'

以下を置き換えます。

  • INSTANCE_ID: 新しいインスタンスが取得する ID 文字列。
  • SHARED_VPC_HOST_PROJECT_ID: 共有 VPC ネットワークをホストしているプロジェクトの ID。
  • NETWORK_NAME: プライベート インスタンスを作成する VPC ネットワークの名前。
  • IP_RANGE: 割り当てた IP 範囲。 Google Cloud コンソールで IP 範囲を確認するには、[VPC ネットワークの詳細] > [プライベート サービス接続] > [内部 IP 範囲] に移動します。

VPC ネットワーク ピアリングを設定する

設計環境で使用する Cloud Data Fusion サービス(Wrangler、Connection Manager、Schema Validation など)は、テナント プロジェクト VPC からソースシステムを開始します。Cloud Data Fusion は、VPC ネットワーク ピアリングを使用して、インスタンスを含む VPC または共有 VPC へのネットワーク接続を確立します。VPC ネットワーク ピアリングを使用すると、Cloud Data Fusion は独自の VPC とそのコントロールを使用して、内部 IP アドレス経由でネットワーク上のリソースにアクセスできます。別のネットワークのリソースに接続するには、接続の手順のユースケースをご覧ください。

次のセクションでは、ネットワークと Cloud Data Fusion のテナント プロジェクト ネットワークの間にピアリング構成を作成する方法を説明します。

テナント プロジェクト ID を取得する

ピアリング構成を作成するには、テナント プロジェクト ID が必要です。

  1. Cloud Data Fusion の [インスタンス] ページに移動します。

    [インスタンス] に移動する

  2. [インスタンス名] 列で、インスタンスを選択します。

  3. [インスタンスの詳細] ページで、テナント プロジェクト ID をコピーします。この ID は、次の手順でピアリング接続を作成するときに必要になります。

ピアリング接続を作成する

  1. [VPC ネットワーク ピアリング] ページに移動します。

    [VPC ネットワーク ピアリング] に移動

  2. [接続を作成] > [続行] をクリックします。

  3. [ピアリング接続の作成] ページが表示されたら、次の操作を行います。

    1. ピアリング接続の名前を入力します。
    2. [VPC ネットワーク] で、Cloud Data Fusion インスタンスを含むネットワークを選択します。
    3. [ピアリングした VPC ネットワーク] で [別のプロジェクト] を選択します。
    4. [プロジェクト ID] に、このチュートリアルで前に確認したテナント プロジェクト ID を入力します。
    5. [VPC ネットワーク名] で、ネットワークを選択するか、「INSTANCE_REGION-INSTANCE_ID」と入力します。

      以下を置き換えます。

      • INSTANCE_REGION: Cloud Data Fusion インスタンスを作成したリージョン。
      • INSTANCE_ID: Cloud Data Fusion インスタンスの ID。
    6. ピアリング接続のインターネット プロトコル バージョンを選択して、VPC ネットワークとピアリングした VPC ネットワーク間で IPv4 ルートと IPv6 ルートを交換します。詳細については、VPC ネットワーク ピアリングをご覧ください。

    7. [カスタムルートのエクスポート] を選択して、カスタム ルートを VPC ネットワークからテナント VPC ネットワークにエクスポートできるようにします。

    8. パブリック IPv4 を使用したサブネット ルートを VPC ネットワークにインポートまたはエクスポートするかどうかを選択します。

    9. [作成] をクリックします。

    VPC ネットワーク ピアリングは、作成後すぐに有効になります。

IAM 権限を設定する

VPC ネットワーク

この手順をスキップして、ファイアウォール ルールの作成に進みます。

共有 VPC ネットワーク

共有 VPC ネットワーク内に Cloud Data Fusion インスタンスを作成する場合は、Compute ネットワーク ユーザーのロールを次のサービス アカウントに付与する必要があります。すべてのサブネットに対する権限を付与するには、共有 VPC ホスト プロジェクトにこのロールを付与します。

アクセスをさらに制御するには、このロールを特定のサブネットに付与し、ネットワーク閲覧者のロールをホスト プロジェクトに付与します。

  • Cloud Data Fusion サービス アカウント: service-PROJECT_NUMBER@gcp-sa-datafusion.iam.gserviceaccount.com
  • Dataproc サービス アカウント: service-PROJECT_NUMBER@dataproc-accounts.iam.gserviceaccount.com

PROJECT_NUMBER は、Cloud Data Fusion インスタンスを含む Google Cloud プロジェクトの数です。

詳細については、必要なサービス アカウントへのアクセスの許可をご覧ください。

ファイアウォール ルールの作成

プライベート Cloud Data Fusion インスタンスの作成時に指定した IP 範囲からの受信 SSH 接続を許可するファイアウォール ルールを VPC ネットワーク上に作成します。

この手順は、Cloud Data Fusion バージョン 6.2.0 より前の場合に必要です。 パイプラインを実行する Cloud Data Fusion クラスタと Dataproc クラスタ間の通信を可能にします。

ファイアウォール ルールを作成するには、Google Cloud コンソールを使用することも、gcloud CLI を使用することもできます。

Console

ファイアウォール ルールの作成をご覧ください。

gcloud

次のコマンドを実行します。

gcloud compute firewall-rules create FIREWALL_NAME-allow-ssh --allow=tcp:22 --source-ranges=IP_RANGE --network=NETWORK_NAME --project=PROJECT_ID

以下を置き換えます。

  • FIREWALL_NAME: 作成するファイアウォール ルールの名前。
  • IP_RANGE: 割り当てた IP 範囲
  • NETWORK_NAME: ファイアウォール ルールが適用されるネットワークの名前。プライベート インスタンスを作成した VPC ネットワークの名前です。
  • PROJECT_ID: VPC ネットワークをホストしているプロジェクトの ID。

接続の手順のユースケース

以降のセクションでは、プライベート インスタンスの接続関連のユースケースについて説明します。

限定公開の Google アクセスを有効にする

内部 IP アドレス経由でリソースにアクセスするには、Cloud Data Fusion が Dataproc クラスタを作成し、限定公開の Google アクセスがあるサブネットでデータ パイプラインを実行する必要があります。Dataproc クラスタを含むサブネットで限定公開の Google アクセスを有効にする必要があります。

  • Dataproc クラスタが起動されるリージョンにサブネットが 1 つしかない場合、クラスタはそのサブネットで起動されます。
  • リージョンに複数のサブネットがある場合は、Dataproc クラスタを起動するために限定公開の Google アクセスを持つサブネットを選択するように Cloud Data Fusion を構成する必要があります。

サブネットで限定公開の Google アクセスを有効にするには、限定公開の Google アクセスの構成をご覧ください。

省略可: 他のソースに接続する

Cloud Data Fusion でプライベート インスタンスを作成したら、次のユースケースのように、他のソースに接続できます。

省略可: DNS ピアリングを有効にする

次の場合に DNS ピアリングを有効にします。

  • Cloud Data Fusion が IP アドレスではなくホスト名を介してシステムに接続する場合
  • ターゲット システムがロードバランサの背後にデプロイされている場合(一部の SAP デプロイなど)

次のステップ