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

RDS MariaDB ソースセットアップガイド

このガイドでは、RDS MariaDB インスタンスを MySQL ClickPipe を介してデータをレプリケートできるように設定する手順を、ステップバイステップで説明します。


参考文献

あわせて、MySQL の FAQ についてもこちらから参照されることをおすすめします。FAQ ページは随時更新されています。

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

バイナリログは、MySQL サーバーインスタンスに対して行われたデータ変更に関する情報を含む一連のログファイルです。バイナリログファイルはレプリケーションに必須です。以下の 2 つの手順を両方とも実施する必要があります。

1. 自動バックアップ機能でバイナリログを有効化する

自動バックアップ機能は、MySQL においてバイナリログを有効にするかどうかを制御します。これは AWS コンソールで設定できます。

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

レプリケーションのユースケースに応じて、バックアップ保持期間を十分に長い値に設定することを推奨します。

2. Binlog retention hours

Amazon RDS for MariaDB では、binlog の保持期間(変更が含まれている binlog ファイルを保持しておく時間)の設定方法が異なります。binlog ファイルが削除される前に一部の変更が読み取られない場合、レプリケーションを継続できなくなります。binlog retention hours のデフォルト値は NULL であり、この場合はバイナリログが保持されません。

DB インスタンス上でバイナリログを保持する時間数を指定するには、レプリケーションが実行されるのに十分な長さの binlog 保持期間を指定して、mysql.rds_set_configuration 関数を使用します。24 hours が推奨される最小値です。

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

パラメータグループでの binlog 設定

パラメータグループは、RDS コンソールで MariaDB インスタンスをクリックし、Configurations タブに移動すると確認できます。

RDS でパラメータグループを見つける場所

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

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

binlog_formatbinlog_row_metadatabinlog_row_image の各設定を次のように設定します:

  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 インスタンスの Configurations タブでパラメータグループのリンクの横に Pending reboot が表示されている場合は、インスタンスの再起動が必要であることを示す良い目安です。


ヒント

MariaDB クラスターを使用している場合、上記のパラメータは DB インスタンスグループではなく、DB Cluster パラメータグループに設定されています。

GTID モードの有効化

Global Transaction Identifiers (GTID) は、MySQL/MariaDB においてコミットされた各トランザクションに割り当てられる一意の ID です。これによりバイナリログ (binlog) レプリケーションが簡素化され、トラブルシューティングもより容易になります。MariaDB では GTID モードがデフォルトで有効になっているため、利用にあたってユーザー側での操作は不要です。

データベースユーザーを設定する

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

  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 ベースのアクセス制御

RDS インスタンスへのトラフィックを制限する場合は、ドキュメントで指定されている静的 NAT IP アドレス を、RDS セキュリティグループの Inbound rules に追加してください。

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

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