このトピックでは、クラウド移行機能を使用して、Elastic Compute Service (ECS) インスタンスまたはデータセンターにある自己管理型PostgreSQLインスタンスからApsaraDB RDS for PostgreSQLインスタンスにデータを移行する方法について説明します。 ApsaraDB RDS for PostgreSQLのクラウド移行機能は、物理ストリーミングレプリケーションを使用して、データをクラウドに使いやすく、効率的な方法で、ダウンタイムなしで高速に移行できるようにします。 この機能はすべてのシナリオに適しています。
前提条件
- ApsaraDB RDS for PostgreSQLインスタンスは、次の要件を満たしています。
- ApsaraDB RDS for PostgreSQLインスタンスとセルフマネージド型PostgreSQLインスタンスは、同じバージョンのPostgreSQLを実行します。このバージョンは、PostgreSQL 10以降です。 説明 PostgreSQL 10を実行するインスタンスからPostgreSQL 13を実行するRDSインスタンスにデータを移行する場合は、クラウド移行機能を使用して、ソースPostgreSQLインスタンスからPostgreSQL 10を実行するRDSインスタンスにデータを移行し、「メジャーバージョンエンジンのアップグレード」の説明に基づいて、RDSインスタンスのメジャーエンジンバージョンをPostgreSQL 13にアップグレードする必要があります。
- ApsaraDB RDS for PostgreSQLインスタンスはプライマリインスタンスです。 読み取り専用のApsaraDB RDS for PostgreSQLインスタンスは、クラウド移行をサポートしていません。
- RDSインスタンスにはクラウドディスクが搭載されています。
- ApsaraDB RDS for PostgreSQLインスタンスが空です。 ApsaraDB RDS for PostgreSQLインスタンスの使用可能なストレージが、自己管理型PostgreSQLインスタンスのデータのサイズ以上であること。
- ApsaraDB RDS for PostgreSQLインスタンスとセルフマネージド型PostgreSQLインスタンスは、同じバージョンのPostgreSQLを実行します。このバージョンは、PostgreSQL 10以降です。
- 自己管理型PostgreSQLインスタンスは、次の要件を満たしています。
- ネットワーク構成
移行ソース ネットワーク設定 自己管理型ECSベースのPostgreSQLデータベースまたはApsaraDB RDS for PostgreSQLインスタンス 自己管理型PostgreSQLインスタンスがECSインスタンスに存在する場合、ECSインスタンスと移行先RDSインスタンスは同じ仮想プライベートクラウド (VPC) に存在する必要があります。 ソースインスタンスがRDSインスタンスの場合、ソースRDSインスタンスとターゲットRDSインスタンスは同じVPCに存在する必要があります。 ソースインスタンスとターゲットRDSインスタンスが異なるVPCにある場合、VPCを接続するにはCloud Enterprise Network (CEN) を使用する必要があります。 詳細については、「CENの概要」をご参照ください。 データセンター内の自己管理型PostgreSQLデータベース (ターゲットデータベースと同じVPC内) データセンターは、移行先RDSインスタンスが属するVPCと通信できる必要があります。 詳細については、「データセンターをVPCに接続する」をご参照ください。 - 自己管理型PostgreSQLインスタンスがECSインスタンスに存在する場合、ECSセキュリティグループを設定する必要があります。 詳細については、「 (オプション) ECSセキュリティグループの設定」をご参照ください。
- 「自己管理型postgresqlインスタンスのPostgreSQL. confファイルの設定」で説明されている設定は完了です。
- 「セルフマネージドPostgreSQLインスタンスでのクラウド移行用アカウントの作成」で説明されている設定は完了です。
- 「自己管理型PostgreSQLインスタンスのpg_hba.confファイルの更新」で説明されている設定は完了です。
- 「自己管理型PostgreSQLインスタンスが存在するサーバーのファイアウォールの設定」で説明されている設定は完了しています。
- ネットワーク構成
使用上の注意
クラウド移行中に、自己管理型PostgreSQLインスタンスからデータを読み書きできます。 セルフマネージド型PostgreSQLインスタンスに対して、移行、再起動、仕様の変更などの操作を実行しないでください。
ステップ1: クラウド移行が許可されているかどうかを評価する
- [インスタンス] ページに移動します。 上部のナビゲーションバーで、RDSインスタンスが存在するリージョンを選択します。 次に、RDSインスタンスを見つけ、インスタンスのIDをクリックします。
- 左側のナビゲーションウィンドウで、[クラウドに移行] をクリックします。 表示されるページで、[移行評価] タブをクリックします。
- 設定ウィザードの [移行ソースの選択] ステップで、移行ソースを選択し、[次へ] をクリックします。
- 設定ウィザードの [宛先データベースの設定] ステップで、[次へ] をクリックします。
- 設定ウィザードの [ソースデータベースの設定] ステップで、リストされているすべての項目を選択し、[次へ] をクリックします。 クラウド移行を開始する前に、リストされた項目に記載されている準備を完了する必要があります。 説明 設定ウィザードの [ソースデータベースの設定] ステップに記載されている項目の詳細については、「 (オプション) ECSセキュリティグループの設定」、「セルフマネージドPostgreSQLインスタンスへのクラウド移行用アカウントの作成」、および「セルフマネージドPostgreSQLインスタンスのpg_hba.confファイルの更新」をご参照ください。
- 設定ウィザードの [移行評価の開始] ステップで、自己管理型PostgreSQLインスタンスに関する情報を設定します。
パラメーター 説明 移行タスク名 クラウド移行タスクの名前が自動的に生成されます。 生成された名前を変更する必要はありません。 ソースVPC/DNS IP - 自己管理型PostgreSQLインスタンスがECSインスタンスにある場合、ECSインスタンスのプライベートIPアドレスを入力します。 ECSインスタンスのプライベートIPアドレスを取得する方法の詳細については、「IPアドレスの表示」をご参照ください。
- 自己管理型PostgreSQLインスタンスがデータセンターにある場合は、データセンターのプライベートIPアドレスを入力します。
ソースポート 自己管理型PostgreSQLインスタンスへの接続に使用されるポート。 ポートを表示するには、 netstat -a | grep PGSQL
コマンドを実行します。ユーザー名 自己管理型PostgreSQLインスタンスへの接続に使用されるアカウントのユーザー名。 migratetest
と入力します。これは、[セルフマネージドPostgreSQLインスタンスでクラウド移行用のアカウントを作成する] で作成したアカウントのユーザー名です。Password 自己管理型PostgreSQLインスタンスへの接続に使用されるアカウントのパスワード。 123456
を入力します。これは、[セルフマネージドPostgreSQLインスタンスでのクラウド移行用アカウントの作成] ステップで作成したアカウントのパスワードです。 - [移行評価タスクの作成] をクリックします。 説明 クラウド移行評価中、ApsaraDB RDS for PostgreSQLインスタンスのステータスは [インスタンスの維持] に変わります。クラウド移行評価が完了したら、[移行評価] タブでクラウド移行評価タスクのステータスを表示できます。
- クラウド移行評価タスクの [ステータス] 列の値が [成功] の場合、クラウド移行を開始できます。 詳細については、「手順2: クラウド移行の開始」をご参照ください。
- クラウド移行評価タスクの [ステータス] 列の値が [失敗] の場合、[操作] 列の [レポートの表示] をクリックして、報告されたエラーを表示および処理できます。一般的なエラーの詳細については、「クラウド移行評価レポートの概要」をご参照ください。
報告されたエラーを処理した後、[操作] 列の別の評価を開始するボタンをクリックして、クラウド移行評価タスクを再度実行できます。
ステップ2: クラウド移行を開始する
説明 クラウド移行評価タスクのステータスが成功を示している場合にのみ、クラウド移行を開始できます。
- [インスタンス] ページに移動します。 上部のナビゲーションバーで、RDSインスタンスが存在するリージョンを選択します。 次に、RDSインスタンスを見つけ、インスタンスのIDをクリックします。
- 左側のナビゲーションウィンドウで、[クラウドに移行] をクリックします。 表示されるページで、[クラウドへの移行] タブをクリックします。 表示されるタブで、[クラウド移行タスクの作成] をクリックします。
- [クラウド移行タスクの作成] ダイアログボックスで、[関連評価タスク] ドロップダウンリストから、[ステップ1: クラウド移行が許可されているかどうかを評価する] のステータスが成功を示すクラウド移行評価タスクを選択します。 説明 [関連する評価タスク] ドロップダウンリストからクラウド移行評価タスクを選択すると、[移行元タイプ] 、[送信元IP/DNS] 、[送信元ポート] 、および [ユーザー名] パラメーターの値が自動的に取得されます。 これらのパラメータを手動で設定する必要はありません。
- [クラウドへの移行を開始] をクリックします。 クラウド移行タスクが自動的に開始されます。 警告 クラウド移行中、ApsaraDB RDS for PostgreSQLインスタンスのステータスが [データインの移行] に変わります。 自己管理型PostgreSQLインスタンスからデータを読み書きできます。 セルフマネージド型PostgreSQLインスタンスに対して、移行、再起動、仕様の変更などの操作を実行しないでください。
- 自己管理型PostgreSQLインスタンスのワークロードをApsaraDB RDS for PostgreSQLインスタンスに切り替えます。
- クラウド移行タスクの [クラウド移行フェーズ] 列のリンクをクリックして、タスクの進行状況を表示します。
- クラウド移行タスクが増分データ同期のフェーズに入ったら、クラウド移行タスクの [操作] 列で [切り替え] をクリックして、セルフマネージド型PostgreSQLインスタンスのワークロードをApsaraDB RDS for PostgreSQLインスタンスに切り替えます。
- [切り替え] ダイアログボックスで、読み取り要求のみを処理するように自己管理型PostgreSQLインスタンスを設定します。 または、接続されたアプリケーションが自己管理型PostgreSQLインスタンスにデータを書き込むのを停止します。 説明 読み取り要求のみを処理するようにソースインスタンスを設定できます。
- ソースインスタンスがApsaraDB RDS for PostgreSQLインスタンスの場合、次の手順を実行します。
- RDSインスタンスのrds_force_trans_ro_non_supパラメーターの値をonに変更します。 詳細については、「ApsaraDB RDS For PostgreSQLインスタンスのパラメーターの変更」をご参照ください。
- 次のステートメントを実行して、既存のすべてのセッションを終了します。
SELECT pg_terminate_backend(pid) FROM pg_stat_activity ('replicator' 、'monitor' 、'pgsql' 、'aurora') とpid! =pg_backend_pid();
- ソースインスタンスが自己管理型PostgreSQLインスタンスの場合は、次の手順を実行します。
-- 読み取り要求のみを処理するように自己管理型PostgreSQLインスタンスを設定します。 ALTER SYSTEM SET default_transaction_read_only=on; -変更が有効になるようにパラメーター設定をリロードします。 SELECT pg_reload_conf(); -既存のセッションをすべて終了します。 pg_stat_activityからpg_terminate_backend(pid) を選択 ('replicator' 、'monitor' 、'pgsql' 、'aurora') とpid! =pg_backend_pid();
- ソースインスタンスがApsaraDB RDS for PostgreSQLインスタンスの場合、次の手順を実行します。
- すべてのチェックボックスを選択し、今すぐ切り替えるボタンをクリックします。 その後、クラウド移行が完了するまで待ちます。