メインコンテンツへスキップ
メインコンテンツへスキップ

Aurora Postgres ソース設定ガイド

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

ClickPipes は Aurora PostgreSQL-Compatible Edition バージョン 12 以降をサポートしています。

論理レプリケーションを有効にする

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

  • 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. 必須の設定を含む、使用中の Aurora PostgreSQL バージョン向けの新しいパラメータグループを作成します。
    • rds.logical_replication を 1 に設定します
    • wal_sender_timeout を 0 に設定します
Aurora でパラメータグループを確認する場所
rds.logical_replication の変更
wal_sender_timeout の変更
  1. 新しいパラメータグループを Aurora PostgreSQL クラスタに適用します
新しいパラメータグループを Aurora PostgreSQL に適用する
  1. 変更を反映するため、Aurora クラスタを再起動します
Aurora PostgreSQL の再起動

データベースユーザーを設定する

管理者ユーザーとして Aurora PostgreSQL の writer インスタンスに接続し、次のコマンドを実行します。

  1. ClickPipes 専用のユーザーを作成します。

    CREATE USER clickpipes_user PASSWORD 'some-password';
    
  2. 前の手順で作成したユーザーに、スキーマレベルの読み取り専用アクセス権を付与します。以下の例は 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;
    
  3. ユーザーにレプリケーション権限を付与します。

    GRANT rds_replication TO clickpipes_user;
    
  4. レプリケーションしたいテーブルを含む publication を作成します。パフォーマンスのオーバーヘッドを避けるため、publication には必要なテーブルだけを含めることを強く推奨します。

    注意

    publication に含めるテーブルには、主キー が定義されているか、または replica identityFULL に設定されている必要があります。スコープ設定のガイダンスについては、Postgres FAQs を参照してください。

    • 特定のテーブルに対する publication を作成するには:

      CREATE PUBLICATION clickpipes FOR TABLE table_to_replicate, table_to_replicate2;
      
    • 特定のスキーマ内のすべてのテーブルに対する publication を作成するには:

      CREATE PUBLICATION clickpipes FOR TABLES IN SCHEMA "public";
      

    clickpipes publication には、指定したテーブルから生成される変更イベントのセットが含まれ、後でレプリケーションストリームを取り込むために使用されます。

ネットワークアクセスを設定する

IP ベースのアクセス制御

Aurora クラスタへのトラフィックを制限する場合は、ドキュメントに記載されている静的 NAT IP を、Aurora のセキュリティグループの インバウンドルール に追加してください。

Aurora PostgreSQL でセキュリティグループを確認する場所
上記のセキュリティグループのインバウンドルールを編集する

プライベートネットワーク経由で Aurora クラスタに接続するには、AWS PrivateLink を利用できます。接続を設定するには、ClickPipes 向け AWS PrivateLink 設定ガイドを参照してください。

Aurora 固有の考慮事項

Aurora PostgreSQL で ClickPipes を設定する際は、次の点に留意してください。

  1. 接続エンドポイント: 論理レプリケーションでは、レプリケーションスロットの作成に書き込み権限が必要であり、プライマリインスタンスに接続する必要があるため、必ず Aurora クラスタの writer エンドポイント に接続してください。

  2. フェイルオーバー時の動作: フェイルオーバーが発生すると、Aurora は reader を自動的に昇格させて新しい writer にします。ClickPipes は切断を検出すると、writer エンドポイント への再接続を試みます。この エンドポイント は新しいプライマリインスタンスを指すようになります。

  3. Global Database: Aurora Global Database を使用している場合は、プライマリリージョンの writer エンドポイント に接続してください。リージョン間のデータ移動は、クロスリージョンレプリケーションですでに処理されるためです。

  4. ストレージに関する考慮事項: Aurora のストレージレイヤーは、クラスタ内のすべてのインスタンスで共有されます。そのため、標準の RDS と比べて、論理レプリケーションでより高いパフォーマンスが得られる場合があります。

動的なクラスタエンドポイントへの対処

Aurora は適切なインスタンスに自動的にルーティングする安定したエンドポイントを提供しますが、安定した接続を確保するための追加の方法を以下に示します。

  1. 高可用性構成では、現在のプライマリインスタンスを自動的に指す Aurora writer エンドポイント を使うようアプリケーションを設定します。

  2. クロスリージョン レプリケーションを使用している場合は、レイテンシを低減し、耐障害性を向上させるため、リージョンごとに個別の ClickPipes を設定することを検討してください。

次のステップ

これで、ClickPipe を作成し、Aurora PostgreSQL クラスタから ClickHouse Cloud へのデータ取り込みを開始できます。 ClickPipe の作成時に必要になるため、Aurora PostgreSQL クラスタの設定時に使用した接続情報は必ず控えておいてください。