ディザスタリカバリインスタンスを作成する前に、ソースインスタンスと宛先インスタンスの間にネットワーク接続があることを確認する必要があります。ソースインスタンスは、ディザスタリカバリを有効にするインスタンスです。宛先インスタンスは、RDS for PostgreSQL インスタンスであるディザスタリカバリインスタンスです。また、ソースインスタンスに同期アカウントを作成し、関連ファイルを設定する必要もあります。このトピックでは、ECS インスタンスで実行されている自主管理 PostgreSQL データベースを例として、これらの準備について説明します。
前提条件
次の条件を満たす宛先 RDS for PostgreSQL インスタンスが必要です。詳細については、「RDS for PostgreSQL インスタンスの作成」をご参照ください。
宛先インスタンスのメジャーバージョンは、ソースインスタンスのメジャーバージョンと同じです。
インスタンスはプライマリインスタンスである必要があります。読み取り専用インスタンスは、ディザスタリカバリインスタンスとして使用できません。
インスタンスの課金方法は、サブスクリプションまたは従量課金である必要があります。サーバーレスインスタンスは、ディザスタリカバリインスタンスとして使用できません。
インスタンスは空で、データが含まれていない必要があります。利用可能なストレージ容量は、自主管理 PostgreSQL データベースの合計データサイズ以上である必要があります。
ネットワーク接続の確立
ネットワーク接続ソリューション
ソースインスタンスタイプ | ネットワーク接続方法 |
オンプレミスのデータセンター内の自主管理データベース | Express Connect、VPN Gateway、Smart Access Gateway、または Cloud Enterprise Network (CEN)。 |
別のクラウドプラットフォーム上の自主管理データベース | |
Alibaba Cloud ECS インスタンス上の自主管理データベース | CEN または インターネット NAT ゲートウェイ。 説明 ECS インスタンスと宛先 RDS for PostgreSQL インスタンスが同じ VPC にある場合、ネットワーク接続を確立する必要はありません。 |
その他のクラウドホスティング | |
Alibaba Cloud RDS | CEN または インターネット NAT ゲートウェイ。 説明 ソース RDS for PostgreSQL インスタンスと宛先 RDS for PostgreSQL インスタンスが同じ VPC にある場合、ネットワーク接続を確立する必要はありません。 |
ソースインスタンスがパブリックネットワークアクセスをサポートしている場合、インターネット NAT ゲートウェイを使用して、さまざまなタイプのソースインスタンスを宛先インスタンスの VPC に接続できます。このトピックでは、インターネット NAT ゲートウェイを使用してネットワーク接続を確立するために、宛先インスタンスである RDS for PostgreSQL インスタンスを設定する方法について説明します。
パブリックネットワークアクセスをサポートしていないソースインスタンスの場合は、CEN インスタンスを使用してネットワーク接続を確立できます。詳細については、「CEN インスタンスを設定してネットワーク接続を確立する」をご参照ください。
宛先インスタンスのインターネット NAT ゲートウェイの設定
ApsaraDB RDS コンソールにログインし、[インスタンス] ページに移動します。上部のナビゲーションバーで、RDS インスタンスが存在するリージョンを選択します。次に、RDS インスタンスを見つけて、インスタンス ID をクリックします。
左側のナビゲーションウィンドウで、[データベース接続] をクリックします。[データベース接続] ページで、宛先インスタンスの VPC と vSwitch を表示できます。
VPC ID にカーソルを合わせると、vSwitch ID が表示されます。

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

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