メニュー
Amazon Relational Database Service
ユーザーガイド (API Version 2014-10-31)

MySQL DB インスタンスから Amazon Aurora DB クラスターへのデータ移行 (DB スナップショットを使用)

以下で説明するように、Amazon RDS MySQL DB スナップショットから Amazon Aurora DB クラスターにデータを移行 (コピー) できます。

注記

Amazon Aurora は MySQL と互換性があるため、MySQL データベースと Amazon Aurora DB クラスターの間でレプリケーションをセットアップすることによって、MySQL データベースのデータを移行できます。MySQL データベースでは MySQL のバージョン 5.5 以降を実行することをお勧めします。詳細については、「Amazon Aurora レプリケーション」を参照してください。

RDS MySQL スナップショットの Aurora への移行

Amazon RDS MySQL DB インスタンスの DB スナップショットを移行して、Aurora DB クラスターを作成することができます。新しい DB クラスターには、元の Amazon RDS MySQL DB インスタンスのデータが入力されます。DB スナップショットは、MySQL 5.6 を実行中の Amazon RDS DB インスタンスから作成されている必要があります。

手動で作成された DB スナップショットと自動的に作成された DB スナップショットのどちらも移行できます。DB クラスターが作成された後、オプションの Aurora レプリカを作成できます。

実行する必要がある一般的な手順は次のとおりです。

  1. Amazon Aurora DB クラスターをプロビジョニングするための容量を決定します。詳細については、「必要な容量」を参照してください。

  2. コンソールを使用して、Amazon RDS MySQL 5.6 インスタンスが配置されているリージョン内にスナップショットを作成します。DB スナップショットの作成については、「DB スナップショットの作成」を参照してください。

  3. DB スナップショットが DB クラスターと同じリージョン内にない場合は、Amazon RDS コンソールを使用して DB スナップショットをそのリージョンにコピーします。DB スナップショットのコピーについては、「DB スナップショットのコピー」を参照してください。

  4. コンソールを使用して DB スナップショットを移行し、MySQL 5.6 の元の DB インスタンスと同じデータベースを持つ Amazon Aurora DB クラスターを作成します。

警告

Amazon RDS では、各 AWS アカウントによる各リージョンへのスナップショットのコピーは 1 度に 1 つに制限されています。

必要な容量

MySQL DB インスタンスのスナップショットを Aurora DB クラスターに移行するとき、Aurora は、スナップショットのデータを移行する前に Amazon Elastic Block Store (Amazon EBS) ボリュームを使用してそのデータの書式を設定します。移行するデータの書式を設定するために追加容量が必要になる場合があります。DB クラスターにデータを移行するときは、以下のガイドラインと制限を確認してください。

  • Amazon Aurora では最大 64 TB のサイズのストレージまでサポートされていますが、スナップショットの Aurora DB クラスターへの移行処理は、スナップショットの EBS ボリュームのサイズに制限されます。したがって、お客様が移行できるスナップショットの最大サイズは 6 TB です。

  • MyISAM テーブルではないテーブルおよび圧縮されていないテーブルのサイズは、最大 6 TB が可能です。MyISAM テーブルの場合、Aurora では、Aurora と互換性のあるテーブルに変換するために、ボリュームに追加のスペースが必要になります。圧縮されたテーブルの場合、Aurora では、圧縮されたテーブルを Aurora クラスターボリュームに保存する前に展開するため、ボリュームに追加のスペースが必要になります。追加のスペースが必要になるため、MySQL DB インスタンスから移行される MyISAM テーブルおよび圧縮テーブルのサイズが 3 TB を超えていないことを確認する必要があります。

Amazon Aurora にデータを移行するために必要な領域の縮小

Amazon Aurora に移行する前にデータベーススキーマを変更することもできます。このような変更は、次のような場合に便利です。

  • 移行プロセスを高速化する必要がある場合。

  • プロビジョニングするために必要な領域の量がわからない場合。

  • データを移行しようとしたが、プロビジョニング済み領域の不足で移行が失敗した場合。

以下の変更を行うことで、データベースを Amazon Aurora に移行するプロセスを改善できます。

重要

これらの更新は、本稼働インスタンスではなく、本稼働データベースのスナップショットから復元された新しい DB インスタンスに対して実行します。その後、新しい DB インスタンスのスナップショットからデータを Amazon Aurora DB クラスターに移行することで、プロダクションデータベースに対するサービスの中断を回避できます。

テーブルタイプ 制限またはガイドライン

MyISAM テーブル

Amazon Aurora は InnoDB テーブルのみをサポートします。データベース内に MyISAM テーブルがある場合は、Amazon Aurora に移行する前にそれらのテーブルを変換する必要があります。移行中の MyISAM から InnoDB への変換プロセスには、追加領域が必要です。

