ApsaraDB RDS for PostgreSQL のディザスタリカバリインスタンスを作成する前に、次の準備を完了してください。
このトピックでは、ECS インスタンスで実行されているセルフマネージド PostgreSQL データベースを例に説明します。
前提条件
ターゲットインスタンスはディザスタリカバリインスタンスです。これは、ソースからレプリケートされたデータを受信するために作成する ApsaraDB RDS for PostgreSQL インスタンスです。開始する前に、ターゲットインスタンスが次のすべての条件を満たしていることを確認してください。インスタンスの作成の詳細については、「ApsaraDB RDS for PostgreSQL インスタンスの作成」をご参照ください。
-
メジャーバージョンがソースインスタンスのバージョンと一致していること。
-
インスタンスがプライマリインスタンスであること。読み取り専用インスタンスはディザスタリカバリインスタンスとして使用できません。
-
課金方法がサブスクリプションまたは従量課金であること。サーバーレスインスタンスはディザスタリカバリインスタンスとして使用できません。
-
インスタンスが空でデータが含まれておらず、利用可能なストレージ容量がソースデータベースの合計データサイズ以上であること。
ネットワーク接続の確立
ネットワーク接続ソリューション
ソースデータベースがホストされている場所に基づいて接続方法を選択します。
| ソースインスタンスのタイプ | ネットワーク接続方法 |
|---|---|
| オンプレミスデータセンター内のセルフマネージドデータベース | Express Connect、VPN Gateway、Smart Access Gateway、または Cloud Enterprise Network (CEN) |
| 他のクラウドプラットフォーム上のセルフマネージドデータベース | Smart Access Gateway、CEN、または インターネット NAT ゲートウェイ |
| Alibaba Cloud ECS インスタンス上のセルフマネージドデータベース | CEN または インターネット NAT ゲートウェイ。ECS インスタンスとターゲットの ApsaraDB RDS インスタンスが同じ仮想プライベートクラウド (VPC) にある場合は不要です。 |
| その他のクラウドホスティング | Smart Access Gateway、CEN、または インターネット NAT ゲートウェイ |
| Alibaba Cloud ApsaraDB RDS | CEN または インターネット NAT ゲートウェイ。ソースとターゲットの ApsaraDB RDS インスタンスが同じ VPC にある場合は不要です。 |
ソースインスタンスがパブリックネットワークアクセスをサポートしている場合は、インターネット NAT ゲートウェイを使用してターゲットインスタンスの VPC に接続します。以下の手順では、ターゲットの ApsaraDB RDS インスタンス用にインターネット NAT ゲートウェイを設定する方法について説明します。
ソースインスタンスがパブリックネットワークアクセスをサポートしていない場合は、代わりに CEN インスタンスを使用します。詳細については、「CEN インスタンスを設定してネットワーク接続を確立する」をご参照ください。
ターゲットインスタンスのインターネット NAT ゲートウェイの設定
-
ApsaraDB RDS コンソールにログインし、[インスタンス] ページに移動します。 上部のナビゲーションバーで、RDS インスタンスのリージョンを選択します。 対象のインスタンスを見つけ、その ID をクリックします。
-
左側メニューで、[データベース接続] をクリックします。[データベース接続] ページで、ターゲットインスタンスの [VPC] と [vSwitch] をメモします。VPC ID にカーソルを合わせると、vSwitch ID が表示されます。

-
VPC ID をクリックして VPC コンソールに移動します。
-
[リソース管理] タブに移動します。[インターネットへのアクセス] セクションで、[インターネット NAT ゲートウェイ] にカーソルを合わせ、[今すぐ作成] をクリックします。

