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

Aurora MySQL ソースセットアップガイド

このガイドでは、MySQL ClickPipe を使用して Amazon Aurora MySQL を構成し、データを ClickHouse Cloud にレプリケートする手順をステップバイステップで説明します。MySQL の CDC(変更データキャプチャ)に関する一般的な質問については、MySQL FAQs ページ を参照してください。

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

バイナリログは、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 は可能な限り早くバイナリログを削除します(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 クラスターのパラメーターグループにあります。

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