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

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 チェックボックスをオンにすることで(まだオンでない場合)構成できます。

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

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

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

注記

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

デフォルトでは、Amazon RDS は可能な限り早期にバイナリログを削除します(lazy purging)。障害シナリオにおいてもレプリケーション用のバイナリログファイルが利用可能であるよう、binlog の保持期間を少なくとも 72 時間 に延長することを推奨します。バイナリログの保持期間(binlog retention hours)を設定するには、mysql.rds_set_configuration プロシージャを使用します。

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

この設定が行われていないか、間隔が短すぎる値に設定されていると、バイナリログに欠落が生じ、ClickPipes によるレプリケーションの再開ができなくなるおそれがあります。

バイナリログ設定の構成

パラメーターグループは、RDS コンソールで MySQL インスタンスをクリックし、Configuration タブに移動すると表示されます。

ヒント

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

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

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

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

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

  1. binlog_formatROW に設定
Binlog format を ROW に設定
  1. binlog_row_metadataFULL に設定
Binlog row metadata を FULL に設定
  1. binlog_row_imageFULL に設定
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 モードを有効にするには、次の手順に従います。

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

ヒント

MySQL ClickPipe は、GTID モードを使用しないレプリケーションにも対応しています。ただし、より高いパフォーマンスとトラブルシューティングの容易さのために、GTID モードを有効にすることを推奨します。

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

RDS MySQL インスタンスに管理者ユーザーとして接続し、以下のコマンドを実行します。

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

    CREATE USER 'clickpipes_user'@'host' 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 を RDS セキュリティグループの インバウンドルール に追加します。

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

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

次のステップ

Amazon RDS MySQL インスタンスの binlog レプリケーションが構成され、ClickHouse Cloud へのセキュアな接続も完了したら、最初の MySQL ClickPipe を作成できます。MySQL CDC に関する一般的な質問については、MySQL FAQ ページを参照してください。