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

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

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 がレプリケーションを再開できなくなる可能性があります。

binlog 設定を構成する

パラメータグループは、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 をクリックします。変更を反映させるにはインスタンスの再起動が必要になる場合があります。これを確認する方法の 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 モードを有効にするには、次の手順に従います。

  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 ページを参照してください。