VeloDB CDC向けAurora RDS PostgreSQLソースセットアップ
このガイドでは、Flink CDCを使用したVeloDBとのCDC(Change Data Capture)同期のためのAurora RDS PostgreSQL設定について説明します。
サポートされているバージョン
| データベース | バージョン |
|---|---|
| Aurora RDS PostgreSQL | 13.x, 14.x, 15.x, 16.x |
論理レプリケーションの有効化
Auroraでは、postgresql.confを直接編集する代わりにパラメータグループを使用します。
1. パラメータグループの作成
AWSコンソールのRDS > Parameter groupsに移動して、既存のパラメータグループを確認します:

論理レプリケーションが有効化されたカスタムクラスターパラメータグループを作成します:

重要: Auroraクラスターには(DB Parameter Groupではなく)DB Cluster Parameter Groupをタイプとして選択してください。
aws rds create-db-cluster-parameter-group \
--db-cluster-parameter-group-name aurora-pg-cdc \
--db-parameter-group-family aurora-postgresql16 \
--description "Aurora PostgreSQL with CDC enabled"
aws rds modify-db-cluster-parameter-group \
--db-cluster-parameter-group-name aurora-pg-cdc \
--parameters "ParameterName=rds.logical_replication,ParameterValue=1,ApplyMethod=pending-reboot"
または、AWS Consoleでパラメータグループを編集し、rds.logical_replicationを1に設定して構成します:

2. クラスターに適用
aws rds modify-db-cluster \
--db-cluster-identifier your-cluster-name \
--db-cluster-parameter-group-name aurora-pg-cdc \
--apply-immediately
3. クラスターの再起動
rds.logical_replicationを有効にするには再起動が必要です:
aws rds reboot-db-instance --db-instance-identifier your-instance-name
設定の確認
SHOW rds.logical_replication;
期待される結果:
rds.logical_replication
-------------------------
on
(1 row)
ユーザー権限
Auroraは、SUPERUSER属性の代わりに特定のロールを必要とします。
CDCユーザーの作成
-- Create user (no REPLICATION or SUPERUSER attributes)
CREATE USER cdc_user WITH LOGIN PASSWORD 'your_password';
-- Grant Aurora-specific roles
GRANT rds_replication TO cdc_user;
GRANT rds_superuser TO cdc_user;
GRANT pg_read_all_data TO cdc_user;
-- Grant database-level permissions
GRANT CONNECT ON DATABASE your_database TO cdc_user;
GRANT ALL ON DATABASE your_database TO cdc_user;
-- Grant schema permissions
GRANT USAGE ON SCHEMA public TO cdc_user;
GRANT SELECT ON ALL TABLES IN SCHEMA public TO cdc_user;
ALTER DEFAULT PRIVILEGES IN SCHEMA public GRANT SELECT ON TABLES TO cdc_user;
必要なAuroraロール
| ロール | 目的 |
|---|---|
rds_replication | レプリケーションスロットの作成とWALの読み取り |
rds_superuser | パブリケーションの管理(CDCに必要) |
pg_read_all_data | 全スキーマの全テーブルの読み取り |
注意: Auroraマスターユーザーは完全なSUPERUSER権限を持ちません。代わりにロールを使用してください。
ユーザー権限の確認
SELECT r.rolname, ARRAY(
SELECT b.rolname
FROM pg_catalog.pg_auth_members m
JOIN pg_catalog.pg_roles b ON (m.roleid = b.oid)
WHERE m.member = r.oid
) as memberof
FROM pg_roles r
WHERE r.rolname = 'cdc_user';
期待される結果:
rolname | memberof
-----------+--------------------------------------------------
cdc_user | {pg_read_all_data,rds_superuser,rds_replication}
(1 row)
Publication設定
マスターユーザー(postgres)としてpublicationを作成:
-- As postgres user
CREATE PUBLICATION velodb_publication FOR ALL TABLES;
公開を確認:
SELECT * FROM pg_publication WHERE pubname = 'velodb_publication';
重要: Auroraを使用する際は、Flink CDCに
--postgres-conf publication.name=velodb_publicationを渡してください。
REPLICA IDENTITY(DELETEに必要)
ALTER TABLE your_table_name REPLICA IDENTITY FULL;
接続テスト
CDC ユーザーが以下を実行できることを確認します:
- 接続:
psql -h your-cluster.cluster-xxxxx.us-west-2.rds.amazonaws.com -p 5432 -U cdc_user -d your_database
- 出版物を一覧表示する:
SELECT * FROM pg_publication;
- テーブルの読み取り:
SELECT COUNT(*) FROM your_table;
次のステップ
Aurora RDSがCDC用に設定されたら、Flink CDC Ingestion Guideに従ってVeloDBへのリアルタイム同期を設定してください。
忘れずに追加してください --postgres-conf publication.name=velodb_publication をAuroraでFlink CDCを実行する際に。