概要
Database Migration Service で移行を作成するには、移行元インスタンスと AlloyDB の移行先インスタンスの間に接続を確立する必要があります。サポートされている方法は次のとおりです。特定のワークロードに最適なものを選択します。ネットワーキングの方式 | 説明 | 利点 | デメリット |
---|---|---|---|
IP 許可リスト |
この方法は、Cloud SQL インスタンスの送信 IP からの接続を受け入れるようにソース データベース サーバーを構成することで機能します。 この方法を選択すると、Database Migration Service は移行の作成時に設定プロセスを案内します。 |
|
|
クラウドでホストされている VM を経由するプロキシ - リバース SSH トンネル |
安全なリバース SSH トンネルを介して、宛先からソースへの接続を確立します。 Google Cloud プラットフォーム プロジェクトのバスティオン ホスト VM と、ソースに接続しているマシン(ネットワーク上のノートパソコンなど)が必要です。 Database Migration Service は、移行の作成時に必要な情報を収集し、すべてを設定するためのスクリプトを自動生成します。 |
|
|
クラウドでホストされている VM を経由するプロキシ - TCP |
クラウドでホストされている VM を介して TCP プロキシを使用して、移行先から移行元への接続を確立します。 Database Migration Service は、移行の作成時に必要な情報を収集し、すべてを設定するためのスクリプトを自動生成します。 移行元が古いネットワーク アーキテクチャにある AlloyDB 移行に関連します。 |
|
|
VPC ピアリング |
この方法は、VPC が相互に通信するように構成することで機能します。 |
|
|
接続の制限
PostgreSQL から AlloyDB への接続には、次の制限事項があります。
- AlloyDB は、プライベート サービス アクセスを使用したプライベート接続をサポートしています。クラスタにパブリック IP アドレスを割り当てることはできません。
- クラスタの作成後に、AlloyDB クラスタがピアリングされる VPC を変更することはできません。
- AlloyDB は、内部で VPC ピアリングを使用するプライベート サービス アクセスを使用するため、推移的ピアリングはサポートされていません。AlloyDB クラスタは、ピアリングされている同じ VPC 内の内部 IP アドレスにのみ到達できます。他の VPC に到達するには、中間プロキシを使用する必要があります。詳しくは、次のセクションをご覧ください。
一般的な接続シナリオと解決策
以前のプロデューサー ネットワーク アーキテクチャの Cloud SQL インスタンスから移行する
古いプロデューサー ネットワーク アーキテクチャの Cloud SQL for PostgreSQL インスタンスから移行するには、中間プロキシを使用して接続を確立する必要があります。これは、移行元の Cloud SQL インスタンスと AlloyDB の宛先の間に直接接続できないためです。独自のプロキシ ソリューションを設定することもできますが、Database Migration Service から提供される自動生成スクリプトを使用して TCP プロキシ VM を設定することをおすすめします。TCP プロキシ接続方法をご覧ください。
同じ Google Cloud プロジェクト内の別の VPC にあるソースから移行する
AlloyDB クラスタが存在する VPC は、クラスタの作成後に変更できないため、次のオプションがあります。
移行元インスタンスの VPC を移行先インスタンスの VPC と一致するように変更することをおすすめします。たとえば、Cloud SQL インスタンスを AlloyDB に移行する場合は、AlloyDB VPC と一致するように Cloud SQL VPC を更新します。
転送元インスタンスの VPC を転送先インスタンスの VPC と一致するように変更できない場合は、中間仮想マシン(VM)をプロキシとして使用します。独自のプロキシ ソリューションを設定することもできますが、 TCP プロキシ接続方法を使用することをおすすめします。 Google Cloud コンソールで Database Migration Service がスクリプトを生成したら、TCP プロキシ インスタンスを作成するコマンドに別のネットワーク インターフェースを追加し、ソース インスタンスの VPC と一致するように構成します。これにより、プロキシは送信元 VPC と宛先 VPC の両方に接続できます。
別のネットワーク インターフェースを追加するには、スクリプトに表示される
gcloud compute instances create-with-container
コマンドに--network-interface network=SOURCE_NETWORK_NAME
を追加します。プロキシを作成するコマンドの例:
gcloud compute instances create-with-container … \ --network-interface subnet=DESTINATION-SUBNET-NAME \ --network-interface network=SOURCE-NETWORK-NAME
次のように置き換えます。
- DESTINATION-SUBNET-NAME: 宛先サブネットの名前。
- SOURCE-NETWORK-NAME: ソース ネットワークの名前。
詳細については、複数のネットワーク インターフェースを持つ VM インスタンスを作成するをご覧ください。
公共のインターネット経由で移行する
この方法は、オンプレミス インスタンスまたは他のクラウド プロバイダから移行する場合に、 Google Cloudへの既存の VPN または Interconnect 接続がない場合におすすめします。この方法を使用するには、送信パブリック IP アドレスを使用するように移行先の AlloyDB クラスタを構成する必要があります。
別の Google Cloud プロジェクトのソースから移行する
別の Google Cloud プロジェクトのソースから移行するには、インターネット経由で移行するか、内部の Google Cloud 接続の場合は共有 VPC を使用する必要があります。次のオプションのいずれかを選択します。
プロキシのない共有 VPC を使用する。AlloyDB クラスタを共有 VPC に配置する場合は、クラスタの作成時にソースが存在する VPC を選択します。これにより、ソースと宛先が直接接続されます。
プロキシで共有 VPC を使用します。AlloyDB クラスタを共有 VPC に配置しない場合は、中間プロキシを使用する必要があります。独自のプロキシ ソリューションを設定することもできますが、TCP プロキシ接続方法を使用することをおすすめします。こちらのガイドラインに沿って、共有 VPC に追加のネットワーク インターフェースを持つ TCP プロキシを作成します。
移行先が移行元のネットワークに到達できないようにする
この方法は、オンプレミス ネットワークから移行する場合に推奨されます。この場合、ネットワークのファイアウォールを受信 Google Cloud トラフィックに開く必要があるためです。このシナリオでは、Compute Engine インスタンスを中間プロキシとして使用してリバース プロキシを設定できます。リバース SSH 接続方法を使用することをおすすめします。