Amazon RDS MySQL DB インスタンスから DB クラスターにデータを移行するAmazon Aurora MySQL - AWS Database Migration Service

「翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。」

Amazon RDS MySQL DB インスタンスから DB クラスターにデータを移行するAmazon Aurora MySQL

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

注記

Amazon Aurora MySQLMySQLは と互換性があるため、MySQLデータベースと MySQL DB クラスターの間でレプリケーションをセットアップすることで、Amazon Aurora MySQLデータベースのデータを移行できます。MySQLデータベースではMySQLバージョン 5.5 以降を実行することをお勧めします。

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

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

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

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

  1. Amazon Aurora MySQL DB クラスターをプロビジョニングするための容量を決定します。詳細については、Amazon RDS ドキュメントを参照してください。

  2. コンソールを使用して、Amazon RDSMySQL5.6 インスタンスが配置されているリージョン内にスナップショットを作成します。

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

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

警告

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

必要な容量

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

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

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

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

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

  • 移行プロセスを迅速化したい。

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

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

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

重要

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

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

MyISAM テーブル

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

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

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

圧縮テーブル

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

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

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

-- This script examines a MySQL database for conditions that will block -- migrating the database into an Amazon Aurora MySQL 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', 'general_log_backup','slow_log_backup' ) ) ) or ( -- Compressed tables ROW_FORMAT = 'Compressed' );

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

+---------------------------------+------------------+ | ==> 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 スナップショットの移行

DB インスタンスの DB スナップショットを移行して、 Amazon RDS DB クラスターを作成できます。MySQLAurora MySQL新しい DB クラスターには、元の Amazon RDS MySQL DB インスタンスのデータが入力されます。DB スナップショットは、Amazon RDS5.6 を実行する MySQL DB インスタンスから作成され、暗号化される必要があります。DB スナップショットを作成する方法については、Amazon RDS のドキュメントを参照してください。

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

    • VPC: 既存の VPC がある場合は、その VPC 識別子 ( など) を選択して、その VPC を Amazon Aurora MySQL DB vpc-a464d1c1 クラスターで使用できます。 既存の VPC の使用については、 Amazon RDS のドキュメントを参照してください

      または、[新しい VPC の作成] を選択し、Amazon RDS で自動的に VPC を作成します。

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

      または、[Create a new subnet group] を選択し、Amazon RDS で自動的にサブネットグループを作成します。

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

      注記

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

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

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

      注記

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

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

    • マイナーバージョン自動アップグレード: DB クラスターで DB エンジンのマイナーバージョンアップグレードをリリースと同時に自動的に受信するには、[Aurora MySQLYes] を選択します。MySQL

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

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

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

    
                                DB クラスターの詳細