ソース データベースと宛先データベースのプライベート IP アドレス間の接続を確立することで、プライベート ネットワーク経由でデータを移行できます。移行先データベースのプライベート IP アドレスを構成するには、プライベート サービス アクセスまたは Private Service Connect を使用します。
各接続方法にはそれぞれ異なる利点とトレードオフがあります。シナリオに最適なアプローチを選択してください。AlloyDB for PostgreSQL のプライベート サービス アクセスと Private Service Connect の詳細については、AlloyDB for PostgreSQL ドキュメントのプライベート IP の概要をご覧ください。
VPC ピアリングを使用して接続を構成する
VPC ピアリングは、VPC が相互に通信するように構成することで機能します。ソースが AlloyDB または Compute Engine の同じ Google Cloud プロジェクトにある場合、これにより、宛先がソースと直接通信できるようになります。VPN で移行元にアクセスできる場合は、VPN を使用して相互に通信するように移行元ネットワークと Cloud VPN を構成します。詳細については、 VPN を介して VPC を接続するをご覧ください。VPC のチェーンはサポートされていません。ソースが別の Google Cloud プロジェクトにある場合は、共有 VPC の概要で、複数のプロジェクトのリソースを VPC ピアリング用の共通 VPC ネットワークに接続する方法を確認してください。
ソース データベース サーバーのファイアウォールは、AlloyDB の宛先インスタンスが使用する VPC ネットワークのプライベート サービス接続に割り振られた内部 IP 範囲全体を許可するように構成する必要があります。
Console で内部 IP 範囲を確認するには:
Google Cloud コンソールの VPC ネットワーク ページに移動します。
使用する VPC ネットワークを選択します。
[プライベート サービス接続] タブを選択します。
pg_hba.conf
ファイルのレプリケーション接続セクション、または移行元データベースの AWS RDS のセキュリティ グループ定義を更新して、AlloyDB VPC の IP アドレス範囲からの接続を受け入れるようにします。
VPC ピアリングでは、プライベート サービス アクセスを使用します。これは、VPC ピアリングを使用するプロジェクトごとに 1 回構成する必要があります。private services access
を確立したら、移行ジョブをテストして接続を確認します。
Database Migration Service のプライベート サービス アクセスを構成する
Database Migration Service インスタンスのいずれかにプライベート IP を使用している場合は、Database Migration Service インスタンスに接続している、または接続する必要のあるすべての Google Cloud プロジェクトに対して、プライベート サービス アクセスを一度のみ構成する必要があります。
プライベート サービス アクセスを確立するには、compute.networkAdmin の IAM ロールが必要です。ネットワークでプライベート サービス アクセスを確立した後は、compute.networkAdmin
IAM ロールがなくても、プライベート IP を使用するようにインスタンスを構成できます。
プライベート サービス アクセスでは、まず内部 IP アドレス範囲を割り振ってから、プライベート接続を作成し、カスタムルートをエクスポートする必要があります。
割り当て範囲は、ローカル VPC ネットワークでは使用できない予約済みの CIDR ブロックです。プライベート接続を作成するときに、割り当てを指定します。プライベート接続は、VPC ネットワークを基盤となる(「サービス プロデューサー」)VPC ネットワークにリンクします。
プライベート接続を作成すると、VPC ネットワークとサービス プロデューサー ネットワークはサブネット ルートのみを交換します。サービス プロバイダのネットワークがルートをインポートし、オンプレミス ネットワークにトラフィックを正しく転送できるように、VPC ネットワークのカスタムルートをエクスポートする必要があります。
ピアリングを構成すると、別の VPC ネットワークに接続する意思が示されます。ピアリングされるそれぞれのネットワークが相手側とのピアリングを構成するまでは、両者は接続されません。相手側のネットワークでこちら側のネットワークとピアリングするための構成が行われると、双方のネットワークでピアリング状態が ACTIVE に変わり、接続が確立されます。相手側のネットワークで同じピアリング構成が行われていない場合、ピアリング状態は INACTIVE のままになります。これは、2 つのネットワークが接続されていないことを示します。
接続された 2 つのネットワークは常にサブネット ルートを交換します。ピアリングされたネットワークが静的と動的のカスタムルートをエクスポートするように構成されていれば、そのネットワークから必要に応じて両方のカスタムルートをインポートできます。
プライベート サービス アクセスの構成プロセスは、2 つの部分で構成されています。
- IP アドレス範囲を割り振る。この範囲には、すべてのインスタンスが含まれます。
- VPC ネットワークからサービス プロデューサー ネットワークへのプライベート接続を作成する。
IP アドレス範囲を割り振る
コンソール
- Google Cloud コンソールの VPC ネットワーク ページに移動します。
- 使用する VPC ネットワークを選択します。
- [プライベート サービス接続] タブを選択します。
- [サービスに割り当てられた IP 範囲] を選択します。
- [IP 範囲の割り当て] をクリックします。
割り振られた範囲の [名前] には
google-managed-services-VPC_NETWORK_NAME
を指定します。VPC_NETWORK_NAME
は、接続する VPC ネットワークの名前です(google-managed-services-default
など)。[説明] は任意です。[割り当て] をクリックして、割り当て範囲を作成します。
gcloud
次のいずれかを行います。
アドレス範囲と接頭辞長(サブネット マスク)を指定するには、
addresses
フラグとprefix-length
フラグを使用します。たとえば、CIDR ブロック192.168.0.0/16
を割り当てるには、アドレスに192.168.0.0
を指定し、接頭辞長に16
を指定します。gcloud compute addresses create google-managed-services-[VPC_NETWORK_NAME] \ --global \ --purpose=VPC_PEERING \ --addresses=192.168.0.0 \ --prefix-length=16 \ --network=[VPC_NETWORK_NAME]
接頭辞長(サブネット マスク)だけを指定するには、
prefix-length
フラグを使用します。アドレス範囲を省略すると、 Google Cloudでは VPC ネットワークで使用されていないアドレス範囲が自動的に選択されます。次の例では、16
ビットの接頭辞長を使用して、未使用の IP アドレス範囲を選択しています。gcloud compute addresses create google-managed-services-[VPC_NETWORK_NAME] \ --global \ --purpose=VPC_PEERING \ --prefix-length=16 \ --network=[VPC_NETWORK_NAME]
[VPC_NETWORK_NAME]
は、使用する VPC ネットワークの名前(my-vpc-network
など)に置き換えます。
次の例では、VPC ネットワーク my-vpc-network
のリソースがプライベート IP を使用して Database Migration Service インスタンスに接続できるようにする IP 範囲を割り振っています。
gcloud compute addresses create google-managed-services-my-vpc-network \ --global \ --purpose=VPC_PEERING \ --prefix-length=16 \ --network=my-vpc-network \ --project=my-project
プライベート接続の作成
コンソール
- Google Cloud コンソールの VPC ネットワーク ページに移動します。
- 使用する VPC ネットワークを選択します。
- [プライベート サービス接続] タブを選択します。
- [サービスへのプライベート接続] タブを選択します。
- ネットワークとサービス プロデューサーとの間にプライベート接続を作成するには、[接続の作成] をクリックします。
- [割り当て] で、他のサービス プロデューサーによって使用されていない 1 つ以上の既存の割り当て範囲を選択し、[OK] をクリックします。
- [接続] をクリックして接続を作成します。
gcloud
プライベート接続を作成します。
gcloud services vpc-peerings connect \ --service=servicenetworking.googleapis.com \ --ranges=google-managed-services-[VPC_NETWORK_NAME] \ --network=[VPC_NETWORK_NAME] \ --project=[PROJECT_ID]
[VPC_NETWORK_NAME]
は VPC ネットワークの名前に置き換え、[PROJECT_ID]
は VPC ネットワークを含むプロジェクトの ID に置き換えます。このコマンドは、長時間実行オペレーションを開始し、オペレーション名を戻します。
オペレーションが成功したかどうかを確認します。
gcloud services vpc-peerings operations describe \ --name=[OPERATION_NAME]
[OPERATION_NAME]
を、前の手順から返されたオペレーション名に置き換えます。
プライベート接続を作成するときに、複数の割り当て範囲を指定できます。たとえば、範囲が不足している場合は、割り振り範囲を追加で指定できます。サービスは指定されたすべての範囲内の IP アドレスを、指定された順序で使用します。
カスタムルートのエクスポート
既存の VPC ネットワーク ピアリング接続を更新して、ピア VPC ネットワークとの間でのカスタムルートのエクスポートまたはインポートに関する設定を変更します。
カスタムルートをインポートできるのは、ピア ネットワークがカスタムルートをエクスポートしている場合のみです。ピア ネットワークでは、カスタムルートをインポートする場合にのみカスタムルートを受け取ります。
コンソール
- Google Cloud コンソールの [VPC ネットワーク ピアリング] ページに移動します。
[VPC ネットワーク ピアリング] ページに移動 - 更新するピアリング接続を選択します。
- [編集] をクリックします。
- [カスタムルートをインポートする] または [カスタムルートのエクスポート] をオン / オフにして、カスタムルートの設定を更新します。
- [保存] をクリックします。
gcloud
ピアリング接続を更新して、カスタムルートのインポートまたはエクスポートに関する設定を変更します。
gcloud compute networks peerings update [PEERING-NAME] \ --network=[MY-LOCAL-NETWORK] \ [--[no-]import-custom-routes] \ [--[no-]export-custom-routes]
roles/servicenetworking.serviceAgent
ロールの付与
gcloud beta services identity create \
--service=servicenetworking.googleapis.com \
--project=project-id
gcloud projects add-iam-policy-binding project-id \
--member="service-account-prefix@service-networking.iam.gserviceaccount.com" \
--role="roles/servicenetworking.serviceAgent"
Private Service Connect インターフェースを使用して接続を構成する
同種移行の場合、AlloyDB for PostgreSQL は Private Service Connect インターフェースを使用して、プライベート ネットワーク経由で接続を確立できます。この接続方法は、既存のインスタンスに移行する場合にのみ使用できます。
Private Service Connect インターフェースを使用するには、次の操作を行います。
Private Service Connect が有効になっている AlloyDB for PostgreSQL クラスタと、そのクラスタ内のプライマリ インスタンスを作成します。AlloyDB for PostgreSQL のドキュメントの Private Service Connect を有効にするをご覧ください。
インスタンスのアウトバウンド接続用に Private Service Connect を構成します。AlloyDB for PostgreSQL のドキュメントのアウトバウンド接続を構成するをご覧ください。
ネットワーク アタッチメントを作成する VPC ネットワークが、ソース データベースのプライベート IP アドレスに到達できるネットワークであることを確認します。
後で移行ジョブを作成するときに、接続方法として PSC インターフェースを選択します。