すべてのプロダクト
Search
ドキュメントセンター

ApsaraDB RDS:ワンクリックでパブリック PostgreSQL データベースをクラウドへ移行

最終更新日:Mar 29, 2026

ApsaraDB RDS for PostgreSQL のクラウド移行機能を使用すると、自社管理の PostgreSQL インスタンスまたは他社クラウドの PostgreSQL インスタンスを ApsaraDB RDS へ移行できます。この移行では、安全なネットワークアドレス変換(NAT)経路を介してインターネット上からソースインスタンスと RDS インスタンスを接続します。具体的には、RDS インスタンスがソース側へ接続を試みる方式であり、RDS インスタンス自体はパブリックインターネットに一切公開されません。

説明

この手法は、パブリック IP アドレスのみで到達可能なソースインスタンス(自社管理サーバーまたは AWS RDS、Google Cloud SQL などの他社クラウドデータベース)に適しています。ソースインスタンスがすでに Alibaba Cloud の VPC 内にある場合は、代わりにプライベートネットワーク経由の移行パスをご利用ください。

仕組み

エンドツーエンドの移行プロセスは、以下の 4 つのフェーズで構成されます:

  1. ネットワーク接続の構成 — RDS の VPC にインターネット NAT ゲートウェイおよび弾性 IP アドレス(EIP)をアタッチし、RDS インスタンスがインターネット経由でソースインスタンスに接続できるようにします。

  2. ソースインスタンスの構成 — WAL パラメーターを設定し、移行用アカウントを作成し、ソース側で EIP をホワイトリストに登録します。

  3. 実行可能性評価の実行 — 移行開始前に、ApsaraDB RDS がバージョン互換性、アカウント権限、WAL 構成を確認します。

  4. 移行の開始とスイッチオーバー — 移行をトリガーし、増分同期の進行状況を監視したうえで、ワークロードを RDS インスタンスへ切り替えます。

背景情報

ApsaraDB RDS インスタンスは仮想プライベートクラウド(VPC)内で実行され、デフォルトではインターネットへのアクセスが許可されていません。パブリック IP アドレスのみを持つソースインスタンスからデータを取得するには、RDS インスタンスにアウトバウンドのインターネット接続性を付与する必要があります。VPC にインターネット NAT ゲートウェイをアタッチし、それに EIP を関連付けます。NAT ゲートウェイに対して作成されたソースネットワークアドレス変換(SNAT)エントリにより、RDS インスタンスはインターネットへ接続可能になりますが、RDS のサービス自体はパブリックに公開されることはありません。

説明

インターネット NAT ゲートウェイおよび SNAT の詳細については、「インターネット NAT ゲートウェイの SNAT 機能を用いたインターネットアクセス」をご参照ください。

適用範囲/利用シーン

  • パブリック IP アドレスを持つ自社管理の PostgreSQL インスタンスを ApsaraDB RDS for PostgreSQL へ移行します。

  • 他社クラウドプロバイダー(Google Cloud や AWS など)でホストされている PostgreSQL インスタンスを ApsaraDB RDS for PostgreSQL へ移行します。

説明

他社クラウドプロバイダーでは独自の PostgreSQL 拡張機能が使用される場合があります。拡張機能の互換性に関する問題が発生した場合は、チケットを送信チケットを送信してください。

前提条件

開始前に、以下の点を確認してください。

  • ソース PostgreSQL インスタンスと RDS インスタンスが同一のメジャーエンジンバージョンで動作していること。PostgreSQL 10 以降がサポートされています。

    説明

    ソースのバージョンが PostgreSQL 10 より古い場合は、移行前にアップグレードしてください。メジャーバージョンが異なる場合、実行可能性評価は失敗し、移行は実行できません。

  • RDS インスタンスがプライマリインスタンスであること。読み取り専用インスタンスではクラウド移行機能はサポートされていません。

  • RDS インスタンスがクラウドディスクを使用していること。

  • RDS インスタンスが空であるとともに、利用可能なストレージ容量がソースインスタンス上のデータサイズ以上であること。

    説明

    RDS インスタンスに既存のデータが含まれている場合、実行可能性評価は失敗します。データをバックアップしてクリアするか、新しい RDS インスタンスを作成してから進めてください。

制限事項

該当なし。

影響

該当なし。

注意事項

移行中は、ソース PostgreSQL インスタンスへのアクセスを継続的に確保してください。再起動を行わないでください。一時的な接続切断や高可用性(HA)によるスイッチオーバーが発生すると、移行が失敗します。

課金

