メニュー
AWS Database Migration Service
ユーザーガイド (Version API バージョン 2016-01-01)

MySQL 互換データベースの AWS DMS のソースとしての使用

AWS Database Migration Service を使用すると、1 つ以上の MySQL、MariaDB、または Amazon Aurora MySQL データベースからデータを移行できます。MySQL 互換データベースをソースとして使用すると、別の MySQL 互換データベースまたはサポートされている他のデータベースのいずれかにデータを移行できます。MySQL バージョン 5.5、5.6、5.7 と MariaDB および Amazon Aurora MySQL は、オンプレミス、Amazon RDS、および Amazon EC2 インスタンスデータベースでサポートされています。Amazon RDS MySQL を使用した変更データキャプチャ (CDC) を有効にするには、Amazon RDS MySQL バージョン 5.6 以上を使用する必要があります。

注記

ソースストレージエンジン (MyISAM、MEMORY など) にかかわらず、AWS DMS によってデフォルトで InnoDB テーブルとして MySQL 互換のターゲットテーブルが作成されます。InnoDB 以外のストレージエンジンを使用するテーブルが必要な場合は、手動でテーブルを MySQL 互換のターゲットで作成し、"Do Nothing" モードで移行できます。"Do Nothing" モードの詳細については、「全ロードタスク設定」を参照してください。

SSL を使用して、MySQL 互換のエンドポイントとレプリケーションインスタンスとの接続を暗号化できます。MySQL 互換のエンドポイントで SSL を使用する方法の詳細については、「AWS Database Migration Service での SSL の使用」を参照してください。

MySQL 互換データベースと AWS DMS の使用方法の詳細については、以下のセクションを参照してください。

MySQL データベースを AWS DMS のソースとして使用する場合の前提条件

MySQL データベースを AWS DMS のソースとして使用し始める前に、次の前提条件を満たしていることを確認してください。

  • 必要なセキュリティ設定が加えられた MySQL アカウント。詳細については、「MySQL データベースを AWS DMS のソースとして使用する場合のセキュリティ要件」を参照してください。

  • ネットワーク内でアクセス可能なレプリケート対象テーブルを格納する MySQL 互換データベース。

    • MySQL Community Edition

    • MySQL Standard Edition

    • MySQL Enterprise Edition

    • MySQL Cluster Carrier Grade Edition

    • MariaDB

    • Amazon Aurora MySQL

  • ソースが Amazon RDS MySQL または MariaDB DB インスタンスか Amazon Aurora MySQL クラスターである場合、自動バックアップを有効にする必要があります。自動バックアップのセットアップの詳細については、『Amazon RDS ユーザーガイド』を参照してください。

  • 変更データキャプチャ (CDC) を使用する場合、バイナリロギングを有効にして設定する必要があります。バイナリロギングを有効にするには、MySQL の my.ini (Windows) または my.cnf (UNIX) ファイルで以下のパラメーターを設定する必要があります。

    パラメータ

    server_id

    このパラメーターは、1 以上の値に設定します。

    log-bin

    パスをバイナリログファイル (log-bin=E:\MySql_Logs\BinLog) に設定します。ファイル拡張子を含めないでください。

    binlog_format

    このパラメーターは row に設定します。

    expire_logs_days

    このパラメーターは、1 以上の値に設定します。ディスク容量の使いすぎを防ぐため、デフォルト値の 0 は使用しないことをお勧めします。

    binlog_checksum

    このパラメーターは none に設定します。

    binlog_row_image

    このパラメーターは full に設定します。

  • Amazon RDS MySQL DB インスタンスをソースとして使用して変更データキャプチャ (CDC) を使用するには、AWS DMS がバイナリログにアクセスできる必要があります。Amazon RDS は、DB インスタンスからかなり積極的にバイナリログを消去します。Amazon RDS 上の MySQL DB インスタンスで CDC を使用するには、バイナリログが MySQL DB インスタンスに残る時間を長くしてください。たとえば、ログ保持を 24 時間に伸ばすには、次のコマンドを実行します。

    call mysql.rds_set_configuration('binlog retention hours', 24);
  • AWS DMS を使用してクラスター化された (NDB) テーブルをレプリケートするには、MySQL の my.ini (Windows) または my.cnf (UNIX) ファイルで以下のパラメータを設定する必要があります。クラスター化された (NDB) テーブルのレプリケートは、CDC を使用する場合のみ必要です。

    パラメータ

    ndb_log_bin

    このパラメーターは on に設定します。この値により、クラスター化されたテーブルでの変更が確実にバイナリログに記録されます。

    ndb_log_update_as_write

    このパラメーターは OFF に設定します。この値に設定すると、UPDATE ステートメントが INSERT ステートメントとしてバイナリログに書き込まれなくなります。

    ndb_log_updated_only

    このパラメーターは OFF に設定します。この値に設定すると、バイナリログに変更された列だけでなく行全体が含められます。

