RDS MySQL ソース設定ガイド
このステップバイステップガイドでは、MySQL ClickPipe を使用して、Amazon RDS MySQL から ClickHouse Cloud へデータを複製するように設定する方法を説明します。MySQL における CDC(変更データキャプチャ)に関する一般的な質問については、MySQL FAQ ページ を参照してください。
バイナリログの保持を有効にする
バイナリログは、MySQL サーバーインスタンスで行われたデータ変更に関する情報を含むログファイル群であり、レプリケーションにはバイナリログファイルが必須です。RDS MySQL でバイナリログの保持を構成するには、バイナリログを有効にし、binlog の保持期間を延長する必要があります。
1. 自動バックアップを利用してバイナリログを有効にする
自動バックアップ機能は、MySQL においてバイナリログを有効にするかどうかを決定します。自動バックアップは、RDS コンソールで対象インスタンスに移動し、Modify > Additional configuration > Backup の順に選択し、Enable automated backups チェックボックスをオンにすることで(まだオンでない場合)構成できます。

レプリケーションのユースケースに応じて、Backup retention period は十分に長い値に設定することを推奨します。
2. binlog の保持期間を延長する
ClickPipes がレプリケーションの再開を試みた際に、設定されている binlog の保持期間により必要な binlog ファイルがすでに削除されている場合、ClickPipe はエラー状態となり、再同期が必要になります。
デフォルトでは、Amazon RDS は可能な限り早期にバイナリログを削除します(lazy purging)。障害シナリオにおいてもレプリケーション用のバイナリログファイルが利用可能であるよう、binlog の保持期間を少なくとも 72 時間 に延長することを推奨します。バイナリログの保持期間(binlog retention hours)を設定するには、mysql.rds_set_configuration プロシージャを使用します。
この設定が行われていないか、間隔が短すぎる値に設定されていると、バイナリログに欠落が生じ、ClickPipes によるレプリケーションの再開ができなくなるおそれがあります。
バイナリログ設定の構成
パラメーターグループは、RDS コンソールで MySQL インスタンスをクリックし、Configuration タブに移動すると表示されます。
MySQL クラスターを使用している場合、以下のパラメーターは DB インスタンスグループではなく、DB クラスター用のパラメーターグループにあります。

パラメーターグループのリンクをクリックすると、そのページに移動します。右上に Edit ボタンが表示されているはずです。

次のパラメーターを以下のように設定します。
binlog_formatをROWに設定

binlog_row_metadataをFULLに設定

binlog_row_imageをFULLに設定

設定が完了したら、右上の Save Changes をクリックします。変更を反映するにはインスタンスを再起動する必要がある場合があります。RDS インスタンスの Configuration タブ内で、パラメーターグループリンクの横に Pending reboot と表示されている場合は、再起動が必要です。
GTID モードを有効化する
MySQL ClickPipe は、GTID モードを使用しないレプリケーションにも対応しています。ただし、より高いパフォーマンスとトラブルシューティングの容易さのために、GTID モードを有効にすることを推奨します。
Global Transaction Identifiers (GTID) は、MySQL の各コミット済みトランザクションに割り当てられる一意の ID です。これにより binlog レプリケーションが簡素化され、トラブルシューティングも容易になります。MySQL ClickPipe が GTID ベースのレプリケーションを利用できるようにするため、GTID モードを有効にすることを推奨します。
GTID ベースのレプリケーションは、Amazon RDS for MySQL バージョン 5.7、8.0、8.4 でサポートされています。Aurora MySQL インスタンスで GTID モードを有効にするには、次の手順に従います。
- RDS コンソールで、対象の MySQL インスタンスをクリックします。
- Configuration タブをクリックします。
- パラメーターグループのリンクをクリックします。
- 右上の Edit ボタンをクリックします。
enforce_gtid_consistencyをONに設定します。gtid-modeをONに設定します。- 右上の Save Changes をクリックします。
- 変更を反映するためにインスタンスを再起動します。

MySQL ClickPipe は、GTID モードを使用しないレプリケーションにも対応しています。ただし、より高いパフォーマンスとトラブルシューティングの容易さのために、GTID モードを有効にすることを推奨します。
データベースユーザーの設定
RDS MySQL インスタンスに管理者ユーザーとして接続し、以下のコマンドを実行します。
-
ClickPipes 用の専用ユーザーを作成します。
-
スキーマ権限を付与します。次の例は
mysqlデータベースに対する権限を示しています。複製したい各データベースおよびホストに対して、これらのコマンドを繰り返してください。 -
ユーザーにレプリケーション権限を付与します。
ネットワークアクセスの構成
IP ベースのアクセス制御
Aurora MySQL インスタンスへのトラフィックを制限するには、ドキュメントに記載されている静的 NAT IP を RDS セキュリティグループの インバウンドルール に追加します。


AWS PrivateLink によるプライベートアクセス
プライベートネットワーク経由で RDS インスタンスに接続するには、AWS PrivateLink を使用します。接続を設定するには、ClickPipes 用 AWS PrivateLink セットアップガイド に従ってください。
次のステップ
Amazon RDS MySQL インスタンスの binlog レプリケーションが構成され、ClickHouse Cloud へのセキュアな接続も完了したら、最初の MySQL ClickPipe を作成できます。MySQL CDC に関する一般的な質問については、MySQL FAQ ページを参照してください。