標準の同種 PostgreSQL 移行のネットワーク接続

このページでは、標準の同種 PostgreSQL から AlloyDB for PostgreSQL への移行に向けたネットワーク接続の構成に関連するコンセプトの概要を説明します。クイック スタート移行の接続性については、 クイック スタート移行を使用するガイドをご覧ください。

さまざまな接続方法とその要件を理解したら、 ディシジョン ツリー図を使用して、シナリオに適したソリューションを選択できます。

移行プロセスに関与するネットワーク コンポーネント

PostgreSQL から AlloyDB for PostgreSQL への同種移行の場合、Database Migration Service は移行先の AlloyDB for PostgreSQL クラスタに接続し、移行プロセスを管理します。Database Migration Service がプロセスを監視している間に、移行元インスタンスへの接続を確立するのは移行先クラスタです。

PostgreSQL の移行フローの概要
図 1. Database Migration Service for PostgreSQL の移行中のデータ移動。(クリックして拡大)
PostgreSQL の移行フローの概要

移行のネットワーク接続の設定を計画する際は、インフラストラクチャの要件を慎重に検討することが重要です。これには、ネットワークの決定によって、移行されたデータベース クラスタの最終状態にどのような制限が生じる可能性があるかも含まれます。たとえば、ネットワーク接続にプライベート接続を使用する場合は、プライベート サービス アクセスまたは Private Service Connect で構成された移行先の AlloyDB for PostgreSQL クラスタを使用する必要があります。

接続方法の可用性

移行先のクラスタが新規か既存かに応じて、移行元のデータベースごとに異なる接続方法を使用できます。次の表に、各シナリオでサポートされている方法の概要を示します。

ソース データベース サービス 新しい移行先クラスタへの移行方法 既存の移行先クラスタへの移行方法
セルフホスト IP 許可リスト、リバース SSH トンネル、VPC ピアリング、クラウドでホストされている VM を経由した TCP プロキシ IP 許可リスト、リバース SSH トンネル、VPC ピアリング(PSA 宛先クラスタが必要)、クラウドでホストされている VM を経由する TCP プロキシ、PSC インターフェース(PSC 対応の宛先クラスタが必要)
Amazon Aurora、Amazon RDS IP 許可リスト、リバース SSH トンネル、VPC ピアリング IP 許可リスト、リバース SSH トンネル、VPC ピアリング(PSA 宛先クラスタが必要)、PSC インターフェース(PSC 対応の宛先クラスタが必要)
Cloud SQL for PostgreSQL IP 許可リスト(非推奨)、VPC ピアリング、クラウドでホストされている VM を経由した TCP プロキシ IP 許可リスト(非推奨)、VPC ピアリング、クラウドでホストされている VM を経由する TCP プロキシ、PSC インターフェース(PSC 対応の宛先クラスタが必要)

接続方法の比較

接続方法ごとに、メリットと要件が異なります。次の表で、各方法を簡単に比較できます。各方法の詳細については、それぞれのセクションをご覧ください。

ネットワーキングの方式 利点 欠点
IP 許可リスト
  • 最も簡単に設定できる接続方法です。
  • Google Cloudのプライベート ネットワーク経由でソース データベースにアクセスできない場合に便利です。
  • ソース データベース サーバーの IPv4 アドレスを公共のインターネットに公開する必要があります。これには、追加のセキュリティ対策が必要です。 たとえば、接続を保護するために TLS 証明書とファイアウォール ルールを使用することをおすすめします。
  • ファイアウォール ルールの構成で、ネットワーク セキュリティ部門または IT 部門のサポートが必要になる場合があります。
