メニュー
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 スナップショットに対してのみ使用できます。

To migrate a MySQL 5.6 DB snapshot by using the console

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

  2. Choose Snapshots.

  3. On the Snapshots page, choose the snapshot that you want to migrate into an Aurora DB cluster.

  4. Choose Migrate Database.

    
                                Migrate a snapshot into Amazon Aurora
  5. Set the following values on the Migrate Database page:

    • DB Instance Class: Select a DB instance class that has the required storage and capacity for your database, for example db.r3.large. Aurora cluster volumes automatically grow as the amount of data in your database increases, up to a maximum size of 64 terabytes (TB). So you only need to select a DB instance class that meets your current storage requirements. For more information, see Amazon Aurora ストレージ.

    • DB Instance Identifier: Type a name for the DB cluster that is unique for your account in the region you selected. This identifier is used in the endpoint addresses for the instances in your DB cluster. You might choose to add some intelligence to the name, such as including the region and DB engine you selected, for example aurora-cluster1.

      The DB instance identifier has the following constraints:

      • It must contain from 1 to 63 alphanumeric characters or hyphens.

      • Its first character must be a letter.

      • It cannot end with a hyphen or contain two consecutive hyphens.

      • It must be unique for all DB instances per AWS account, per AWS Region.

    • VPC: If you have an existing VPC, then you can use that VPC with your Amazon Aurora DB cluster by selecting your VPC identifier, for example vpc-a464d1c1. For information on using an existing VPC, see Amazon Aurora で使用する VPC を作成する方法.

      Otherwise, you can choose to have Amazon RDS create a VPC for you by selecting Create a new VPC.

    • Subnet Group: If you have an existing subnet group, then you can use that subnet group with your Amazon Aurora DB cluster by selecting your subnet group identifier, for example gs-subnet-group1.

      Otherwise, you can choose to have Amazon RDS create a subnet group for you by selecting Create a new subnet group.

    • Publicly Accessible: Select No to specify that instances in your DB cluster can only be accessed by resources inside of your VPC. Select Yes to specify that instances in your DB cluster can be accessed by resources on the public network. The default is Yes.

      注記

      Your production DB cluster might not need to be in a public subnet, because only your application servers will require access to your DB cluster. If your DB cluster doesn't need to be in a public subnet, set Publicly Accessible to No.

    • Availability Zone: Select the Availability Zone to host the primary instance for your Aurora DB cluster. To have Amazon RDS select an Availability Zone for you, select No Preference.

    • Database Port: Type the default port to be used when connecting to instances in the DB cluster. The default is 3306.

      注記

      You might be behind a corporate firewall that doesn't allow access to default ports such as the MySQL default port, 3306. In this case, provide a port value that your corporate firewall allows. Remember that port value later when you connect to the Aurora DB cluster.

    • Enable Encryption: Choose Yes for your new Aurora DB cluster to be encrypted "at rest." If you choose Yes, you will be required to choose an AWS KMS encryption key as the Master Key value.

    • Auto Minor Version Upgrade: Select Yes if you want to enable your Aurora DB cluster to receive minor MySQL DB engine version upgrades automatically when they become available.

      The Auto Minor Version Upgrade option only applies to upgrades to MySQL minor engine versions for your Amazon Aurora DB cluster. It doesn't apply to regular patches applied to maintain system stability.

    
                                Migrate a snapshot into Amazon Aurora
  6. Choose Migrate to migrate your DB snapshot.

  7. Choose Instances, and then choose the arrow icon to show the DB cluster details and monitor the progress of the migration. On the details page, you will find the cluster endpoint used to connect to the primary instance of the DB cluster. For more information on connecting to an Amazon Aurora DB cluster, see Amazon Aurora DB クラスターへの接続.

    
                                DB Cluster Details

関連トピック