Aurora PostgreSQL DB クラスターの論理レプリケーションの設定
論理レプリケーションの設定には rds_superuser
権限が必要です。以下で説明する手順のように、Aurora PostgreSQL DB クラスターは、必要なパラメータを設定できるように、カスタム DB クラスターパラメータグループを使用するように設定する必要があります。詳細については、「Amazon Aurora DB クラスターの DB クラスターパラメータグループ」を参照してください。
Aurora PostgreSQL DB クラスターに PostgreSQL 論理レプリケーションを設定するには
AWS Management Console にサインインし、Amazon RDS コンソール (https://console.aws.amazon.com/rds/
) を開きます。 -
ナビゲーションペインで、[Aurora PostgreSQL DB cluster] (Aurora PostgreSQL DB クラスター) を選択します。
-
[Configuration] (設定) タブを開きます。インスタンスの詳細の中から、タイプの DB クラスターパラメーターグループとのパラメーターグループのリンクを見つけます。
-
リンクを選択して、Aurora PostgreSQL DB クラスターに関連するカスタムパラメータを開きます。
-
[Parameters] (パラメータ) 検索フィールドに
rds
と入力し、rds.logical_replication
パラメータを検索します。このパラメータのデフォルト値は0
です。つまり、デフォルトではオフになっています。 -
[Edit parameters] (パラメータの編集) を選択してプロパティ値にアクセスし、次にセレクタから
1
を選択して機能をオンにします。予想される使用状況に応じて、次のパラメータ設定の変更が必要になる場合があります。ただし、多くの場合はデフォルト値で十分です。-
max_replication_slots
— このパラメータには、最低でも論理レプリケーションのパブリケーションとサブスクリプションの合計予定数以上の値を設定します。AWS DMS を使用している場合、このパラメータには、クラスターからの変更データ取得タスクの予定数に、論理レプリケーションのパブリケーションとサブスクリプションを加えたものと最低でも同じ値を設定する必要があります。 -
max_wal_senders
およびmax_logical_replication_workers
- これらのパラメータには、アクティブにする予定の論理レプリケーションスロットの最小数、または変更データ取得用のアクティブな AWS DMS タスクの数以上の値を設定します。論理レプリケーションスロットを非アクティブにしておくと、バキュームによってテーブルから古いタプルを削除できないため、レプリケーションスロットをモニタリングして、必要に応じて非アクティブなスロットを削除することをお勧めします。 -
max_worker_processes
– このパラメータには、最低でもmax_logical_replication_workers
、autovacuum_max_workers
、max_parallel_workers
の合計と同じ値を設定してください。小規模な DB インスタンスクラスでは、バックグラウンドのワーカープロセスがアプリケーションのワークロードに影響を与える可能性があるため、max_worker_processes
をデフォルト値よりも高い値を設定する場合はデータベースのパフォーマンスをモニタリングしてください。(デフォルト値はGREATEST(${DBInstanceVCPU*2},8}
の結果であり、つまり、デフォルトでは 8 または DB インスタンスクラスの CPU 相当量の 2 倍のどちらか大きい方になります)。
注記
ユーザー定義の DB パラメータグループのパラメータ値は変更できますが、デフォルトの DB パラメータグループのパラメータ値を変更することはできません。
-
[変更を保存] をクリックします。
Aurora PostgreSQL DB クラスターのライターインスタンスを再起動して、変更を有効にします。Amazon RDS コンソールで、クラスターのプライマリ DB インスタンスを選択し、[Actions] (アクション) メニューから [Reboot] (再起動) を選択します。
インスタンスが使用可能になると、次のように論理レプリケーションがオンになっていること確認できます。
psql
を使用して、Aurora PostgreSQL DB クラスターのライターインスタンスに接続します。psql --host=
your-db-cluster-instance-1
.aws-region
.rds.amazonaws.com --port=5432 --username=postgres
--password --dbname=labdb
次のコマンドを使用して、論理レプリケーションが有効になっていることを確認します。
labdb=>
SHOW rds.logical_replication;
rds.logical_replication ------------------------- on (1 row)
wal_level
がlogical
に設定されていることを確認してください。labdb=>
SHOW wal_level;
wal_level ----------- logical (1 row)
論理レプリケーションを使用して、ソースの Aurora PostgreSQL DB クラスターからの変更とデータベーステーブルの同期を維持させる例については、「例: Aurora PostgreSQL DB クラスターにおける論理レプリケーションの使用」を参照してください。