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

レプリケーションのユースケースに応じて、Backup retention period を十分に長めの値に設定することを推奨します。
2. binlog の保持期間を延長する
ClickPipes がレプリケーションの再開を試みた際に、設定された binlog の保持期間により必要な binlog ファイルが削除されている場合、ClickPipe はエラー状態に遷移し、再同期が必要になります。
デフォルトでは、Aurora MySQL は可能な限り早くバイナリログを削除します(遅延パージ)。障害発生時のシナリオにおいてもレプリケーションに必要なバイナリログファイルを利用可能な状態にしておくため、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 をクリックします。変更を反映させるにはインスタンスの再起動が必要な場合があります。再起動が必要かどうかは、Aurora インスタンスの Configuration タブで、パラメータグループのリンクの横に Pending reboot が表示されているかどうかで確認できます。
GTID モードを有効化する(推奨)
MySQL ClickPipe は、GTID モードを使用しないレプリケーションにも対応しています。ただし、パフォーマンス向上とトラブルシューティングの容易化のため、GTID モードを有効化することを推奨します。
Global Transaction Identifiers (GTIDs) は、MySQL でコミットされた各トランザクションに割り当てられる一意の ID です。これによりバイナリログ(binlog)レプリケーションが簡素化され、トラブルシューティングもしやすくなります。MySQL ClickPipe が GTID ベースのレプリケーションを利用できるように、GTID モードを有効化することを推奨します。
GTID ベースのレプリケーションは、Amazon Aurora MySQL v2(MySQL 5.7)および v3(MySQL 8.0)、さらに Aurora Serverless v2 でサポートされています。Aurora MySQL インスタンスで GTID モードを有効化するには、次の手順に従います。
- RDS コンソールで、対象の MySQL インスタンスをクリックします。
- Configuration タブをクリックします。
- パラメータグループのリンクをクリックします。
- 右上の Edit ボタンをクリックします。
enforce_gtid_consistencyをONに設定します。gtid-modeをONに設定します。- 右上の Save Changes をクリックします。
- 変更を反映するためにインスタンスを再起動します。

データベースユーザーの設定
管理者権限を持つユーザーで Aurora MySQL インスタンスに接続し、次のコマンドを実行します。
-
ClickPipes 専用のユーザーを作成します:
-
スキーマ権限を付与します。次の例では、
mysqlデータベースに対する権限を示しています。レプリケーション対象とする各データベースおよびホストごとに、これらのコマンドを繰り返し実行してください: -
ユーザーにレプリケーション権限を付与します:
ネットワークアクセスを設定する
IP ベースのアクセス制御
Aurora MySQL インスタンスへのトラフィックを制限するには、ドキュメントで定義されている固定 NAT IP を Aurora セキュリティグループの インバウンドルール に追加します。


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