Amazon RDS for MySQL データベースを AWS DMS のソースとして使用する場合の前提条件

Amazon RDS for MySQL データベースを AWS DMS のソースとして使用する場合は、次の前提条件を満たしていることを確認してください。

  • 自動バックアップを有効にする必要があります。自動バックアップのセットアップの詳細については、『Amazon RDS ユーザーガイド』を参照してください。

  • Amazon RDS MySQL DB インスタンスをソースとして使用して変更データキャプチャ (CDC) を使用するには、AWS DMS がバイナリログにアクセスできる必要があります。Amazon RDS は、DB インスタンスからかなり積極的にバイナリログを消去します。Amazon RDS 上の MySQL DB インスタンスで CDC を使用するには、バイナリログが MySQL DB インスタンスに残る時間を 24 時間以上にしてください。たとえば、ログ保持を 24 時間に伸ばすには、次のコマンドを実行します。

    call mysql.rds_set_configuration('binlog retention hours', 24);
  • binlog_format パラメータを「ROW」に設定する必要があります。

MySQL データベースを AWS DMS のソースとして使用する場合の制限

MySQL データベースをソースとして使用する場合、AWS DMS では以下のものがサポートされません。

  • DDL ステートメント Truncate Partition、Drop Table、Rename Table。

  • ALTER TABLE <table_name> ADD COLUMN <column_name> ステートメントを使用して、テーブルの先頭または中間に列を追加します。

  • ファイル名の大文字と小文字が区別されないファイルシステム (Windows や HFS+ を使用する OS X など) で、OS にソース MySQL がインストールされている場合に、大文字と小文字の両方の名前を含むテーブルからの変更のキャプチャ。

  • AR_H_USER ヘッダー列。

  • 列の AUTO_INCREMENT 属性は、ターゲットデータベース列に移行されません。

  • バイナリログが標準のブロックストレージに保存されていると、変更をキャプチャします。たとえば、バイナリログが Amazon S3 に保存されていると、CDC は機能しません。

MySQL データベースを AWS DMS のソースとして使用する場合のセキュリティ要件

セキュリティ要件として、AWS DMS ユーザーには次の権限を持つ ReplicationAdmin ロールが必要です。

  • REPLICATION CLIENT – この権限は、変更データキャプチャ (CDC) タスクにのみ必要です。つまり、全ロードのみのタスクにはこの権限は必要ありません。

  • REPLICATION SLAVE – この権限は、変更データキャプチャ (CDC) タスクにのみ必要です。つまり、全ロードのみのタスクにはこの権限は必要ありません。

  • SUPER – この権限は、バージョン 5.6.6 より前の MySQL でのみ必要です。

AWS DMS ユーザーには、レプリケーション対象に指定されたソーステーブルに対する SELECT 権限も必要です。

AWS DMS のソースとしての MySQL データベースの設定

追加の接続属性を使用して MySQL ソースを設定できます。MySQL の追加の接続属性の詳細については、「AWS Database Migration Service での追加の接続属性の使用」を参照してください。

AWS DMS のソースとして MySQL を使用する場合の追加の接続属性

追加の接続属性を使用して MySQL ソースを設定できます。これらの設定は、ソースエンドポイントを作成するときに指定します。複数の追加の接続属性の設定は、セミコロンで区切る必要があります。

次の表に、MySQL を AWS DMS のソースとして使用するときに使用できる追加の接続属性を示します。

名前 説明
eventsPollInterval

データベースがアイドル状態のとき、バイナリログで新しい変更/イベントをチェックする頻度を指定します。

デフォルト値: 5

有効な値: 1 ~ 60

例: eventsPollInterval=5

initstmt=SET time_zone

ソース MySQL データベースのタイムゾーンを指定します。

デフォルト値: UTC

有効な値: 使用するタイムゾーンの 3 ~ 4 文字の省略形。有効な値は、ソース MySQL データベースをホストしているオペレーティングシステムにおけるタイムゾーンの標準の省略形です。

例: initstmt=SET time_zone=UTC

afterConnectScript

AWS DMS がエンドポイントに接続した直後に実行するスクリプトを指定します。

有効な値: セミコロンで区切った任意の SQL ステートメント。

例: afterConnectScript=ALTER SESSION SET CURRENT_SCHEMA = system;