メインコンテンツまでスキップ
メインコンテンツまでスキップ

RDS MySQLソース設定ガイド

このステップバイステップのガイドでは、Amazon RDS MySQLを構成してClickHouse Cloudにデータをレプリケートする方法を示します。MySQL CDCに関する一般的な質問については、MySQL FAQsページを参照してください。

バイナリログの保持を有効にする

バイナリログは、MySQLサーバーインスタンスで行われたデータ変更に関する情報を含むログファイルのセットであり、レプリケーションにはバイナリログファイルが必要です。RDS MySQLでバイナリログの保持を構成するには、バイナリロギングを有効にする必要があり、バイナリログ保持間隔を増加させる必要があります。

1. 自動バックアップを通じてバイナリロギングを有効にする

自動バックアップ機能は、MySQLのバイナリロギングがオンかオフかを決定します。RDSコンソールでインスタンスの設定を、変更 > 追加設定 > バックアップに移動し、自動バックアップを有効にするのチェックボックスを選択することで構成できます(まだ選択されていない場合)。

RDSでの自動バックアップの有効化

レプリケーションのユースケースに応じて、バックアップ保持期間を合理的に長い値に設定することをお勧めします。

2. バイナリログ保持間隔を増加させる

注意

ClickPipesがレプリケーションを再開しようとしたときに、設定されたバイナリログ保持値によって必要なバイナリログファイルが消去されている場合、ClickPipeはエラー状態に入り、再同期が必要です。

デフォルトでは、Amazon RDSはバイナリログをできるだけ早く消去します(つまり、遅延消去)。障害シナリオでレプリケーションのためにバイナリログファイルの可用性を確保するために、バイナリログ保持間隔を少なくとも72時間に増加させることをお勧めします。バイナリログ保持の間隔を設定するには、binlog retention hoursを使用して、mysql.rds_set_configurationプロシージャを実行します。

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

この設定が行われていない、または低い間隔に設定されている場合、バイナリログにギャップが生じ、ClickPipesがレプリケーションを再開する能力に影響を与える可能性があります。

バイナリログ設定を構成する

パラメータグループは、RDSコンソールでMySQLインスタンスをクリックし、設定タブに移動することで見つけることができます。

ヒント

MySQLクラスターを持っている場合、以下のパラメータはDBインスタンスグループの代わりにDBクラスターパラメータグループで見つけることができます。

RDSでのパラメータグループの見つけ方

パラメータグループリンクをクリックすると、その専用ページに移動します。右上に変更を編集ボタンが表示されます。

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

以下のパラメータを次のように設定する必要があります:

  1. binlog_formatROWに設定します。
バイナリログ形式をROWに設定
  1. binlog_row_metadataFULLに設定します。
バイナリログ行メタデータをFULLに設定
  1. binlog_row_imageFULLに設定します。
バイナリログ行イメージをFULLに設定

その後、右上隅の変更を保存をクリックします。変更を有効にするためにインスタンスを再起動する必要がある場合があります。この確認方法は、RDSインスタンスの設定タブ内のパラメータグループリンクの隣に再起動待ちと表示されることです。

GTIDモードを有効にする

ヒント

MySQL ClickPipeはGTIDモードなしでのレプリケーションもサポートしています。ただし、GTIDモードを有効にすることが推奨されており、より良いパフォーマンスとトラブルシューティングの容易さを提供します。

グローバルトランザクション識別子(GTID)は、MySQLでコミットされた各トランザクションに割り当てられた一意のIDです。これにより、バイナリログのレプリケーションが簡素化され、トラブルシューティングがより簡単になります。GTIDベースのレプリケーションが使用できるよう、GTIDモードを有効にすることをお勧めします

GTIDベースのレプリケーションは、Amazon RDS for MySQLのバージョン5.7、8.0、および8.4でサポートされています。Aurora MySQLインスタンスでGTIDモードを有効にするには、次の手順を実行してください:

  1. RDSコンソールでMySQLインスタンスをクリックします。
  2. 設定タブをクリックします。
  3. パラメータグループリンクをクリックします。
  4. 右上隅の変更を編集ボタンをクリックします。
  5. enforce_gtid_consistencyONに設定します。
  6. gtid-modeONに設定します。
  7. 右上隅の変更を保存をクリックします。
  8. 変更を有効にするためにインスタンスを再起動します。
GTIDが有効になっています

ヒント

MySQL ClickPipeはGTIDモードなしでのレプリケーションもサポートしています。ただし、GTIDモードを有効にすることが推奨されており、より良いパフォーマンスとトラブルシューティングの容易さを提供します。

データベースユーザーを構成する

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

  1. ClickPipes用の専用ユーザーを作成します:
CREATE USER 'clickpipes_user'@'host' IDENTIFIED BY 'some-password';
  1. スキーマ権限を付与します。以下の例はmysqlデータベースに対する権限を示しています。レプリケートしたい各データベースとホストに対してこれらのコマンドを繰り返します:
GRANT SELECT ON `mysql`.* TO 'clickpipes_user'@'host';
  1. ユーザーにレプリケーション権限を付与します:
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インスタンスがバイナリログレプリケーション用に構成され、ClickHouse Cloudに安全に接続されるようになったので、最初のMySQL ClickPipeを作成することができます。MySQL CDCに関する一般的な質問については、MySQL FAQsページを参照してください。