領域不足が発生する可能性を低く抑えて移行プロセスを高速化するには、すべての MyISAM テーブルを移行前に InnoDB テーブルに変換しておきます。処理後の InnoDB テーブルのサイズは、Amazon Aurora がそのテーブルに対して必要とするサイズと同じになります。MyISAM テーブルを InnoDB に変換するには、次のコマンドを実行します。

alter table <schema>.<table_name> engine=innodb, algorithm=copy;

圧縮テーブル

Amazon Aurora では、圧縮テーブル (ROW_FORMAT=COMPRESSED を使用して作成されたテーブル) をサポートしていません。

スペースが不足する可能性を減らしたり、移行処理を高速化するには、ROW_FORMATDEFAULTCOMPACTDYNAMIC または REDUNDANT に設定して圧縮テーブルを展開します。詳細については、https://dev.mysql.com/doc/refman/5.6/en/innodb-row-format.html を参照してください。

既存の MySQL DB インスタンスで以下の SQL スクリプトを使用して、データベースの MyISAM テーブルまたは圧縮テーブルのリストを表示できます。

Copy
-- This script examines a MySQL database for conditions that will block -- migrating the database into Amazon's Aurora DB. -- It needs to be run from an account that has read permission for the -- INFORMATION_SCHEMA database. -- Verify that this is a supported version of MySQL. select msg as `==> Checking current version of MySQL.` from ( select 'This script should be run on MySQL version 5.6. ' + 'Earlier versions are not supported.' as msg, cast(substring_index(version(), '.', 1) as unsigned) * 100 + cast(substring_index(substring_index(version(), '.', 2), '.', -1) as unsigned) as major_minor ) as T where major_minor <> 506; -- List MyISAM and compressed tables. Include the table size. select concat(TABLE_SCHEMA, '.', TABLE_NAME) as `==> MyISAM or Compressed Tables`, round(((data_length + index_length) / 1024 / 1024), 2) "Approx size (MB)" from INFORMATION_SCHEMA.TABLES where ENGINE <> 'InnoDB' and ( -- User tables TABLE_SCHEMA not in ('mysql', 'performance_schema', 'information_schema') or -- Non-standard system tables ( TABLE_SCHEMA = 'mysql' and TABLE_NAME not in ( 'columns_priv', 'db', 'event', 'func', 'general_log', 'help_category', 'help_keyword', 'help_relation', 'help_topic', 'host', 'ndb_binlog_index', 'plugin', 'proc', 'procs_priv', 'proxies_priv', 'servers', 'slow_log', 'tables_priv', 'time_zone', 'time_zone_leap_second', 'time_zone_name', 'time_zone_transition', 'time_zone_transition_type', 'user' ) ) ) or ( -- Compressed tables ROW_FORMAT = 'Compressed' );

スクリプトでは、次の例のような出力が作成されます。この例では、MyISAM から InnoDB に変換する必要のある 2 つのテーブルを示しています。出力には、メガバイト (MB) 単位で示した各テーブルのおおよそのサイズも含まれています。

Copy
+---------------------------------+------------------+ | ==> MyISAM or Compressed Tables | Approx size (MB) | +---------------------------------+------------------+ | test.name_table | 2102.25 | | test.my_table | 65.25 | +---------------------------------+------------------+ 2 rows in set (0.01 sec)

コンソールを使用した DB スナップショットの移行

Amazon RDS MySQL DB インスタンスの DB スナップショットを移行して、Aurora DB クラスターを作成することができます。新しい DB クラスターには、元の Amazon RDS MySQL DB インスタンスのデータが入力されます。DB スナップショットは、MySQL 5.6 を実行している Amazon RDS DB インスタンスから作成され、暗号化されていない必要があります。DB スナップショットの作成については、「DB スナップショットの作成」を参照してください。

DB スナップショットがデータを検索する AWS リージョン内にない場合は、Amazon RDS コンソールを使用してその DB スナップショットをそのリージョンにコピーします。DB スナップショットのコピーについては、「DB スナップショットのコピー」を参照してください。

コンソールを使用して DB スナップショットを移行すると、DB クラスターとプライマリインスタンスの両方を作成するために必要なアクションがコンソールによって実行されます。

新しい Aurora DB クラスターが、AWS Key Management Service (AWS KMS) の暗号化キーを使って「保管中」に暗号化されるよう選択することもできます。このオプションは、暗号化されていない DB スナップショットに対してのみ使用できます。

