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

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

AWS Database Migration Service を使用すると、1 つ以上の MySQL、MariaDB、または Amazon Aurora データベースからデータを移行できます。MySQL 互換データベースをソースとして使用すると、別の MySQL 互換データベースまたはサポートされている他のデータベースのいずれかにデータを移行できます。MySQL バージョン 5.5、5.6、5.7 と MariaDB および Amazon Auroraは、オンプレミス、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 Database Migration Service の使用方法の詳細については、以下のセクションを参照してください。

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

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

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

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

    • MySQL Community Edition

    • MySQL Standard Edition

    • MySQL Enterprise Edition

    • MySQL Cluster Carrier Grade Edition

    • MariaDB

    • Amazon Aurora

  • ソースが Amazon RDS MySQL または MariaDB DB インスタンスか Amazon Aurora クラスターである場合、自動バックアップを有効にする必要があります。自動バックアップのセットアップの詳細については、『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 時間に伸ばすには、次のコマンドを実行します。

    Copy
    call mysql.rds_set_configuration('binlog retention hours', 24);
  • AWS Database Migration Service を使用してクラスター化された (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 に設定します。この値に設定すると、バイナリログに変更された列だけでなく行全体が含められます。

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

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

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

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

  • 名前に大文字と小文字の両方が含まれるテーブルから変更をキャプチャします。

  • AR_H_USER ヘッダー列。

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

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

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

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

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

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

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

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

MySQL データベースを AWS Database Migration Service のソースとして設定する

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