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

このページでは、Datastream API を使用してプライベート接続構成を作成、情報の取得、削除する方法について説明します。

プライベート接続の構成には、Datastream がプライベート ネットワーク( Google Cloud内または VPN もしくは相互接続で接続される外部ソース)を介してデータソースと通信するために使用する情報が含まれています。この通信は、Private Service Connect インターフェースまたは Virtual Private Cloud(VPC)ピアリング接続を介して行われます。

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 のドキュメントをご覧ください。

次のステップ