このページでは、内部 IP アドレスを持つ Cloud Data Fusion インスタンスの作成方法を説明します。インスタンスは、VPC ネットワークまたは 共有 VPC ネットワーク内に作成します。
プライベート Cloud Data Fusion インスタンスには、次の利点があります。
インスタンスへの接続が、Google Cloud プロジェクトのプライベート VPC ネットワークを介して確立されます。ネットワーク上のトラフィックは、公共のインターネットを経由しません。
オンプレミス ネットワークは Cloud VPN または Cloud Interconnect を介して Google Cloud のプライベート VPC ネットワークに接続するため、インスタンスがオンプレミス リソース(リレーショナル データベースなど)に接続できます。外部からの Google Cloud へのアクセス手段を生じさせることなく、データベースなどのオンプレミス リソースにプライベート ネットワーク経由で安全にアクセスできます。
VPC ネットワークを設定する
VPC ネットワークまたは共有 VPC ネットワークをまだ作成していない場合は作成します。
VPC ネットワークを設定するには、限定公開の Google アクセスを有効にし、IP 範囲を割り当てる必要があります。
限定公開の Google アクセスを有効にする
プライベート Cloud Data Fusion インスタンスを作成するリージョンには、限定公開の Google アクセスが有効にされたサブネットが必要です。
サブネットに対して限定公開の Google アクセスを有効にするには、限定公開の Google アクセスの構成をご覧ください。
IP 範囲を割り当てる
VPC ネットワーク
共有 VPC ネットワークを使用していない場合、Cloud Data Fusion はインスタンスの作成時に、デフォルトで IP 範囲を割り当てます。
共有 VPC ネットワーク
共有 VPC ネットワークを使用するには、Cloud Data Fusion インスタンスに IP 範囲を割り当てる必要があります。パイプラインは、Cloud Data Fusion インスタンスに割り当てられたものとは異なる IP 範囲を使用する Dataproc クラスタで実行されます。
Cloud Data Fusion インスタンスに IP 範囲を割り当てるには、次の手順に従います。
Google Cloud コンソールで、[VPC ネットワーク] ページに移動します。
[名前] 列で、プライベート Cloud Data Fusion インスタンスを作成する VPC ネットワークをクリックします。
[VPC ネットワークの詳細] ページが開きます。
[プライベート サービス接続] をクリックします。 プロンプトが表示されたら、[API を有効にする] をクリックして Service Networking API を有効にします。
[IP 範囲の割り当て] をクリックします。
IP 範囲に名前を付けます。
[IP 範囲] で [自動] をクリックします。
接頭辞の長さを
22
に指定します。[割り当て] をクリックします。
プライベート インスタンスを作成する
VPC ネットワークまたは共有 VPC ネットワークにプライベート Cloud Data Fusion インスタンスを作成します。
VPC ネットワーク
VPC ネットワーク内にインスタンスを作成するには、Google Cloud コンソールまたは cURL を使用します。
Google Cloud コンソールを使用してプライベート インスタンスを作成すると、Cloud Data Fusion では、デフォルトで /22
IP アドレス範囲が割り当てられます。別の IP 範囲を選択するには、cURL コマンドを使用する必要があります。
Console
[Data Fusion インスタンスの作成] ページに移動します。
インスタンスのインスタンス名と説明を入力します。
インスタンスを作成する [リージョン] を入力します。そのリージョンで限定公開の Google アクセスが有効になっている必要があります。
Cloud Data Fusion のバージョンとエディションを選択します。
Dataproc で Cloud Data Fusion パイプラインの実行に使用する [Dataproc サービス アカウント] を指定します。デフォルト値の [Compute Engine アカウント] があらかじめ選択されています。
[詳細オプション] メニューを開き、[プライベート IP を有効化] をクリックします。
[ネットワーク] フィールドで、インスタンスを作成するネットワークを選択します。
[CREATE] をクリックします。インスタンスの作成プロセスが完了するまで 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 は、VPC ネットワーク ピアリングを使用して、VPC または共有 VPC ネットワークへのネットワーク接続を確立します。これにより、Cloud Data Fusion はプライベート IP アドレスを使用してネットワーク上のリソースにアクセスできます。
このセクションでは、ネットワークと Cloud Data Fusion のテナント プロジェクト ネットワークの間にピアリング構成を作成する方法を説明します。
外部ソースに接続する
外部ネットワーク(オンプレミス ネットワークまたは別の VPC ネットワーク)のリソースに接続するには、外部ネットワークと Cloud Data Fusion インスタンスが同じ VPC ネットワークを介して接続されている必要があります。
以下では BGP ルーティングまたは Cloud Interconnect アタッチメントとともに Cloud VPN トンネルを使用して、外部ネットワークを Cloud Data Fusion VPC ネットワークに接続する方法を説明します。
- VPC ネットワークが、Cloud VPN トンネルまたは Dedicated Interconnect または Partner Interconnect 用の VPN アタッチメントを使用して外部ネットワークに接続されていることを確認します。
- Cloud VPN トンネルまたは VLAN アタッチメントを管理する Cloud Router の BGP セッションが、外部ネットワークから特定の接頭辞(宛先)を受信していることを確認します。
デフォルト ルート(宛先 0.0.0.0/0)は、Cloud Data Fusion VPC ネットワークにインポートできません。ネットワークに独自のローカルのデフォルト ルートがあるためです。Cloud Data Fusion ピアリングが VPC ネットワークからカスタムルートをインポートするように構成されていても、宛先のローカルルートが常に使用されます。
- プライベート サービス接続によって生成されるピアリング接続を特定します。サービスに応じて、プライベート サービス接続が 1 つ以上の次のピアリング接続を作成する場合がありますが、必ずしもこれらがすべてではありません。
datafusion-googleapis-com
servicenetworking-googleapis-com
- すべてのピアリング接続を更新して、カスタムルートのエクスポートを有効にします。
- プライベート サービス接続に使用される割り振り範囲を特定します。
- Cloud VPN トンネルまたは VLAN アタッチメントの BGP セッションを管理する Cloud Router の割り振り範囲用に Cloud Router のカスタムルート アドバタイズを作成します。
テナント プロジェクト ID を取得する
ピアリング構成を作成するには、テナント プロジェクト ID が必要です。
Cloud Data Fusion の [インスタンス] ページに移動します。
[インスタンス名] 列で、インスタンスを選択します。
[インスタンスの詳細] ページで、インスタンスの [サービス アカウント] の値をコピーします。テナント プロジェクト ID は、「アット」記号(@)と次のピリオド(.)の間の部分です。たとえば、サービス アカウントの値が
cloud-datafusion-management-sa@r8170c9b5e7699803-tp.iam.gserviceaccount.com
の場合、
テナント プロジェクト ID はr8170c9b5e7699803-tp
です。
ピアリング接続を作成する
[VPC ネットワーク ピアリング] ページに移動します。
[接続を作成] > [続行] をクリックします。
[ピアリング接続の作成] ページが表示されたら、次の操作を行います。
- ピアリング接続の名前を入力します。
- [VPC ネットワーク] で、Cloud Data Fusion インスタンスを含むネットワークを選択します。
- [ピアリングした VPC ネットワーク] で [別のプロジェクト] を選択します。
- [プロジェクト ID] に、このチュートリアルで前に確認したテナント プロジェクト ID を入力します。
[VPC ネットワーク名] で、ネットワークを選択するか、「INSTANCE_REGION-INSTANCE_ID」と入力します。
以下を置き換えます。
- INSTANCE_REGION: Cloud Data Fusion インスタンスを作成したリージョン。
- INSTANCE_ID: Cloud Data Fusion インスタンスの ID。
ピアリング接続のインターネット プロトコル バージョンを選択して、VPC ネットワークとピアリングした VPC ネットワーク間で IPv4 ルートと IPv6 ルートを交換します。詳細については、VPC ネットワーク ピアリングをご覧ください。
[カスタムルートのエクスポート] を選択して、カスタム ルートを VPC ネットワークからテナント VPC ネットワークにエクスポートできるようにします。
パブリック IPv4 を使用したサブネット ルートを 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 を使用することもできます。gcloud
を使用する場合は、次のコマンドを実行します。
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。
プライベート Cloud Data Fusion インスタンスを使用できるようになりました。