RDS MySQL ソース設定ガイド
このステップバイステップガイドでは、MySQL ClickPipe を使用して、Amazon RDS MySQL から ClickHouse Cloud へデータをレプリケートするように構成する方法を説明します。MySQL CDC に関するよくある質問については、MySQL FAQs ページ を参照してください。
バイナリログの保持を有効化する
バイナリログは、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 がレプリケーションを再開できなくなる可能性があります。
binlog 設定を構成する
パラメータグループは、RDS コンソールで対象の MySQL インスタンスをクリックし、Configuration タブに移動すると確認できます。
MySQL クラスターを使用している場合、以下のパラメータは DB インスタンスグループではなく、DB クラスター パラメータグループにあります。

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

次のパラメータを、以下のように設定する必要があります。
binlog_formatをROWに設定します。

binlog_row_metadataをFULLに設定します。

binlog_row_imageをFULLに設定します。

その後、右上の Save Changes をクリックします。変更を反映させるにはインスタンスの再起動が必要になる場合があります。これを確認する方法の 1 つは、RDS インスタンスの Configuration タブで、パラメータグループのリンクの横に Pending reboot と表示されているかどうかを確認することです。
GTID モードを有効にする
MySQL ClickPipe は GTID モードなしのレプリケーションもサポートしています。ただし、パフォーマンス向上とトラブルシューティングの容易化のために、GTID モードを有効化することを推奨します。
Global Transaction Identifiers (GTIDs) は、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 ページを参照してください。