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

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 チェックボックスを有効にすることで設定できます(まだ有効になっていない場合)。

Aurora で自動バックアップを有効化する

レプリケーションのユースケースに応じて、Backup retention period を十分に長めの値に設定することを推奨します。

2. binlog の保持期間を延長する

注意

ClickPipes がレプリケーションの再開を試みた際に、設定された binlog の保持期間により必要な binlog ファイルが削除されている場合、ClickPipe はエラー状態に遷移し、再同期が必要になります。

デフォルトでは、Aurora MySQL は可能な限り早くバイナリログを削除します(遅延パージ)。障害発生時のシナリオにおいてもレプリケーションに必要なバイナリログファイルを利用可能な状態にしておくため、binlog の保持期間を少なくとも 72 時間 に延長することを推奨します。バイナリログの保持期間(binlog retention hours)を設定するには、mysql.rds_set_configuration プロシージャを使用してください。

mysql=> call mysql.rds_set_configuration('binlog retention hours', 72);

この設定が行われていないか、または間隔が短く設定されている場合、バイナリログにギャップが生じ、ClickPipes がレプリケーションを再開できなくなるおそれがあります。

binlog 設定を行う

パラメータグループは、RDS コンソールで対象の MySQL インスタンスをクリックし、Configuration タブに移動すると見つけられます。

ヒント

MySQL クラスターを使用している場合、以下のパラメータは DB インスタンスグループではなく、DB クラスターのパラメータグループにあります。

Aurora でパラメータグループを確認できる場所

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

パラメータグループを編集

次のパラメータを、下記のように設定します。

  1. binlog_formatROW に設定。
Binlog format を ROW に設定
  1. binlog_row_metadataFULL に設定。
Binlog row metadata
  1. binlog_row_imageFULL に設定。
Binlog row image

設定後、右上隅の 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 モードを有効化するには、次の手順に従います。

  1. RDS コンソールで、対象の MySQL インスタンスをクリックします。
  2. Configuration タブをクリックします。
  3. パラメータグループのリンクをクリックします。
  4. 右上の Edit ボタンをクリックします。
  5. enforce_gtid_consistencyON に設定します。
  6. gtid-modeON に設定します。
  7. 右上の Save Changes をクリックします。
  8. 変更を反映するためにインスタンスを再起動します。
GTID 有効化済み

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

管理者権限を持つユーザーで Aurora MySQL インスタンスに接続し、次のコマンドを実行します。

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

    CREATE USER 'clickpipes_user'@'%' IDENTIFIED BY 'some-password';
    
  2. スキーマ権限を付与します。次の例では、mysql データベースに対する権限を示しています。レプリケーション対象とする各データベースおよびホストごとに、これらのコマンドを繰り返し実行してください:

    GRANT SELECT ON `mysql`.* TO 'clickpipes_user'@'host';
    
  3. ユーザーにレプリケーション権限を付与します:

    GRANT REPLICATION CLIENT ON *.* TO 'clickpipes_user'@'%';
    GRANT REPLICATION SLAVE ON *.* TO 'clickpipes_user'@'%';
    

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

IP ベースのアクセス制御

Aurora MySQL インスタンスへのトラフィックを制限するには、ドキュメントで定義されている固定 NAT IP を Aurora セキュリティグループの インバウンドルール に追加します。

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

プライベートネットワーク経由で Aurora MySQL インスタンスに接続するには、AWS PrivateLink を使用します。接続を構成するには、ClickPipes 向け AWS PrivateLink 設定ガイド に従ってください。

次のステップ

Amazon Aurora MySQL インスタンスを binlog レプリケーション用に構成し、ClickHouse Cloud へセキュアに接続できるようになったら、最初の MySQL ClickPipe を作成できます。MySQL CDC に関するよくある質問については、MySQL FAQs ページを参照してください。