リバース SSH トンネル
  • IP 許可リストを使用してパブリック IP 経由で接続するよりも安全です。

    初期接続は、公共のインターネット経由で Secure Shell(SSH)ポートを介して確立されます。接続がアクティブになると、すべてのトラフィックが安全なプライベート トンネルを介して PostgreSQL ポート 5432 に送信されます。

  • Google Cloudのプライベート ネットワーク経由でソース データベースにアクセスできないが、ソース データベース サーバーを公共のインターネットに直接公開したくない場合に便利です。
  • 接続に中間サーバー(リバース SSH トンネル マシン)を使用すると、レイテンシが増加する可能性があります。
  • リバース SSH ホストサーバーを設定して、メンテナンスする必要があります。 サーバーは、移行期間中ずっとオンライン状態を維持する必要があります。
Private Service Connect インターフェース
  • ネットワーク アタッチメントを使用して、ソースのプライベート IP への接続を確立します。この方法では、VPC のピアリング割り当ては消費されません。
  • 構成が最も簡単で、推奨される移行元のプライベート接続方法。
  • 既存の AlloyDB for PostgreSQL 移行先クラスタへの移行でのみサポートされます。この方法を使用する場合は、AlloyDB for PostgreSQL で移行先クラスタを直接作成する必要があります。
  • ネットワーク アタッチメントの設定とファイアウォール ルールの調整が必要です。
  • 接続の確立後にネットワーク アタッチメントを変更することはできません。
クラウドでホストされている VM を経由した TCP プロキシ
  • 非推移的な VPC ピアリングが原因で直接ルーティングが不可能な場合に、プライベート接続をブリッジします(古いプロデューサー ネットワーク アーキテクチャを使用する Cloud SQL for PostgreSQL ソースから移行する場合や、個別の VPC ネットワークをブリッジする場合など)。
  • Database Migration Service は、プロキシ VM をデプロイして構成する設定スクリプトを自動生成します。
  • Compute Engine プロキシ VM を設定して維持する必要があります。これにより、追加のコンピューティング費用が発生する可能性があります。
Virtual Private Cloud ピアリングによるプライベート接続 接続は、VPC ピアリングを介してソース データベースのプライベート IP アドレスに確立されます。VPC に十分なピアリング割り当てがない場合、この接続方法を使用するのは難しい可能性があります。既存の AlloyDB for PostgreSQL クラスタに移行するほとんどのシナリオでは、代わりに Private Service Connect インターフェースを使用したプライベート接続を使用することをおすすめします。

ソース データベース接続の IP 許可リスト

IP 許可リストの接続方法を使用すると、AlloyDB for PostgreSQL は PostgreSQL ポート 5432 でソース データベース サーバーの一般公開 IP アドレスへの接続を試みます。

同種移行のパブリック IP 許可リスト接続を示す図。
図 2. 同種 PostgreSQL 移行の IP 許可リスト ネットワーク接続図。(クリックして拡大)
同種移行のパブリック IP 許可リスト接続を示す図。

IP 許可リスト接続の要件

大まかに言うと、この接続方法を使用するには、次のことを確認する必要があります。

  • 移行元データベースの IP アドレスを、直接またはドメイン ネーム サーバー(DNS)を介して一般に認識されるホスト名で、公共のインターネットに公開する必要があります。

  • 移行先の AlloyDB for PostgreSQL プライマリ インスタンスで、アウトバウンド パブリック IP が有効になっている必要があります。ソース データベースは、宛先プライマリ インスタンスのアウトバウンド パブリック IP アドレスの両方からの受信接続を許可する必要があります。

IP 許可リストの接続を構成する

パブリック IP 接続の構成手順は、ソース データベースの種類によって異なります。詳しくは以下をご覧ください。

リバース SSH トンネル データベース接続

この接続方法は、パブリック ネットワーク接続とプライベート ネットワーク接続を組み合わせたものです。接続自体は、Secure Shell(SSH)ポートを介してトンネルホスト サーバーのパブリック IP アドレスに確立されます。接続がアクティブになると、すべてのトラフィックは安全なトンネルを介して、ポート 5432 のソース データベースのプライベート IP アドレスに送信されます。

Google Cloud内にある Cloud SQL ソースまたはセルフホスト型ソリューションの場合は、 Private Service Connect インターフェースを使用したプライベート接続または Virtual Private Cloud ピアリングを使用したプライベート接続方法を使用することをおすすめします。

