サポートされている Postgres のバージョン
論理レプリケーションを有効にする
rds.logical_replication = 1
- 必要な設定を含む、Aurora PostgreSQL のバージョンに対応した新しいパラメータグループを作成します。
rds.logical_replicationを 1 に設定します
- 新しいパラメータグループを Aurora PostgreSQL クラスターに適用します
- 変更を反映するため、Aurora クラスターを再起動します
データベースユーザーを設定する
-
ClickPipes 専用のユーザーを作成します。
-
前の手順で作成したユーザーに、スキーマレベルの読み取り専用アクセス権を付与します。以下の例は
publicスキーマに対する権限を示しています。レプリケーションしたいテーブルを含む各スキーマについて、これらのコマンドを繰り返してください。 -
ユーザーにレプリケーション権限を付与します。
- レプリケーションしたいテーブルを含む publication を作成します。パフォーマンスへのオーバーヘッドを避けるため、publication には必要なテーブルだけを含めることを強く推奨します。
-
特定のテーブルに対する publication を作成するには:
-
特定のスキーマ内のすべてのテーブルに対する publication を作成するには:
-
特定のスキーマ内のすべてのテーブルに対する publication を作成するには:
clickpipes publication には、指定したテーブルから生成された変更イベントの集合が含まれ、後でレプリケーションストリームを取り込むために使用されます。
ネットワークアクセスの設定
IP ベースのアクセス制御
Inbound rules に追加してください。
AWS PrivateLink 経由のプライベートアクセス
Aurora 固有の考慮事項
- 接続エンドポイント: 論理レプリケーションでは、レプリケーションスロットを作成するための書き込み権限が必要であり、プライマリインスタンスに接続しなければならないため、必ず Aurora クラスターの writer エンドポイントに接続してください。
- フェイルオーバー時の動作: フェイルオーバーが発生すると、Aurora は自動的に reader を昇格させ、新しい writer にします。ClickPipes は切断を検知すると writer エンドポイントへの再接続を試み、そのエンドポイントは新しいプライマリインスタンスを指すようになります。
- Global Database: Aurora Global Database を使用している場合は、リージョン間のデータ移動はクロスリージョンレプリケーションですでに処理されるため、プライマリ Region の writer エンドポイントに接続してください。
- ストレージに関する考慮事項: Aurora のストレージ層はクラスター内のすべてのインスタンスで共有されるため、標準の RDS と比べて論理レプリケーションのパフォーマンスが向上する場合があります。
動的なクラスターエンドポイントへの対処
- 高可用性構成では、現在のプライマリインスタンスを自動的に指す Aurora writer エンドポイント を使用するようにアプリケーションを設定してください。
- クロスリージョンレプリケーションを使用している場合は、レイテンシを低減し、耐障害性を高めるために、リージョンごとに個別の ClickPipes を設定することを検討してください。