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

RDS MariaDB ソース設定ガイド

これは、MySQL ClickPipe を介してデータをレプリケーションできるように、RDS MariaDB インスタンスを構成するためのステップバイステップガイドです。


情報

あわせて、MySQL の FAQ もこちらからご確認いただくことを推奨します。FAQ ページは随時更新されています。

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

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

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

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

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

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

2. Binlog 保持時間(hours)

Amazon RDS for MariaDB では、変更が含まれる binlog ファイルが保持される時間(binlog 保持期間)を設定する方法が異なります。binlog ファイルが削除される前に一部の変更が読み取られない場合、レプリケーションを継続できなくなります。binlog 保持時間のデフォルト値は 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 クラスター パラメータグループ内にあります。

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

RDS でセキュリティグループを確認する場所
上記セキュリティグループの Inbound rules を編集する

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