プライベート接続構成の管理

Datastream API を使用して、プライベート接続構成の作成、取得、一覧表示、削除を行うことができます。これらの構成により、Datastream は Google Cloud のデータソースまたは Cloud VPN もしくは Cloud Interconnect 経由で接続された外部ソースと非公開で通信できます。プライベート接続は、Virtual Private Cloud(VPC)ネットワーク ピアリングまたは Private Service Connect インターフェースを使用して確立できます。

プライベート接続を使用するには、ストリーム、接続プロファイル、プライベート接続構成が同じリージョンに存在する必要があります。クロスリージョン ファイアウォール ルールを手動で追加しないようにするには、そのリージョンのサブネットでソース データベースを実行します。

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

プライベート接続構成を作成する前に、次のことを確認してください。

  • Datastream のプライベート ネットワークにピアリングする VPC ネットワークがある。VPC ネットワークの作成の詳細については、VPC ネットワーク ピアリングの使用をご覧ください。
  • 使用可能な IP 範囲(/29 の CIDR ブロック以上)が VPC ネットワークにあること。Datastream は、この IP 範囲を使用して、指定された VPC との VPC ピアリングを作成します。そのため、この範囲は、その VPC 内のサブネットと重複することはできません。これにより、Datastream はソースと通信できます。

プライベート接続構成の作成に関連するパラメータは 2 つあります。

  • vpcName: VPC ネットワークの名前とパスを指定します。
  • subnet: VPC ネットワーク上で使用可能な IP 範囲を指定します。

次のコードは、プライベート接続構成の作成リクエストを示し、接続方法に VPC ピアリング(vpcPeeringConfig)の使用を指定しています。

REST

POST https://datastream.googleapis.com/v1/projects/PROJECT_ID/locations/
LOCATION/privateConnections?privateConnectionId=PRIVATE_CONNECTIVITY_CONFIGURATION_ID
{
  "displayName": "DISPLAY_NAME",
  "vpcPeeringConfig": {
      "vpcName": "VPC_NAME",
      "subnet": "SUBNET"
  }
}

次に例を示します。

POST https://datastream.googleapis.com/v1/projects/myProjectId/locations/
us-central1/privateConnections?privateConnectionId=myPrivateConnection
{
  "displayName": "my-private-connection",
  "vpcPeeringConfig": {
    "vpcName": "projects/my-project/global/networks/my-vpc",
    "subnet": "10.11.12.13/29"
  }
}

プライベート接続構成が作成されたら、privateConnections/get メソッドを呼び出して、その構成に関する情報を表示できます。出力は次のようになります。

{
  "name": "projects/projectId/location/us-central1/privateConnections/myPrivateConnection",
  "createTime": "2019-12-22T16:17:37.159786963Z",
  "updateTime": "2019-12-22T16:17:37.159786963Z",
  "displayName": "my-private-connection",
  "state": "CREATED",
  "vpcPeeringConfig": {
    "vpcName": "projects/my-project/global/networks/my-vpc",
    "subnet": "10.11.12.13/29"
  }  
}

gcloud

gcloud datastream private-connections create PRIVATE_CONNECTION_NAME --location=LOCATION --display-name=DISPLAY_NAME --vpc=VPC_NAME --subnet=SUBNET

次に例を示します。

gcloud datastream private-connections create my-privateConnection --location=us-central1 --display-name=my-private-connection --vpc=my-vpc --subnet=10.11.12.13/29

Private Service Connect インターフェースを使用してプライベート接続構成を作成する

プライベート接続構成を作成する前に、次のことを確認してください。

  • Datastream のプライベート ネットワークに接続する VPC ネットワークがある。VPC ネットワークの作成の詳細については、VPC ネットワークの作成と管理をご覧ください。

  • VPC プロジェクトにネットワーク アタッチメントを作成する。

  • Google Cloud とオンプレミス ファイアウォールで、ネットワーク アタッチメントの IP アドレス範囲から、データのストリーミング元となるソース データベースへのトラフィックが許可されていることを確認する。

次のコードは、Private Service Connect インターフェースを使用してプライベート接続構成を作成するリクエストを示しています。まず、validateOnly フラグ(Google Cloud CLI の場合は --validate-only)を指定して、プライベート接続構成を作成するコマンドを実行する必要があります。

