AWS Database Migration Serviceで継続的データレプリケーションの間隔を調節する

eyecatch_dms

以下の記事の続きになります。
AWS Database Migration Serviceを使ったMySQLからRedshiftへのレプリケーション手順 まとめ

AWS Database Migration Serviceの継続的データレプリケーションを使うと即座にTargetのデータベースに反映されます。 ですがRedshiftをTargetにした場合、更新回数が多いと負荷になるのでまとめて同期をとる方法を検討します。

追加の接続属性を設定する

SourceのデータベースがMySQLの場合に限られますが、簡単な方法としては「追加の接続属性」を設定する方法です。 eventsPollIntervalというパラメータでバイナリログをチェックする間隔を設定することができます。

AWS Database Migration Service での追加の接続属性の使用

以下の画像のようにEndpointの設定のAdvancedのExtra connection attributesところで「追加の接続属性」を設定します。 テキストボックスに eventsPollInterval=60 のように設定してください。 AWSのドキュメントには単位が書かれていませんでしたが、値を変えて試したところ秒のようです。デフォルトは5秒になっています。

dms-sync-timing

AWS CLIを使ってTaskのステータスを切り替える

追加の接続属性を設定する方法は簡単ですが、最大でも60秒までしか設定できません。それ以上間隔をあけたい場合はタスクのステータスを切り替える必要があります。 以下のようにAWS CLIのコマンドを使ってオンオフを切り替えることが可能です。

# 停止
aws dms stop-replication-task  --replication-task-arn [TaskのARN]

# 開始
aws dms start-replication-task --replication-task-arn [TaskのARN] --start-replication-task-type start-replication

start-replication-task
stop-replication-task