サービス サブネットをピアリングから Private Service Connect に移行する
このドキュメントでは、サービス プロデューサーがピアリング ベースのサービスを Private Service Connect に移行し、サービスへのアクセスに使用される IP アドレスを保持する方法について説明します。この移行プロセスでは、特定のサブネットに接続されているすべてのリソースを同時に移行する必要があります。
移行プロセスはサービス プロデューサーによって開始されますが、プロデューサーとコンシューマの両方によって完了するタスクが含まれます。Google 管理サービスは、サービス エージェントを使用して、コンシューマに代わってタスクを実行できます。移行には、プロデューサーとコンシューマの両方でのダウンタイムと料金の変更が伴います。
各サービス プロデューサーは、Private Service Connect に移行するかどうかと移行するタイミングを決定します。サービス プロデューサーが VPC ネットワーク ピアリングから Private Service Connect に移行しているかどうかを確認するには、サービスのドキュメントを確認するか、サービス プロデューサーにお問い合わせください。
始める前に
- 移行の考慮事項など、移行プロセスを理解してください。
- Private Service Connect のコンシューマとプロデューサーの料金を理解してください。
- Private Service Connect を介したサービスの公開を理解していること。
Private Service Connect を使用してサービスをデプロイする
新しい VPC ネットワークを作成し、ネットワークにサービス リソースをデプロイし、Private Service Connect を介してサービスを公開します。
サービスのロードバランサを作成するときは、ロードバランサで以前に使用されていた IP アドレスとは異なる IP アドレスを使用します。元の IP アドレスは、後でエンドポイントを作成する際に必要になります。
サービスを公開するときに、サービス アタッチメントを作成します。サービス アタッチメント URI は、後でエンドポイントを作成する際にも必要になります。
ピアリング ベースのサービスをシャットダウンする
ピアリング ベースのサービスをシャットダウンするには、プロデューサー サブネットを削除する前に、サービスの IP アドレス範囲を予約する内部範囲を作成する必要があります。
内部範囲を作成する
プロデューサー サブネットを削除する前に、内部範囲を作成して、サブネットの IP アドレス範囲がプロデューサー ネットワークまたはコンシューマ ネットワーク内の他のサブネットによって再利用されないようにします。
この内部範囲の詳細については、移行の内部範囲をご覧ください。
gcloud
internal-ranges create
コマンドを使用します。
gcloud network-connectivity internal-ranges create RANGE_NAME \ --project=PRODUCER_PROJECT_ID \ --ip-cidr-range=CIDR_RANGE \ --network=PRODUCER_NETWORK_NAME \ --usage=FOR_MIGRATION \ --migration-source=PRODUCER_SUBNET_URI \ --migration-target=CONSUMER_SUBNET_URI
次のように置き換えます。
RANGE_NAME
: 新しい内部範囲の名前。PRODUCER_PROJECT_ID
: プロデューサー プロジェクトの ID。CIDR_RANGE
: 新しい内部範囲に割り当てる CIDR 範囲。PRODUCER_NETWORK_NAME
: 内部範囲を作成するネットワークの名前。PRODUCER_SUBNET_URI
: サービスのロードバランサを含むプロデューサー サブネットの URI。CONSUMER_SUBNET_URI
: 対象のコンシューマ サブネットの URI。このサブネットは、このコマンドを実行する時点では存在しません。
ピアリング プロデューサー サブネットを削除する
サブネットを削除する前に、プロデューサー サブネット内のすべてのリソース(仮想マシン(VM)インスタンス、転送ルール、インスタンス グループ、ヘルスチェック、予約済み IP アドレスなど)を削除する必要があります。リソースを削除したら、サブネットを削除できます。
コンシューマ リソースを作成する
サービス コンシューマと連携して、VPC ネットワークに次のリソースを作成します。リソースは手動で作成できます。また、Google が管理するサービスの場合は、サービス エージェントを使用して自動化することもできます。
ピア移行サブネットを作成する
コンシューマの VPC ネットワークにピア移行サブネットを作成して、Private Service Connect エンドポイントの IP アドレスを指定します。このサブネットの目的は PEER_MIGRATION
です。これにより、Private Service Connect エンドポイント以外のリソースにサブネットが使用されるのを防ぐことができます。
詳細については、ピア移行サブネットをご覧ください。
gcloud
networks subnets create
コマンドを使用します。
gcloud compute networks subnets create CONSUMER_SUBNET \ --purpose=PEER_MIGRATION \ --project=CONSUMER_PROJECT \ --network=CONSUMER_NETWORK \ --range=CIDR_RANGE \ --region=REGION
次のように置き換えます。
CONSUMER_SUBNET
: コンシューマ サブネットの名前CONSUMER_PROJECT
: コンシューマー プロジェクトの IDCONSUMER_NETWORK
: コンシューマ ネットワークの名前CIDR_RANGE
: 新しいサブネットに割り当てる CIDR 範囲。この範囲は、内部範囲の CIDR 範囲と一致する必要があります。REGION
: サブネットを作成するリージョン
Private Service Connect エンドポイントを作成する
コンシューマのピア移行サブネットに Private Service Connect エンドポイントを作成します。コンシューマは、エンドポイントを作成するためにサービス アタッチメント URI が必要です。
gcloud
エンドポイントの内部 IP アドレスを予約します。
addresses create
コマンドを使用します。gcloud compute addresses create ENDPOINT_ADDRESS_NAME \ --project=CONSUMER_PROJECT \ --region=REGION \ --address=ENDPOINT_ADDRESS \ --subnet=CONSUMER_SUBNET
次のように置き換えます。
ENDPOINT_ADDRESS_NAME
: IP アドレス リソースの名前CONSUMER_PROJECT
: コンシューマー プロジェクトの IDREGION
: IP アドレスを作成するリージョンENDPOINT_ADDRESS
: IP アドレス リソースに割り当てる IP アドレス。このアドレスは、サービスのロードバランサで使用された IP アドレスと同じである必要があります。CONSUMER_SUBNET
: コンシューマ サブネットの名前
エンドポイントを作成します。
forwarding-rules create
コマンドを使用します。gcloud compute forwarding-rules create ENDPOINT \ --region=REGION \ --network=CONSUMER_NETWORK \ --address=ENDPOINT_ADDRESS \ --target-service-attachment=SERVICE_ATTACHMENT_URI
次のように置き換えます。
ENDPOINT
: エンドポイントの名前REGION
: エンドポイントを作成するリージョンCONSUMER_NETWORK
: コンシューマ ネットワークの名前ENDPOINT_ADDRESS
: エンドポイントに割り当てる予約済み IP アドレス。IP アドレスを直接指定することも、IP アドレス リソース名を使用することもできます。SERVICE_ATTACHMENT_URI
: サービス アタッチメントの URI。
プロデューサーの内部範囲を削除する
コンシューマ移行サブネットが作成されたら、内部範囲は不要になるため削除できます。
gcloud
internal-ranges delete
コマンドを使用します。
gcloud network-connectivity internal-ranges delete RANGE_NAME \ --project=PRODUCER_PROJECT_ID
次のように置き換えます。
RANGE_NAME
: 内部範囲の名前PRODUCER_PROJECT_ID
: プロデューサー プロジェクトの ID
エンドポイントが機能することを確認する
エンドポイントを介してサービスに接続できることを確認するよう、コンシューマに依頼します。
エンドポイントが機能せず、トラブルシューティングで問題が解決しない場合は、移行をロールバックできます。
移行を完了する
エンドポイントが期待どおりに動作している場合は、コンシューマのピア移行サブネットを通常のサブネットに更新して、移行を完了できます。
コンシューマのピア移行サブネットを更新する
コンシューマのピア移行サブネットを通常のサブネットに更新すると、コンシューマは任意のタイプのリソースにサブネットを使用できます。
gcloud
networks subnets create
コマンドを使用します。
gcloud compute networks subnets update CONSUMER_SUBNET \ --purpose=PRIVATE \ --region=REGION \ --project=CONSUMER_PROJECT
次のように置き換えます。
CONSUMER_SUBNET
: コンシューマ サブネットの名前REGION
: コンシューマ サブネットのリージョンCONSUMER_PROJECT
: コンシューマー プロジェクトの ID
ピアリング接続を削除する
ピアリング接続が不要になった場合は、コンシューマとプロデューサーの両方のピアリング構成を削除します。
移行をロールバックする
移行をロールバックできるのは、コンシューマ サブネットがまだ通常のサブネットに更新されていない場合のみです。ロールバックすると、サービスは VPC ネットワーク ピアリングを介して利用できるようになります。
- それでも存在する場合は、プロデューサーのプロジェクトの内部範囲を削除します。
コンシューマのプロジェクトに内部範囲を作成します。ロールバックする場合、移行元はコンシューマ サブネットで、移行先はプロデューサー サブネットです。
gcloud network-connectivity internal-ranges create RANGE_NAME \ --project=CONSUMER_PROJECT \ --ip-cidr-range=CIDR_RANGE \ --network=CONSUMER_NETWORK \ --usage=FOR_MIGRATION \ --migration-source=CONSUMER_SUBNET_URI \ --migration-target=PRODUCER_SUBNET_URI
コンシューマの Private Service Connect エンドポイントを削除します。
コンシューマの IP アドレス リソースを削除します。
同じ名前と CIDR 範囲を使用して、プロデューサーのサブネットを再作成します。サブネットの目的を
PRIVATE
に設定します。プロデューサーのサブネットで、サービスを提供するために必要なリソースを再作成します。
コンシューマは、ピアリング接続を介してサービスにアクセスできることを確認します。