Azure Database for PostgreSQL での移行サービスに関するネットワーク シナリオ
適用対象: Azure Database for PostgreSQL - フレキシブル サーバー
この記事では、Azure Database for PostgreSQL の移行サービスを使って、ソース データベースを Azure Database for PostgreSQL のインスタンスに接続するためのさまざまなシナリオの概要について説明します。 移行のための接続を正しく確立するには、シナリオごとに異なるネットワーク要件と構成があります。 具体的な詳細は、ソース環境とターゲット環境の実際のネットワーク設定と要件によって異なります。
次の表は移行シナリオをまとめたものです。 この表では、ソースとターゲットの環境の構成に基づいて、各シナリオがサポートされているかどうかを示します。
PostgreSQL ソース | 移行先 | サポートされています |
---|---|---|
パブリック IP アドレスを使用するオンプレミス | パブリック アクセスを持つ Azure Database for PostgreSQL - フレキシブル サーバー | はい |
仮想プライベート ネットワーク (VPN) または Azure ExpressRoute 経由でプライベート IP アドレスを使用するオンプレミス | 仮想ネットワーク (VNet) 統合型 Azure Database for PostgreSQL - フレキシブル サーバー | はい |
パブリック IP アドレスを使用する Amazon Relational Database Service (Amazon RDS) for PostgreSQL または Amazon Aurora PostgreSQL | パブリック アクセスを持つ Azure Database for PostgreSQL - フレキシブル サーバー | はい |
VPN または ExpressRoute 経由でプライベート アクセスを使用する Amazon RDS for PostgreSQL または Amazon Aurora PostgreSQL | VNet 統合型 Azure Database for PostgreSQL - フレキシブル サーバー | はい |
Google Cloud SQL for PostgreSQL | パブリック アクセスを持つ Azure Database for PostgreSQL - フレキシブル サーバー | はい |
VPN または ExpressRoute 経由でプライベート アクセスを使用する Google Cloud SQL for PostgreSQL | VNet 統合型 Azure Database for PostgreSQL - フレキシブル サーバー | はい |
同じ仮想ネットワーク内または別の仮想ネットワーク内の Azure 仮想マシン (VM) にインストールされている PostgreSQL | 同じ仮想ネットワーク内または別の仮想ネットワーク内の VNet 統合型 Azure Database for PostgreSQL - フレキシブル サーバー | はい |
パブリック アクセスを持つ Azure Database for PostgreSQL - シングル サーバー | VNet 統合型 Azure Database for PostgreSQL - フレキシブル サーバー | はい |
プライベート エンドポイントを使用する Azure Database for PostgreSQL - 単一サーバー | VNet 統合型 Azure Database for PostgreSQL - フレキシブル サーバー | はい |
プライベート エンドポイントを使用する Azure Database for PostgreSQL - 単一サーバー | プライベート エンドポイントを使用する Azure Database for PostgreSQL - フレキシブル サーバー | はい |
プライベート アクセスを持つ PostgreSQL ソース | プライベート エンドポイントを使用する Azure Database for PostgreSQL - フレキシブル サーバー | はい |
プライベート アクセスを持つ PostgreSQL ソース | パブリック アクセスを持つ Azure Database for PostgreSQL - フレキシブル サーバー | いいえ |
オンプレミス (パブリック IP) からフレキシブル サーバー (パブリック アクセス)
ネットワーク確立の手順:
- ソース データベース サーバーにパブリック IP アドレスがあることを確認します。
- PostgreSQL ポート (既定のポートは 5432) での発信接続を許可するようにファイアウォールを構成します。
- ソース データベース サーバーにインターネット経由でアクセスできることを確認します。
- Azure Database for PostgreSQL のターゲット インスタンスからソース データベースへの接続を検証して、セットアップをテストします。 移行サービスがソース データにアクセスできることを確認します。
オンプレミス (プライベート IP) から VNet 統合型フレキシブル サーバー (ExpressRoute または VPN)
ネットワーク確立の手順:
- オンプレミス ネットワークと Azure の間のセキュリティ保護された信頼性の高い接続のために、サイト間 VPN または ExpressRoute インスタンスを設定します。
- オンプレミスの IP アドレス範囲からのアクセスを許可するように、Azure 仮想ネットワークを構成します。
- PostgreSQL ポート (既定のポートは 5432) でのオンプレミス ネットワークからのトラフィックを許可するように、ネットワーク セキュリティ グループ規則を設定します。
- Azure Database for PostgreSQL のターゲット インスタンスからソース データベースへの接続を検証して、セットアップをテストします。 移行サービスがソース データにアクセスできることを確認します。
管理された PostgreSQL サービス (パブリック IP) からフレキシブル サーバー (パブリック/プライベート アクセス)
クラウド プロバイダー (AWS、GCP など) のソース PostgreSQL インスタンスには、パブリック IP アドレスまたは Azure への直接接続が必要です。
ネットワーク確立の手順:
パブリック アクセス
- アマゾン ウェブ サービス (AWS)、Google Cloud Platform (GCP)、またはそれ以外の管理された PostgreSQL サービス内の PostgreSQL インスタンスにパブリックにアクセスできない場合は、Azure からの接続を許可するようにインスタンスを変更します。 クラウド プロバイダーのコンソール (AWS 管理コンソールや Google Cloud コンソールなど) で、パブリック アクセスを許可するように設定を変更します。
- クラウド プロバイダーのセキュリティ設定 (AWS のセキュリティ グループや GCP のファイアウォール規則など) で、Azure Database for PostgreSQL のパブリック IP アドレスまたはドメインからのトラフィックを許可する着信規則を追加します。
プライベート アクセス
- ExpressRoute、IPsec VPN、またはクラウド プロバイダーの同等のプライベート接続サービス (Azure ExpressRoute、AWS Direct Connect、GCP Interconnect) を使って、Azure へのセキュリティ保護された接続を確立します。
- ソース クラウド プロバイダーのセキュリティ設定 (AWS のセキュリティ グループ、GCP のファイアウォール規則など) で、Azure Database for PostgreSQL のパブリック IP アドレスやドメインから、または Azure 仮想ネットワーク内の IP アドレス範囲からのトラフィックを PostgreSQL ポート (既定のポートは 5432) で許可する着信規則を追加します。
- Azure で Azure Database for PostgreSQL のインスタンスと同じリージョンに仮想ネットワークを作成します。 ソース クラウド プロバイダーの PostgreSQL インスタンスの IP アドレスへの発信接続を既定のポート 5432 で許可するように、ネットワーク セキュリティ グループを設定します。
- クラウド プロバイダー (AWS や GCP など) から Azure Database for PostgreSQL の IP アドレス範囲への着信接続を許可するように、Azure でネットワーク セキュリティ グループ規則を設定します。
- 管理された PostgreSQL サービス (AWS、GCP、Heroku など) 内の PostgreSQL インスタンスと Azure Database for PostgreSQL の間の接続をテストして、ネットワークの問題が発生しないことを確認します。
Azure VM (プライベート アクセス) から Azure Database for PostgreSQL (異なる仮想ネットワーク)
このシナリオでは、Azure Virtual Machines のインスタンスと、異なる仮想ネットワーク内にある Azure Database for PostgreSQL のインスタンスの間の接続について説明します。 VNet 間のトラフィックを円滑にするには、仮想ネットワーク ピアリングと適切なネットワーク セキュリティ グループ規則が必要です。
ネットワーク確立の手順:
- 2 つの VNet 間に仮想ネットワーク ピアリングを設定して、ネットワークを直接接続できるようにします。
- PostgreSQL ポートで VNet 間のトラフィックを許可するように、ネットワーク セキュリティ グループ規則を構成します。
Azure VM から Azure Database for PostgreSQL (同じ仮想ネットワーク)
Azure VM と Azure Database for PostgreSQL のインスタンスが同じ仮想ネットワーク内にある場合は、構成は簡単です。 PostgreSQL ポートで内部トラフィックを許可するように、ネットワーク セキュリティ グループ規則を設定します。 トラフィックは仮想ネットワーク内に留まっているので、他のファイアウォール規則は必要ありません。
ネットワーク確立の手順:
- VM と PostgreSQL サーバーが同じ仮想ネットワーク内にあることを確認します。
- PostgreSQL ポートで仮想ネットワーク内のトラフィックを許可するように、ネットワーク セキュリティ グループ規則を構成します。
単一サーバー (パブリック アクセス) から VNet 統合型フレキシブル サーバー
パブリック アクセスできる Azure Database for PostgreSQL - 単一サーバーと、VNet 統合型フレキシブル サーバーの間の接続を円滑にするには、フレキシブル サーバーがデプロイされているサブネットからの接続を許可するようにシングル サーバーを構成します。
この接続を設定する手順の簡単な概要を次に示します。
単一サーバーに VNet 規則を追加します。
Azure portal で、Azure Database for PostgreSQL - 単一サーバーのインスタンスに移動します。
[接続のセキュリティ] の設定に移動します。
[仮想ネットワーク規則] セクションで [既存の仮想ネットワークの追加] を選びます。
単一サーバーに接続できる仮想ネットワークを指定します。
規則の設定を構成します。
構成ペインで、新しい仮想ネットワーク規則の名前を入力します。
フレキシブル サーバーが配置されているサブスクリプションを選びます。
仮想ネットワークと、フレキシブル サーバーに関連付けられている特定のサブネットを選びます。
[OK] を選んで設定を確認します。
以上の手順を完了すると、2 つのサーバー間のセキュリティ保護された通信のため、単一サーバーはフレキシブル サーバーのサブネットからの接続を受け入れるように設定されます。
単一サーバー (プライベート エンドポイント) から VNet 統合型フレキシブル サーバー
プライベート エンドポイントを持つ Azure Database for PostgreSQL - 単一サーバーのインスタンスから VNet 統合型フレキシブル サーバーへの接続を円滑にするには:
プライベート エンドポイントの詳細を取得する:
Azure portal で、Azure Database for PostgreSQL - 単一サーバーのインスタンスに移動します。 プライベート エンドポイントを選んで、仮想ネットワークとサブネットの詳細を表示します。
フレキシブル サーバーの [ネットワーク] ペインに移動します。 サーバーの仮想ネットワークとサブネットの情報を記録しておきます。
VNET ピアリングの要件を評価します。
両方のサーバーが異なる VNet 内にある場合は、仮想ネットワーク ピアリングを有効にして、仮想ネットワーク間を接続する必要があります。 サーバーが同じ仮想ネットワーク内の異なるサブネットにある場合は、ピアリングは省略可能です。 フレキシブル サーバーから単一サーバーへのトラフィックをブロックするネットワーク セキュリティ グループがないことを確認します。
プライベート DNS ゾーンを構成します。
フレキシブル サーバーの [ネットワーク] ペインに移動し、プライベート DNS ゾーンが構成されているかどうかを調べます。 プライベート DNS ゾーンが使われている場合は、ポータルでそのプライベート DNS ゾーンに移動します。 左側のペインで [仮想ネットワーク リンク] を選び、単一サーバーとフレキシブル サーバーの仮想ネットワークがこの一覧に表示されるかどうかを確認します。
プライベート DNS ゾーンが使われていない場合は、[追加] ボタンを選んで、単一サーバーとフレキシブル サーバーの VNet にこのプライベート DNS ゾーンへのリンクを作成します。
単一サーバーのプライベート エンドポイントに移動して、[DNS の構成] ペインを選びます。 プライベート DNS ゾーンがこのエンドポイントにアタッチされているかどうかを調べます。 そうでない場合は、[構成の追加] ボタンを選んでプライベート DNS ゾーンをアタッチします。
単一サーバーのプライベート エンドポイントでプライベート DNS ゾーンを選びます。 単一サーバーとフレキシブル サーバーの VNet が仮想ネットワーク リンクに表示されるかどうかを調べます。 そうでない場合は、前に示した手順のようにして、単一サーバーとフレキシブル サーバーの仮想ネットワークへのリンクをこのプライベート DNS ゾーンに追加します。
最後のチェックとして、単一サーバーのプライベート エンドポイントのプライベート DNS ゾーンに移動し、プライベート IP アドレスを指す "A レコード" が単一サーバーに設定されているかどうかを調べます。
以上の手順を完了すると、Azure Database for PostgreSQL – フレキシブル サーバーのインスタンスから Azure Database for PostgreSQL - 単一サーバーのインスタンスへの接続が有効になります。
単一サーバー (プライベート エンドポイント) からフレキシブル サーバー (プライベート エンドポイント)
このセクションでは、プライベート エンドポイントを持つ単一サーバーから、Azure Database for PostgreSQL 内のプライベート エンドポイントを持つフレキシブル サーバーに移行するための、基本的なネットワーク構成手順について説明します。 これには、ランタイム サーバー仮想ネットワークとプライベート エンドポイントの統合が含まれます。 詳しくは、移行ランタイム サーバーに関する記事をご覧ください。
単一サーバーのプライベート エンドポイントに関する詳細を収集します。
- Azure portal で、Azure Database for PostgreSQL - 単一サーバーのインスタンスに移動します。
- 単一サーバーのプライベート エンドポイント接続の下に一覧表示されている、仮想ネットワークとサブネットに関する詳細を記録しておきます。
フレキシブル サーバーのプライベート エンドポイントに関する詳細を収集します。
- Azure portal で、Azure Database for PostgreSQL - フレキシブル サーバーのインスタンスに移動します。
- フレキシブル サーバーのプライベート エンドポイント接続の下に一覧表示されている、仮想ネットワークとサブネットに関する詳細を記録しておきます。
移行ランタイム サーバーの VNet に関する詳細を収集します。
- Azure portal で、移行ランタイム サーバーに移動します。 つまり、VNet 統合型 Azure Database for PostgreSQL - フレキシブル サーバーのインスタンスに移動します。
- 仮想ネットワークの下に一覧表示されている、仮想ネットワークとサブネットに関する詳細を記録しておきます。
VNET ピアリングの要件を評価します。
- サーバーが異なる VNet 内にある場合は、仮想ネットワーク ピアリングを有効にします。 サーバーが同じ仮想ネットワーク内の異なるサブネットにある場合は、ピアリングは必要ありません。
- ソース サーバー、移行ランタイム サーバー、ターゲット サーバーの間のトラフィックをブロックするネットワーク セキュリティ グループがないことを確認します。
プライベート DNS ゾーンの構成:
フレキシブル サーバーの [ネットワーク] ペインに移動し、プライベート DNS ゾーンが構成されているかどうかを調べます。
プライベート DNS ゾーンが使われている場合は、ポータルでそのプライベート DNS ゾーンに移動します。 左側のペインで [仮想ネットワーク リンク] を選び、単一サーバーとフレキシブル サーバーの仮想ネットワークがこの一覧に表示されるかどうかを確認します。
まだ構成されていない場合は、プライベート DNS ゾーンを単一サーバーのプライベート エンドポイントにアタッチします。
- 単一サーバーと移行ランタイム サーバーに対する仮想ネットワーク リンクをプライベート DNS ゾーンに追加します。
- フレキシブル サーバーのプライベート エンドポイントに対して、DNS ゾーンのアタッチと仮想ネットワーク リンクのプロセスを繰り返します。
または、カスタム DNS サーバーかカスタム DNS 名前空間が使用されている場合は、プライベート DNS ゾーンをリンクする代わりに、カスタム FQDN/IP フィールドを使用できます。 このセットアップにより、プライベート DNS ゾーンの統合を必要とせずに、FQDN または IP を直接解決できます。
PostgreSQL ソース (プライベート IP) からフレキシブル サーバー (プライベート エンドポイント)
このセクションでは、クラウドベースの PostgreSQL サービス、オンプレミスのセットアップ、または VM (すべてプライベート IP アドレスを持つ) から、プライベート エンドポイントでセキュリティ保護された Azure Database for PostgreSQL - フレキシブル サーバーのインスタンスに、PostgreSQL データベースを移行するためのネットワーク構成手順について説明します。 この移行により、オンプレミス接続の場合は Azure VPN または ExpressRoute を使い、クラウド間の移行の場合は仮想ネットワーク ピアリングまたは VPN を使って、プライベート ネットワーク空間内での安全なデータ転送が保証されます。 詳しくは、移行ランタイム サーバーに関する記事をご覧ください。
ネットワーク接続を確立します。
- オンプレミスのソースの場合は、サイト間 VPN を設定するか、ローカル ネットワークを Azure の仮想ネットワークに接続する ExpressRoute を設定します。
- Azure VM、Amazon インスタンス、または Google Compute Engine の場合は、Azure の仮想ネットワークに安全に接続するための、仮想ネットワーク ピアリング、VPN ゲートウェイ、または ExpressRoute があることを確認します。
移行ランタイム サーバーの VNet に関する詳細を収集します。
- Azure portal で、移行ランタイム サーバーに移動します。 つまり、VNet 統合型 Azure Database for PostgreSQL - フレキシブル サーバーのインスタンスに移動します。
- 仮想ネットワークの下に一覧表示されている、仮想ネットワークとサブネットに関する詳細を記録しておきます。
VNET ピアリングの要件を評価します。
- サーバーが異なる VNet 内にある場合は、仮想ネットワーク ピアリングを有効にします。 サーバーが同じ仮想ネットワーク内の異なるサブネットにある場合は、ピアリングは必要ありません。
- ソース サーバー、移行ランタイム サーバー、ターゲット サーバーの間のトラフィックをブロックするネットワーク セキュリティ グループがないことを確認します。
プライベート DNS ゾーンの構成:
- 移行ランタイム サーバーの [ネットワーク] ペインで、プライベート DNS ゾーンが使われていることを確認します。
- ソースとターゲットのフレキシブル サーバーの両方の VNet が、移行ランタイム サーバーのプライベート DNS ゾーンにリンクされていることを確認します。
- まだ構成されていない場合は、プライベート DNS ゾーンをフレキシブル サーバーのプライベート エンドポイントにアタッチします。
- フレキシブル サーバーと移行ランタイム サーバーに対する仮想ネットワーク リンクを、プライベート DNS ゾーンに追加します。
または、カスタム DNS サーバーかカスタム DNS 名前空間が使用されている場合は、プライベート DNS ゾーンをリンクする代わりに、カスタム FQDN/IP フィールドを使用できます。 このセットアップにより、プライベート DNS ゾーンの統合を必要とせずに、FQDN または IP を直接解決できます。
関連するコンテンツ
- ExpressRoute 接続の確立については、「Azure ExpressRoute とは」をご覧ください。
- IPsec VPN の設定方法については、「ポイント対サイト VPN について」をご覧ください。
- 仮想ネットワーク ピアリングの詳細については、こちらをご覧ください。
- 移行サービスについて理解します。
- 既知の問題と制限を調べます。
- 移行前の検証を確認します。