専用 SSH サーバーを介した高レベルの接続設定を示すネットワーク図。
図 3. 移行ネットワーキングの例: SSH トンネルを介したソース接続。(クリックして拡大)
専用 SSH サーバーを介した高レベルの接続設定を示すネットワーク図。

リバース SSH トンネルの要件

接続を作成するには、トンネル サーバー(踏み台インスタンスとも呼ばれます)で SSH ポートをパブリック インターネットに公開する必要があります。接続が確立されると、すべてのトラフィックがプライベート トンネル接続を介してルーティングされます。

この方法では、追加のネットワーク コンポーネントが必要です。

  • リバース SSH マシンとして機能する Google Cloud の仮想マシン(VM)。
  • ソース データベースに接続できるネットワーク上の追加のマシン。

リバース SSH トンネル接続を構成する

Database Migration Service は、リバース SSH VM を作成する設定スクリプトを生成できますが、エンドツーエンドのプロセス全体は、移行元データベースの種類によって異なります。詳細については、 リバース SSH 接続を構成するをご覧ください。

Private Service Connect インターフェースを使用したプライベート接続

この接続方法を使用すると、 VPC ピアリングの割り当てを消費することなく、ソース データベースのプライベート IP に接続できます。Private Service Connect インターフェースは、プライベート IP 接続に推奨される方法ですが、 既存のクラスタに移行する場合にのみ使用できます。

Private Service Connect インターフェースを使用すると、宛先クラスタがピアリング割り当てを消費することはありません。代わりに、Private Service Connect インターフェースを利用して、ソース データベースのプライベート IP に到達できる Virtual Private Cloud に到達します。ネットワーク アーキテクチャによっては、Cloud VPN や Cloud Interconnect などの追加コンポーネントを使用する必要があります。

同種移行における Cloud VPN と Private Service Connect の接続を示す図。
図 4. Google Cloudの外部に存在するソースからの同種移行用の Private Service Connect インターフェースを使用したネットワーク接続。(クリックして拡大)
同種移行における Cloud VPN と Private Service Connect の接続を示す図。

Cloud SQL for PostgreSQL インスタンスから移行する場合、ソース インスタンスでプライベート サービス アクセスを有効にし、ネットワーク アタッチメントを作成する Virtual Private Cloud とピアリングする必要があります。ただし、移行先の AlloyDB for PostgreSQL クラスタはピアリング割り当てを消費しません。代わりに、Private Service Connect インターフェースを使用します。

Private Service Connect インターフェースを使用した移行のネットワーク接続を示す図。
図 5. Cloud SQL for PostgreSQL からの同種移行用の Private Service Connect インターフェースを使用したネットワーク接続。(クリックして拡大)
Private Service Connect インターフェースを使用した移行のネットワーク接続を示す図。

Private Service Connect インターフェースの要件

この接続方法には、次のものが必要です。

  • 移行先のデータベース クラスタは、PSC が有効になっている AlloyDB for PostgreSQL クラスタである必要があります。

  • プライベート サービス アクセスが有効になっている Virtual Private Cloud ネットワークが必要です。

    これは、ネットワーク アタッチメントを作成するネットワークです。ソース データベースの IP は、その Virtual Private Cloud から到達可能である必要があります。たとえば、Cloud SQL for PostgreSQL ソースの場合、これは PSA 対応のソース Cloud SQL インスタンスとピアリングするネットワークです。

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

Private Service Connect インターフェースでプライベート IP 接続を使用するには、Virtual Private Cloud からソース データベースのプライベート IP に到達できる必要があります。ネットワーク アーキテクチャによっては、Cloud VPN や Cloud Interconnect などの追加コンポーネントの使用が必要になる場合があります。

さまざまなデータベース ソースのプライベート IP 接続の構成の詳細については、以下をご覧ください。

クラウドでホストされている VM を経由した TCP プロキシ