コンソールを使用して MySQL 5.6 DB スナップショットを移行するには:

  1. AWS マネジメントコンソールにサインインし、Amazon RDS コンソール (https://console.aws.amazon.com/rds/) を開きます。

  2. [Snapshots] を選択します。

  3. [Snapshots] ページで、Aurora DB クラスターに移行するスナップショットを選択します。

  4. [Migrate Database] を選択します。

     Amazon Aurora にスナップショットを移行する
  5. [Migrate Database] ページで以下の値を設定します。

    • DB Instance Class: データベースに必要なストレージと容量のある DB インスタンスクラス (db.r3.large など) を選択します。Aurora クラスターボリュームは、データベースのデータの量が増えるにつれて、64 テラバイト (TB) の最大サイズまで自動的に大きくなります。そのため、現在のストレージ要件を満たしている DB インスタンスクラスを選択する必要があります。詳細については、「Amazon Aurora ストレージ」を参照してください。

    • DB Instance Identifier: DB クラスター名を入力します。選択したリージョン内で、自分のアカウントに対して一意であることが必要です。この識別子は、DB クラスター内のインスタンスのエンドポイントアドレスで使用されます。名前には、選択したリージョンと DB エンジンなどを含めると理解しやすくなります (例: aurora-cluster1)。

      DB インスタンス識別子には次の制約があります。

      • 1 ~ 63 文字の英数字またはハイフンを使用する必要があります。

      • 1 字目は文字である必要があります。

      • ハイフンを、文字列の最後に使用したり、2 つ続けて使用したりすることはできません。

      • 各 AWS リージョンの各 AWS アカウントのすべての DB インスタンスの中で一意である必要があります。

    • VPC: 既存の VPC がある場合は、その VPC 識別子 (vpc-a464d1c1 など) を選択することにより、その VPC を Amazon Aurora DB クラスターで使用できます。既存の VPC の使用については、「Amazon Aurora で使用する VPC を作成する方法」を参照してください。

      それ以外の場合は、[Create a new VPC] を選択することにより、Amazon RDS で VPC を作成できます。

    • Subnet Group: 既存のサブネットグループがある場合は、そのサブネットグループ識別子 (gs-subnet-group1 など) を選択することにより、そのサブネットグループを Amazon Aurora DB クラスターで使用できます。

      それ以外の場合は、[Create a new subnet group] を選択することにより、Amazon RDS でサブネットグループを作成できます。

    • Publicly Accessible: DB クラスターのインスタンスが VPC 内のリソースからのみアクセスできることを指定するには、[No] を選択します。DB クラスターのインスタンスがパブリックネットワーク上のリソースからアクセスできることを指定するには、[Yes] を選択します。デフォルトは [Yes] です。

      注記

      DB クラスターは、パブリックサブネット内に配置する必要がない可能性があります。これは、お客様のアプリケーションサーバーのみがお客様の DB クラスターへのアクセスを必要とするためです。DB クラスターをパブリックサブネットに配置する必要がない場合は、[Publicly Accessible] を [No] に設定します。

    • Availability Zone: Aurora DB クラスターのプライマリインスタンスをホストするアベイラビリティーゾーンを選択します。Amazon RDS で自動的にアベイラビリティーゾーンを選択するには、[No Preference] を選択します。

    • Database Port: DB クラスターのインスタンスへの接続に使用されるデフォルトのポートを入力します。デフォルト: 3306

      注記

      会社のファイアウォールで MySQL のデフォルトポートである 3306 などのデフォルトポートへのアクセスが許可されない場合があります。この場合は、会社のファイアウォールによって許可されるポート値を指定します。そのポート値を覚えておいてください。後で Aurora DB クラスターに接続するときに使用します。

    • 暗号化を有効にする: 新しい Aurora DB クラスターを「保管中」に暗号化するには、[Yes] を選択します。[Yes] を選択する場合、[Master Key] 値として AWS KMS 暗号化キーを選択する必要があります。

    • Auto Minor Version Upgrade: Aurora DB クラスターに MySQL DB エンジンのマイナーバージョンアップグレードがリリースと同時に自動的に適用されるようにする場合は、[Yes] を選択します。

      [Auto Minor Version Upgrade] オプションは、Amazon Aurora DB クラスターの MySQL マイナーエンジンバージョンに対するアップグレードのみに適用されます。システム安定性を維持するために適用される定期的なパッチは適用されません。

     Amazon Aurora にスナップショットを移行する
  6. [Migrate] を選択して、DB スナップショットを移行します。

  7. [Instances] を選択して、矢印アイコンを選択して DB クラスターの詳細を表示し、移行の進行状況をモニタリングします。詳細ページで、DB クラスターのプライマリインスタンスへの接続に使用されているクラスターエンドポイントがわかります。Amazon Aurora DB クラスターとの接続の詳細については、「Amazon Aurora DB クラスターへの接続」を参照してください。

     DB クラスターの詳細

関連トピック