Aurora PostgreSQL のブルー/グリーンデプロイで論理レプリケーション時のパラメータはどう設定すればいいですか
困っていた内容
Aurora PostgreSQL のブルー/グリーンデプロイを使ってアップグレードをしようと思います。
論理レプリケーションを有効にする必要があるのですが、関連パラメータの設定値をどう設定すればよいかわかりません。
回答
Aurora PostgreSQL のブルー/グリーンデプロイメントで論理レプリケーションを使用する場合、AWS 公式ドキュメントに記載のとおり「多くの場合はデフォルト値で十分」となります。
予想される使用状況に応じて、次のパラメータ設定の変更が必要になる場合があります。ただし、多くの場合はデフォルト値で十分です。
論理レプリケーションを有効にするには、まず rds.logical_replication パラメータを 1 (オン)に設定する必要があります。
その他の以下の関連パラメータについては、多くの場合にはデフォルト値のままでブルー/グリーンデプロイメントをご利用いただける形となります。
max_replication_slotsmax_wal_sendersmax_logical_replication_workersmax_worker_processes
一方で、ドキュメントに記載のとおり 「予想される使用状況に応じて」パラメータ設定の変更が必要になる 場合もございます。
各パラメータ設定値による影響はワークロードに依存するため、最適な設定値は環境によって異なります。
そのため、Aurora クローンなどをご利用いただき、本番ワークロードを模した検証環境を作成の上で、負荷テストを実施 されることを推奨いたします。
検証環境での負荷テスト実施により、ご利用のワークロードに最適なパラメータ設定値をご検討ください。
Aurora のクローン作成は、データを破損の危険にさらすことなく、本番データを使用してテスト環境を迅速にセットアップする場合に特に役立ちます。クローンは、次のようなさまざまなタイプのアプリケーションに使用できます。
- 潜在的な変更 (スキーマの変更やパラメータグループの変更など) を試して、すべての影響を評価する。
- データのエクスポートや分析クエリの実行など、大量のワークロードを扱うオペレーションをクローン上で実行する。
- 開発、テスト、またはその他の目的のために、本番 DB クラスターのコピーを作成する。
なお、パラメータ値の設定判断においては、以下の内容もご参照ください。
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 倍のどちらか大きい方になります)。
参考情報