この接続方法は、Virtual Private Cloud ピアリングを介したプライベート接続を使用する場合の代替手段ですが、非推移的な VPC ピアリングにより、ソース データベースと宛先の AlloyDB for PostgreSQL クラスタ間の直接ルーティングが妨げられます。

このシナリオは、古いプロデューサー ネットワーク アーキテクチャを使用する Cloud SQL for PostgreSQL インスタンスから、プライベート サービス アクセス(PSA)で構成された移行先の AlloyDB for PostgreSQL クラスタに移行する場合に最もよく発生します。両方のサービスが別々の Google 管理のプロデューサー ネットワークに存在し、VPC ピアリングが推移的ではないため、トラフィックはそれらの間で直接流れることはできません。また、セルフホスト型のソース データベースと移行先の AlloyDB for PostgreSQL クラスタが、ピアリングされた別々の VPC ネットワークに存在する場合や、企業のセキュリティ ポリシーで移行トラフィックを単一の静的内部 IP アドレス経由でルーティングする必要がある場合にも適用されます。

VPC ネットワーク内の中間 Compute Engine VM がブリッジとして機能し、宛先の AlloyDB for PostgreSQL プライマリ インスタンスからポート 5432 で受信レプリケーション接続を受け入れ、ソース データベースに転送します。

TCP プロキシ VM を使用するプライベート データベース接続のアーキテクチャ図。
図 6. TCP プロキシ VM によって促進されるプライベート接続。(クリックして拡大)
TCP プロキシ VM を使用するプライベート データベース接続のアーキテクチャ図。

TCP プロキシ接続の要件

この接続方法には、次のものが必要です。

  • 宛先の AlloyDB for PostgreSQL クラスタとピアリングされた Virtual Private Cloud ネットワーク内の Compute Engine VM。TCP プロキシ コンテナを実行します。
  • プロキシ VM からソース データベース インスタンスへの Network Reachability。

TCP プロキシ接続を構成する

Google Cloud コンソールで移行ジョブを作成すると、Database Migration Service は必要なパラメータを収集し、Compute Engine プロキシ コンテナ VM と VPC に必要な上り(内向き)ファイアウォール ルールを作成する gcloud スクリプトを生成します。詳細な手順については、 クラウドでホストされている VM を介した TCP プロキシを使用して接続を構成するをご覧ください。

VPC ピアリングを利用したプライベート接続

この方法では、Virtual Private Cloud(VPC)のプライベート IP アドレスを介してソースに接続できます。この方法を使用するために、パブリック インターネットにインターフェースを公開する必要はありませんが、ソース データベースの IP アドレスまたはホスト名に Google Cloud VPC からアクセスできる必要があります。 Google Cloudの外部にあるソースの場合、Cloud VPN や Cloud Interconnect などの追加のネットワーク コンポーネントが必要になることがあります。

同種の PostgreSQL 移行の Virtual Private Cloud ピアリング接続を示す図。
図 7. 同種の PostgreSQL 移行のための Virtual Private Cloud ピアリングによるネットワーク接続。(クリックして拡大)
同種の PostgreSQL 移行における Virtual Private Cloud ピアリング接続を示す図。

VPC ピアリングを使用したプライベート IP 接続の要件

VPC ピアリングを使用したプライベート IP 接続には、次のものが必要です。

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

Virtual Private Cloud ピアリングでプライベート IP 接続を使用するには、Virtual Private Cloud からソース データベースのプライベート IP に到達できる必要があります。ネットワーク アーキテクチャによっては、Cloud VPN や Cloud Interconnect などの追加コンポーネントを使用する必要があります。

さまざまなデータベース ソースのプライベート IP 接続の構成の詳細については、以下をご覧ください。

ネットワーク接続のディシジョン ツリー

サポートされているすべての接続方法とその要件を理解したら、図の質問に沿って、シナリオに適した接続方法を選択できます。

適切な接続方法を選択するのに役立つ、ガイド付きの質問を含むディシジョン ツリー図。
図 8. ソース ネットワーク接続のディシジョン ツリー。

次のステップ