-
インターネット NAT ゲートウェイを設定し、[今すぐ購入] をクリックします。
設定 説明 [課金方法] デフォルトは [従量課金] です。課金の詳細については、「NAT ゲートウェイの課金」をご参照ください。 [インスタンス名] ゲートウェイの名前を入力します。名前は 2〜128 文字で、先頭は英字または漢字である必要があります。数字、アンダースコア (_)、ハイフン (-) を含めることができます。 [リージョン] ターゲットの ApsaraDB RDS インスタンスのリージョンを選択します。 [リソースグループ] VPC が属するリソースグループを選択します。詳細については、「リソースグループとは」をご参照ください。 [ネットワークとゾーン] ターゲットの ApsaraDB RDS インスタンスの VPC と vSwitch を選択します。 [ネットワークタイプ] [インターネット NAT ゲートウェイ] を選択します。 [EIP] Elastic IP アドレス (EIP) を選択します。お持ちでない場合は、「統合アクセスモードでインターネット NAT ゲートウェイと EIP を購入する」をご参照ください。 -
[確認] ページで設定を確認し、[今すぐ有効化] をクリックします。
ソースインスタンスの設定
ステップ 1:同期アカウントの作成
同期アカウントは、ディザスタリカバリサービスがデータをレプリケートするために使用するソースインスタンス上のデータベースアカウントです。次の手順で作成します。
-
ソースの PostgreSQL インスタンスに接続し、同期アカウントを作成します。次の例では、
replicatoraccountという名前のアカウントを作成します。CREATE ROLE replicatoraccount CREATEROLE REPLICATION LOGIN PASSWORD 'your_password'; -
アカウントに
pg_monitor権限を付与します。GRANT pg_monitor TO replicatoraccount; -
replicatoraccountを使用してソースインスタンスに接続し、次の手順を実行して、アカウントに必要な権限があることを確認します。-
REPLICATION権限を持つテストアカウントを作成します。CREATE USER testreplicator WITH REPLICATION;「
must be superuser to create replication users」というエラーが返された場合は、SUPERUSER権限を持つアカウントでソースインスタンスに接続し、replicatoraccountにSUPERUSERを付与します。ALTER USER replicatoraccount WITH SUPERUSER; -
テストアカウントを削除します。
DROP USER IF EXISTS testreplicator;
-
ステップ 2:ECS セキュリティグループの設定
インターネット NAT ゲートウェイがソースの PostgreSQL データベースに接続できるように、インバウンドルールを追加します。
-
ECS コンソールにログインします。
-
左側メニューで、 を選択します。
-
上部メニューで、リージョンを選択します。
-
ソースの ECS インスタンスを見つけて、その ID をクリックします。
-
[セキュリティグループ] タブで、セキュリティグループの名前をクリックします。
-
[セキュリティグループの詳細] ページで、[インバウンド] タブの [ルール] セクションに移動し、[ルールを追加] をクリックします。次のルールを追加します。
プロトコルタイプ ポート範囲 承認オブジェクト すべての ICMP (IPv4) ソース: -1/-1/ 宛先:-1/-1ターゲットの ApsaraDB RDS インスタンス用に作成されたインターネット NAT ゲートウェイの EIP。ゲートウェイの [関連付けられた EIP] タブで EIP を確認できます。 TCP セルフマネージド PostgreSQL データベースのポート。 netstat -a | grep PGSQLを実行してポートを確認します。
ステップ 3:pg_hba.conf ファイルの設定
以下の手順では、CentOS 7 上の PostgreSQL 13 を例に説明します。
pg_hba.conf ファイルは、どのホストが PostgreSQL に接続できるか、および各ホストが使用する認証方式を制御します。エントリを追加して、インターネット NAT ゲートウェイが同期アカウントを使用してソースデータベースに接続できるようにします。
-
セルフマネージド PostgreSQL データベースがデプロイされている ECS インスタンスにログインします。詳細については、「ECS インスタンスへのリモート接続」をご参照ください。
-
pg_hba.confファイルの場所を検索します。このコマンドを実行する前に、root ユーザーに切り替えてください。find / -name pg_hba.conf出力例:
/var/lib/pgsql/13/data/pg_hba.conf -
ファイルが含まれているディレクトリに移動します。
cd /var/lib/pgsql/13/data/ -
pg_hba.confを編集し、ファイルの末尾に次の行を追加します。プレースホルダー 説明 replicatoraccountステップ 1 で作成した同期アカウント。 121.XX.XX.XXターゲットの ApsaraDB RDS インスタンス用に作成されたインターネット NAT ゲートウェイの EIP。ゲートウェイの [関連付けられた EIP] タブで確認できます。 host all replicatoraccount 121.XX.XX.XX/32 md5 host replication replicatoraccount 121.XX.XX.XX/32 md5プレースホルダーを実際の値に置き換えてください:
-
ソースの PostgreSQL インスタンスに接続し、設定をリロードします。
SELECT pg_reload_conf();期待される出力:
pg_reload_conf ---------------- t (1 row)
ステップ 4:postgresql.conf ファイルの設定
手順については、「postgresql.conf ファイルの設定」をご参照ください。
ステップ 5:サーバーファイアウォールの設定
手順については、「サーバーファイアウォールの設定」をご参照ください。