メインコンテンツまでスキップ
メインコンテンツまでスキップ

RDS Postgres ソース設定ガイド

サポートされている Postgres バージョン

ClickPipes は Postgres バージョン 12 以降をサポートしています。

論理レプリケーションの有効化

以下の設定がすでに RDS インスタンスに構成されている場合は、このセクションをスキップできます:

  • rds.logical_replication = 1
  • wal_sender_timeout = 0

これらの設定は、以前に別のデータレプリケーションツールを使用していた場合に事前に構成されていることが一般的です。

postgres=> SHOW rds.logical_replication ;
 rds.logical_replication
-------------------------
 on
(1 row)

postgres=> SHOW wal_sender_timeout ;
 wal_sender_timeout
--------------------
 0
(1 row)

まだ構成されていない場合は、以下の手順に従ってください:

  1. 必要な設定を持つ Postgres バージョンの新しいパラメータグループを作成します:
    • rds.logical_replication を 1 に設定
    • wal_sender_timeout を 0 に設定
RDS のパラメータグループの見つけ方
rds.logical_replication を変更
wal_sender_timeout を変更
  1. 新しいパラメータグループを RDS Postgres データベースに適用します
新しいパラメータグループを使って RDS Postgres を変更
  1. 変更を適用するために RDS インスタンスを再起動します
RDS Postgres を再起動

データベースユーザーの設定

管理者ユーザーとして RDS Postgres インスタンスに接続し、以下のコマンドを実行します:

  1. ClickPipes 用の専用ユーザーを作成します:
CREATE USER clickpipes_user PASSWORD 'some-password';
  1. スキーマの権限を付与します。以下の例は public スキーマに対する権限を示しています。レプリケートしたい各スキーマに対してこれらのコマンドを繰り返します:
GRANT USAGE ON SCHEMA "public" TO clickpipes_user;
GRANT SELECT ON ALL TABLES IN SCHEMA "public" TO clickpipes_user;
ALTER DEFAULT PRIVILEGES IN SCHEMA "public" GRANT SELECT ON TABLES TO clickpipes_user;
  1. レプリケーション権限を付与します:
GRANT rds_replication TO clickpipes_user;
  1. レプリケーション用のパブリケーションを作成します:
CREATE PUBLICATION clickpipes_publication FOR ALL TABLES;

ネットワークアクセスの設定

IP ベースのアクセス制御

RDS インスタンスへのトラフィックを制限したい場合は、ドキュメント化された静的 NAT IPsを RDS セキュリティグループの Inbound rules に追加してください。

RDS Postgres でのセキュリティグループの見つけ方
上記セキュリティグループのインバウンドルールを編集

プライベートネットワークを通じて RDS インスタンスに接続するには、AWS PrivateLink を使用できます。接続の設定方法については、ClickPipes 用の AWS PrivateLink 設定ガイドを参照してください。

RDS プロキシ用の回避策

RDS プロキシは論理レプリケーション接続をサポートしていません。RDS に動的 IP アドレスがあり、DNS 名またはラムダを使用できない場合、以下の代替案があります:

  1. cron ジョブを使用して RDS エンドポイントの IP を定期的に解決し、変更されている場合は NLB を更新します。
  2. EventBridge/SNS とRDS イベント通知を使用:AWS RDS イベント通知を使用して自動的に更新をトリガーします。
  3. 安定した EC2:ポーリングサービスまたは IP ベースのプロキシとして機能する EC2 インスタンスをデプロイします。
  4. Terraform や CloudFormation のようなツールを使用して IP アドレス管理を自動化します。

次は何をするか?

これで ClickPipe を作成し、Postgres インスタンスから ClickHouse Cloud にデータを取り込むことができます。 Postgres インスタンスを設定する際に使用した接続の詳細をメモしておくことを忘れないでください。ClickPipe の作成プロセス中に必要になります。