インターネット NAT ゲートウェイおよび EIP の構成には課金が発生します。「インターネット NAT ゲートウェイの課金」をご参照ください。

ステップ 1:インターネット NAT ゲートウェイおよび EIP の構成

このステップでは、RDS の VPC にアウトバウンドのインターネット接続性を付与し、RDS インスタンスがソースインスタンスへ接続できるようにします。

重要

RDS の VPC に既にインターネット NAT ゲートウェイが構成済みであったり、パブリック IP アドレスが関連付け済みであったりしないことを確認してください。既存の構成があると、RDS インスタンスへのアクセスが遮断される可能性があります。

  1. インスタンスページへ移動します。上部のナビゲーションバーから、RDS インスタンスが配置されているリージョンを選択します。対象のインスタンスを見つけ、その ID をクリックします。

  2. 左側のナビゲーションウィンドウで、データベースの接続 をクリックします。データベースの接続 セクションで、ネットワークタイプ の横にある VPC のリンクをクリックします。

    image..png

  3. VPC コンソールで、リソース タブをクリックします。インターネットへのアクセス セクションで、今すぐ作成 をクリックします。

    image..png

  4. インターネット NAT ゲートウェイ ページで、以下のパラメーターを設定します。その他のパラメーターはすべてデフォルト値のままとします。

    パラメーター説明
    EIPVPC に既に EIP が関連付けられている場合は、EIP の選択 を選択します。それ以外の場合は、EIP の購入 を選択します。EIP の購入
    最大帯域幅帯域幅不足による移行遅延を防ぐため、プランで許容される最大値を設定します。200 Mbps
  5. 今すぐ購入 をクリックします。

  6. 設定内容を確認し、利用規約 に同意したうえで 確認 をクリックします。次のページが表示された時点で、NAT ゲートウェイの作成、EIP の関連付け、SNAT エントリの構成が完了します。

    image..png

  7. EIP のリソース ID をクリックします。インスタンス情報 タブで、パブリック IP アドレス を確認します。この EIP は、次のステップでソースインスタンスを構成する際に必要になります。

    image..png

ステップ 2:ソースインスタンスの構成

構成手順は、ソースが自社管理インスタンスか他社クラウドインスタンスかによって異なります。

自社管理の PostgreSQL インスタンス

  1. postgresql.conf ファイルの構成

  2. ソースインスタンス上での移行用アカウントの作成

  3. pg_hba.conf ファイルの更新 — ステップ 1 で取得した EIP からの接続を許可します。

    重要

    pg_hba.conf に追加する IP アドレスは、ステップ 1 で RDS インスタンスに関連付けた EIP であり、RDS インスタンスのプライベート IP アドレスではありません。

  4. サーバーファイアウォールの構成 — EIP からのインバウンド接続を許可します。

他社クラウドの PostgreSQL インスタンス

1. WAL 保持パラメーターの設定

PostgreSQL では、完全バックアップ後に pg_wal ディレクトリ内の書き込み前ログ(WAL)ファイルが削除されます。保持期間が短すぎると、完全バックアップが完了する前に WAL ファイルが削除され、移行が失敗して完全バックアップからやり直す必要があります。完全バックアップの所要時間に十分に対応できるよう、保持期間を十分に長く設定してください。

  • PostgreSQL 10、11、12 — `wal_keep_segments`:値を 4096 以上に設定します。各セグメントは 16 MB であるため、4096 セグメントで約 64 GB の WAL を保持でき、ほとんどの完全バックアップ所要時間に対応可能です。完全バックアップに数時間を超える時間がかかる場合は、この値をさらに増加させてください。

  • PostgreSQL 13、14、15 — `wal_keep_size`:値を 65536(MB)以上に設定します。これは、pg_wal ディレクトリ内で保持される WAL の最小サイズを直接制御します。

2. 移行用アカウントの作成

ソースインスタンス上で以下の SQL を実行します。

CREATE USER migratetest CREATEROLE REPLICATION LOGIN PASSWORD '123456';
GRANT pg_monitor TO migratetest;
説明

migratetest および 123456 は、実際のユーザー名およびパスワードに置き換えてください。

3. EIP のホワイトリスト登録

ソースインスタンスでパブリックエンドポイントを有効化し、セキュリティグループまたはホワイトリストを構成して、ステップ 1 で取得した EIP からのインバウンド接続を許可します。ご利用のクラウドプロバイダーのドキュメントをご参照ください。

重要

ソースインスタンスではインターネット制御通知プロトコル(ICMP)を有効化する必要があります。移行開始前に、ping <ソースインスタンスのパブリックエンドポイント> を実行して確認してください。