REST

POST "https://datastream.googleapis.com/v1/projects/PROJECT_ID/locations/
LOCATION/privateConnections?privateConnectionId=PRIVATE_CONNECTIVITY_CONFIGURATION_ID&validateOnly=true"

gcloud

gcloud datastream private-connections create PRIVATE_CONNECTION_NAME --location=LOCATION --display-name=DISPLAY_NAME --network-attachment=NETWORK_ATTACHMENT_NAME --validate-only

レスポンスで、承認するプロデューサー プロジェクトの名前が返されます。ネットワーク アタッチメントの許可されたプロジェクト リストに追加する必要があります。

  1. describe メソッドを使用して、ネットワーク アタッチメントの現在の producer-accept-list を取得します。詳細については、Compute Engine の Google Cloud SDK のドキュメントをご覧ください。
  2. update メソッドを使用して、プロデューサー プロジェクトをこのリストに追加します。詳細については、Compute Engine の Google Cloud SDK のドキュメントをご覧ください。

プロデューサー プロジェクトを許可されたプロジェクトのリストに追加したら、コマンドを実行してプライベート接続構成を再度作成します。今回は validateOnly フラグを指定しません。

REST

POST https://datastream.googleapis.com/v1/projects/PROJECT_ID/locations/
LOCATION/privateConnections?privateConnectionId=PRIVATE_CONNECTIVITY_CONFIGURATION_ID
{
  "displayName": "DISPLAY_NAME",
  "pscInterfaceConfig": {
      "networkAttachment": "NETWORK_ATTACHMENT_NAME"
  }
}

次に例を示します。

POST https://datastream.googleapis.com/v1/projects/myProjectId/locations/
us-central1/privateConnections?privateConnectionId=myPrivateConnection
{
  "displayName": "my-private-connection",
  "pscInterfaceConfig": {
    "networkAttachment": "projects/my-project/regions/us-central1/networkAttachments/my-na"
  }
}

gcloud

gcloud datastream private-connections create PRIVATE_CONNECTION_NAME --location=LOCATION --display-name=DISPLAY_NAME --network-attachment=NETWORK_ATTACHMENT_NAME

次に例を示します。

gcloud datastream private-connections create my-private-connection --location=us-central1 --display-name=my-private-connection --network-attachment=my-network-attachment

プライベート接続構成に関する情報を取得する

次のコードは、作成されたプライベート接続構成に関する情報を取得するリクエストを示しています。

REST

GET https://datastream.googleapis.com/v1/projects/PROJECT_ID/locations/
LOCATION/privateConnections/PRIVATE_CONNECTIVITY_CONFIGURATION_ID

次に例を示します。

GET https://datastream.googleapis.com/v1/projects/myProjectId/locations/
us-central1/privateConnections/myPrivateConnection
     

gcloud

gcloud を使用してプライベート接続構成に関する情報を取得する方法については、Google Cloud SDK のドキュメントをご覧ください。

プライベート接続構成を一覧表示する

次のコードは、すべてのプライベート接続構成に関する情報を取得するリクエストを示しています。

REST

GET https://datastream.googleapis.com/v1/projects/PROJECT_ID/locations/
LOCATION/privateConnections

gcloud

gcloud を使用してすべてのプライベート接続構成に関する情報を取得する方法については、Google Cloud SDK のドキュメントをご覧ください。

プライベート接続構成の削除

次のコードは、プライベート接続構成を削除するリクエストを示しています。構成を削除すると、その構成を使用する接続プロファイルは機能しなくなります。また、これらの接続プロファイルを使用するストリームは操作できなくなります。

この問題を解決するには、各接続プロファイルに異なるプライベート接続構成を割り当てます。詳細については、接続プロファイルを更新するをご覧ください。

REST

DELETE https://datastream.googleapis.com/v1/projects/PROJECT_ID/locations/
LOCATION/privateConnections/[private-connectivity-configuration-id] {"force": true} 

次に例を示します。

DELETE https://datastream.googleapis.com/v1/projects/myProjectId/locations/
us-central1/privateConnections/myPrivateConnection {"force": true} 

gcloud

gcloud を使用してプライベート接続構成を削除する方法については、Google Cloud SDK のドキュメントをご覧ください。

次のステップ