ステップ 3:実行可能性評価の実行

実行可能性評価では、移行開始前にすべての前提条件が満たされているかを確認します。移行を開始する前に必ず実行してください。

  1. インスタンスページへ移動します。対象の RDS インスタンスを見つけ、その ID をクリックします。

  2. 左側のナビゲーションウィンドウで、クラウド移行 / ディザスタリカバリ構築 をクリックします。表示されたページで、実行可能性評価 タブをクリックします。

  3. シナリオおよびソースタイプの構成 ステップで、シナリオクラウドへの移行ソース自社管理インスタンスまたは他社インスタンス を選択します。次のステップ をクリックします。

  4. 宛先インスタンスの構成 ステップで、次のステップ をクリックします。

  5. ソースインスタンスの構成 ステップで、一覧表示された準備項目がすべて完了していることを確認し、次のステップ をクリックします。

  6. 実行可能性評価の開始 ステップで、ソースインスタンスの詳細情報を入力します。

    パラメーター説明
    移行タスク名自動生成されます。変更の必要はありません。
    ソース VPC IP/DNS自社管理インスタンスの場合:サーバーのパブリック IP アドレス。他社クラウドインスタンスの場合:インスタンスのパブリックエンドポイント。
    ソースインスタンスポート自社管理インスタンスの場合:netstat -a | grep PGSQL を実行してポートを確認します。他社クラウドインスタンスの場合:プロバイダーのコンソールで確認します。
    ユーザ名ステップ 2 で作成した移行用アカウントです。
    パスワード移行用アカウントのパスワードです。
  7. 実行可能性評価タスクの作成 をクリックします。

評価が完了したら、クラウドへの移行 セクションの 実行可能性評価 タブ内の ステータス 列を確認します。

  • 成功 — ステップ 4 へ進んでください。

  • 失敗しましたレポートの表示操作 列からクリックしてエラー内容を確認します。修正後、再評価 をクリックして評価を再実行します。一般的なエラーについては、「クラウド移行評価レポートの概要」をご参照ください。

説明

他社クラウドプロバイダーの拡張機能が互換性エラーを引き起こした場合は、チケットを送信チケットを送信してください。

ステップ 4:移行の開始とスイッチオーバー

重要

実行可能性評価のステータスが 成功 と表示された後のみ、移行を開始してください。

  1. インスタンスページへ移動します。対象の RDS インスタンスを見つけ、その ID をクリックします。

  2. 左側のナビゲーションウィンドウで、クラウド移行 / ディザスタリカバリ構築 をクリックします。クラウド移行 タブで、クラウド移行タスクの作成 をクリックします。

  3. クラウド移行タスクの作成 ダイアログボックスで、評価タスクを関連付け のドロップダウンリストから成功した評価タスクを選択します。システムが必須パラメーターを自動的に入力します。

  4. クラウド移行を開始 をクリックします。移行が自動的に開始されます。

    警告

    移行中は、ソース PostgreSQL インスタンスへのアクセスを継続的に確保し、再起動を行わないでください。一時的な接続切断や高可用性(HA)によるスイッチオーバーが発生すると、移行が失敗します。

  5. ワークロードを RDS インスタンスへ切り替えます。

    1. クラウド移行プロセス 列のリンクをクリックして進行状況を監視します。

    2. 移行が 増分同期 フェーズに入った時点で、切り替え操作 列からクリックします。

    3. 切り替え ダイアログボックスで、アプリケーションによるソースインスタンスへの書き込みを停止します。以下の SQL を実行してソースインスタンスを読み取り専用モードに設定し、既存の接続を解放します。

      -- ソースインスタンスを読み取り専用に設定します。
      ALTER SYSTEM SET default_transaction_read_only=on;
      
      -- 再起動せずに変更を適用します。
      SELECT pg_reload_conf();
      
      -- システムアカウントを除くすべてのアクティブセッションを終了します。
      SELECT pg_terminate_backend(pid) FROM pg_stat_activity
      WHERE usename not in ('replicator', 'monitor', 'pgsql', 'aurora')
        AND pid != pg_backend_pid();
    4. すべてのチェックボックスを選択し、今すぐ切り替え をクリックします。移行が完了するまでお待ちください。

次のステップ

  • アプリケーションの接続文字列を、新しい RDS インスタンスのエンドポイントへ変更します。

  • RDS インスタンスで自動バックアップおよびモニタリングを有効化します。

  • 読み取り専用インスタンス、パラメータチューニング、パフォーマンスインサイトなどの機能 を設定するには、ApsaraDB RDS for PostgreSQL ドキュメント をご参照ください。