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

外部の MySQL データベースから Amazon Aurora DB クラスターへのデータ移行

データベースが InnoDB または MyISAM のテーブルスペースをサポートしている場合、これらのオプションを使用して、データを Amazon Aurora DB クラスターに移行できます。

  • mysqldump ユーティリティを使用してデータのダンプを作成し、そのデータを既存の Amazon Aurora DB クラスターにインポートできます。詳細については、「mysqldump を使用した MySQL から Amazon Aurora への移行」を参照してください。

  • データベースから Amazon S3 バケットにソースファイルをコピーし、これらのファイルから Amazon Aurora DB クラスターを復元できます。このオプションは、mysqldump を使用したデータの移行よりもかなり高速になる場合があります。詳細については、「Amazon S3 バケットを使用した MySQL からのデータ移行」を参照してください。

詳細については、「外部の MySQL データベースから Amazon Aurora DB クラスターへのデータ移行」を参照してください。

Amazon S3 バケットを使用した MySQL からのデータ移行

MySQL 5.5 または 5.6 データベースから Amazon S3 バケットにソースファイルをコピーし、これらのファイルから Amazon Aurora DB クラスターを復元できます。

このオプションは、mysqldump を使用したデータ移行よりもかなり高速になる場合があります。これは、mysqldump を使用することですべてのコマンドが再生され、新しい Amazon Aurora DB クラスターのソースデータベースからスキーマとデータが再作成されるためです。ソース MySQL データファイルをコピーすることで、Amazon Aurora はこれらのファイルを即座に DB クラスター用のデータとして使用できます。

注記

Amazon S3 バケットのバックアップファイルからの Amazon Aurora DB クラスターの復元は、アジアパシフィック (ムンバイ) リージョンではサポートされていません。

Amazon Aurora は、データベースからすべてを復元するわけではありません。ソース MySQL または MariaDB データベースからデータベーススキーマと以下の項目の値を保存し、作成後に復元された Amazon Aurora DB クラスターに追加する必要があります。

  • ユーザーアカウント

  • 関数

  • ストアドプロシージャ

  • タイムゾーン情報。タイムゾーン情報は、Amazon Aurora DB クラスターのローカルオペレーティングシステムからロードされます。詳細については、「Amazon Aurora DB クラスターのローカルタイムゾーン」を参照してください。

開始する前に

Amazon S3 バケットにデータをコピーし、それらのファイルから DB クラスターを復元するには、事前に以下の作業を行う必要があります。

  • Percona XtraBackup をローカルサーバーにインストールします。

  • お客様に代わって Amazon Aurora が Amazon S3 バケットにアクセスすることを許可します。

Percona XtraBackup のインストール

Amazon Aurora では、Percona XtraBackup を使用して作成されたファイルから DB クラスターを復元できます。Percona XtraBackup は Percona のウェブサイト (https://www.percona.com/doc/percona-xtrabackup/2.4/installation) からインストールできます。

必要なアクセス許可

MySQL データを Amazon Aurora DB クラスターに移行するには、複数のアクセス権限が必要です。

  • Amazon RDS による Amazon S3 バケットからの新しいクラスターの作成をリクエストするユーザーには、AWS アカウントのバケットをリストするアクセス権限が必要です。このアクセス権限は、AWS Identity and Access Management (IAM) ポリシーを使用してユーザーに付与します。

  • Amazon RDS では、Amazon Aurora DB クラスターの作成に使用されるファイルを保存する Amazon S3 にバケットに、お客様に代わってアクセスする権限が必要です。IAM サービスロールを使用して、Amazon RDS に必要なアクセス権限を付与します。

  • リクエストを実行するユーザーには、AWS アカウントの IAM ロールをリストするアクセス権限も必要です。

  • リクエストを実行するユーザーが IAM サービスロールを作成するか、Amazon RDS が IAM サービスロールを作成することをリクエストする場合 (コンソールを使用)、ユーザーには AWS アカウントの IAM ロールを作成するアクセス権限が必要です。

たとえば、次の IAM ポリシーでは、コンソールを使用して IAM ロールをリストし、IAM ロールを作成して、アカウントの S3 バケットをリストするために必要な最小のアクセス権限をユーザーに付与します。

Copy
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "iam:ListRoles", "iam:CreateRole", "iam:CreatePolicy", "iam:AttachRolePolicy", "s3:ListBucket", "s3:ListObjects" ], "Resource": "*" } ] }

さらに、ユーザーが IAM ロールを S3 バケットに関連付けるためには、IAM ユーザーに、その IAM ロールの iam:PassRole アクセス権限が必要です。このアクセス権限により、ユーザーが S3 バケットに関連付けることができる IAM ロールを管理者が制限できます。

たとえば、次の IAM ポリシーでは、S3Access という名前のロールをユーザーが S3 バケットに関連付けることができます。

Copy
{ "Version":"2012-10-17", "Statement":[ { "Sid":"AllowS3AccessRole", "Effect":"Allow", "Action":"iam:PassRole", "Resource":"arn:aws:iam::123456789012:role/S3Access" } ] }

IAM ユーザーのアクセス権限の詳細については、「Amazon RDS でアイデンティティベースのポリシー (IAM ポリシー) を使用する」を参照してください。

IAM サービスロールの作成

[Create a New Role] オプション (このトピックで後述します) を選択して、Amazon RDS マネジメントコンソールでロールを作成することができます。このオプションを選択して新しいロールの名前を指定すると、Amazon RDS は指定された名前で S3 バケットに Amazon RDS がアクセスするために必要な IAM サービスロールを作成します。

または、次の手順を使用して手動でロールを作成できます。

Amazon RDS が Amazon S3 にアクセスするための IAM ロールを作成するには

  1. IAM コンソール (https://console.aws.amazon.com/iam/) にサインインします。

  2. 左のナビゲーションペインで、[Roles] を選択します。

  3. [Create New Role] を選択します。次に、新しいロールの [Role Name] の値を指定し、[Next Step] を選択します。

  4. [AWS Service Roles] で [Amazon RDS] を見つけ、[Select] を選択します。

  5. [Attach Policy] ステップで、アタッチするポリシーを選択しないでください。代わりに、[Next Step] を選択します。

  6. ロール情報を確認し、[Create Role] を選択します。

  7. ロールのリストで、新しく作成したロールの名前を選択します。[Permissions] タブを選択します。

  8. [Inline Policies] を選択します。新しいロールにアタッチされたポリシーはないため、作成するよう求められます。リンクをクリックして新しいポリシーを作成します。

  9. [Set Permissions] ページで、[Custom Policy] を選択し、次に [Select] をクリックします。

  10. S3-bucket-policy などの [Policy Name] を入力します。[Policy Document] の次のコードを追加し、<bucket name> を、アクセスを許可する S3 バケットの名前で置き換えます。

    ポリシードキュメントの一部として、ファイル名プレフィックスを含めることもできます。プレフィックスを指定すると、Amazon Aurora は指定されたプレフィックスで始まる S3 バケットのファイルを使用して DB クラスターを作成します。プレフィックスを指定しない場合、Amazon Aurora は S3 バケットのすべてのファイルを使用して DB クラスターを作成します。

    プレフィックスを指定するには、次の <prefix> をファイル名のプレフィックスに置き換えます。プレフィックスの後にアスタリスク (*) を含めます。プレフィックスを指定しない場合は、アスタリスクのみを指定します。

    Copy
    { "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "s3:ListBucket", "s3:GetBucketLocation" ], "Resource": [ "arn:aws:s3:::<bucket name>" ] }, { "Effect": "Allow", "Action": [ "s3:GetObject" ], "Resource": [ "arn:aws:s3:::<bucket name>/<prefix>*" ] } ] }
  11. [Apply Policy] を選択します。

DB クラスターとして復元するためのファイルのバックアップ

Amazon Aurora DB クラスターを作成するために S3 から復元できる、MySQL データベースファイルのバックアップを作成するには、Percona Xtrabackup ユーティリティ (innobackupex) を使用してデータベースをバックアップします。

たとえば、次のコマンドは MySQL データベースのバックアップを作成し、ファイルを /s3-restore/backup フォルダに保存します。

Copy
innobackupex --user=myuser --password=<password> --no-timestamp /s3-restore/backup

バックアップを 1 つのファイル (必要に応じて分割できます) に圧縮する場合、以下のいずれかの形式を使用して --stream オプションを使用してバックアップを保存できます。

  • Gzip (.gz)

  • tar (.tar)

  • Percona xbstream (.xbstream)

たとえば、次のコマンドでは、複数の Gzip ファイルに分割された MySQL データベースのバックアップを作成します。

Copy
innobackupex --user=myuser --password=<password> --stream=tar \ /mydata/s3-restore/backup | gzip - | split -d --bytes=512000 \ - /mydata/s3-restore/backup3/backup.tar.gz

たとえば、次のコマンドでは、複数の tar ファイルに分割された MySQL データベースのバックアップを作成します。

Copy
innobackupex --user=myuser --password=<password> --stream=tar \ /mydata/s3-restore/backup | split -d --bytes=512000 \ - /mydata/s3-restore/backup3/backup.tar

たとえば、次のコマンドでは、複数の xbstream ファイルに分割された MySQL データベースのバックアップを作成します。

Copy
innobackupex --stream=xbstream \ /mydata/s3-restore/backup | split -d --bytes=512000 \ - /mydata/s3-restore/backup/backup.xbstream

Amazon S3 では、バケットにアップロードされるファイルのサイズは 5 テラバイト (TB) に制限されます。データベースのバックアップデータが 5 TB を超える場合は、split コマンドを使用して、それぞれが 5 TB 未満の複数のファイルにバックアップファイルを分割する必要があります。

Amazon Aurora では、Percona Xtrabackup を使用して作成された部分バックアップがサポートされていません。データベースのソースファイルをバックアップするときに、--include--tables-file、または --databases オプションを使用して部分バックアップを作成することはできません。

詳細については、「The innobackupex Script」を参照してください。

Amazon Aurora はファイル名に基づいてバックアップファイルを消費します。ファイル形式に基づいた適切なファイル拡張子でバックアップファイルの名前を付けてください。たとえば、Percona xbstream 形式を使用して保存されるファイルでは、.xbstream のようにします。

Amazon Aurora はアルファベット順および通常の数値順にバックアップファイルを消費します。バックアップファイルが適切な順序で書き込まれ、名前が付けられるように、innobackupex コマンドを発行するときは必ず split オプションを使用します。

Amazon S3 バケットへのファイルのコピー

Percona Xtrabackup ユーティリティを使用して MySQL データベースをバックアップしたら、バックアップファイルを Amazon S3 バケットにコピーできます。

ファイルを作成して Amazon S3 バケットにアップロードする方法については、Amazon S3 入門ガイドの「Amazon Simple Storage Service の使用開始」を参照してください。

Amazon S3 バケットからの Aurora DB クラスターの復元

Amazon RDS コンソールを使用して、Amazon S3 バケットから新しい Amazon Aurora DB クラスターにバックアップファイルを復元できます。

Amazon Aurora DB クラスターをファイルから S3 バケットに復元するには

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

  2. RDS Dashboard で、[Restore Aurora DB Cluster from S3] を選択します。

  3. [Specify Source Backup Details] で、以下を指定します。

    使用するオプション 操作

    ソースエンジン

    現在、Amazon Aurora は mysql データベースエンジン用のバックアップファイルからのみの復元をサポートしています。

    ソースエンジンのバージョン

    バックアップファイルの作成元の MySQL データベースのバージョンを指定します (たとえば、5.6.22)。MySQL バージョン 5.5 と 5.6 がサポートされています。

    S3 バケットの選択

    バックアップファイルが保存されている Amazon S3 バケットを選択します。

    S3 バケットプレフィックス (オプション)

    Amazon S3 バケットに保存されているファイルのファイルパスプレフィックスを指定します。[S3 Bucket Prefix] はオプションです。プレフィックスを指定しない場合、Amazon Aurora は S3 バケットのルートフォルダにあるすべてのファイルを使用して DB クラスターを作成します。プレフィックスを指定すると、Amazon Aurora はファイルのフルパスが指定されたプレフィックスで始まるフ S3 バケットのファイルを使用して DB クラスターを作成します。

    Amazon Aurora は、S3 バケットのサブフォルダを走査してバックアップファイルを探しません。S3 バケットプレフィックスにより識別されるフォルダのファイルのみ使用されます。バックアップファイルを S3 バケットのサブフォルダに保存する場合、ファイルが保存されるフォルダのフルパスを識別するプレフィックスを指定する必要があります。

    たとえば、S3 バケットの backups というサブフォルダにバックアップファイルを保存し、複数のバックアップファイルセットがそれぞれ独自のディレクトリ (gzip_backup1gzip_backup2 など) にある場合、gzip_backup1 フォルダのファイルから復元するにはプレフィックス backups/gzip_backup1 を指定します。

    IAM ロール

    お客様に代わって Amazon S3 にアクセスすることを Amazon Aurora に許可するために作成した IAM ロールを選択します。IAM ロールを作成していない場合は、[Create a New Role] を選択して作成できます。詳細については、「必要なアクセス許可」を参照してください。

    一般的な [Specify Source Backup Details] ページは次のようになります。

     Amazon S3 バケットからの Amazon Aurora の移行
  4. [Next Step] を選択します。

  5. [Specify DB Details] ページで、DB クラスターの情報を指定します。次の表は、DB インスタンスの設定を示しています。

    使用するオプション 操作

    DB インスタンスクラス

    DB クラスターの各インスタンスに対する処理要件やメモリ要件を定義する DB インスタンスクラスを選択します。Aurora は、db.r3.largedb.r3.xlargedb.r3.2xlargedb.r3.4xlarge、および db.r3.8xlarge の各 DB インスタンスクラスをサポートします。DB インスタンスクラスのオプションについては、「DB インスタンスクラス」を参照してください。

    マルチ AZ 配置

    フェイルオーバーのサポート用に他のアベイラビリティーゾーンで Aurora レプリカを作成するかどうかを決めます。複数のアベイラビリティーゾーンの詳細については、「リージョンとアベイラビリティーゾーン」を参照してください。

    DB Instance Identifier

    DB クラスターのプライマリインスタンスの名前を入力します。この識別子は、DB クラスターのプライマリインスタンスのエンドポイントアドレスで使用されます。

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

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

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

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

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

    Master Username

    DB クラスターにログオンするためのマスターユーザー名を英数字で入力します。マスターユーザー名アカウントには、次のデフォルト特権が付与されます。create, drop, references, event, alter, delete, index, insert, select, update, create temporary tables, lock tables, trigger, create view, show view, alter routine, create routine, execute, create user, process, show databases, grant option

    Master Password

    マスターユーザーのパスワードを 8 ~ 41 文字で入力します。使用できるのは印刷可能な ASCII 文字 (/、"、@ を除く) です。

    一般的な [Specify DB Details] ページは次のようになります。

     Amazon Aurora DB インスタンス起動ウィザードの DB インスタンスの詳細
  6. マスターパスワードを確認し、[Next] を選択します。

  7. [Configure Advanced Settings] ページで、Aurora DB クラスターのその他の設定をカスタマイズできます。次の表は、DB クラスターの詳細設定を示しています。

    使用するオプション 操作

    VPC

    DB クラスターをホストする VPC を選択します。[Create a New VPC] を選択して、Amazon RDS で VPC を作成します。詳細については、このトピックで前述した「DB クラスターの前提条件」を参照してください。

    サブネットグループ

    DB クラスターで使用する DB サブネットグループを選択します。[Create a New DB Subnet Group] を選択し、Amazon RDS で DB サブネットグループを作成します。詳細については、このトピックで前述した「DB クラスターの前提条件」を参照してください。

    パブリックアクセス可能

    DB クラスターにパブリック IP アドレスを指定するには [Yes] を選択します。それ以外の場合は [No] を選択します。DB クラスターのインスタンスでは、パブリック DB インスタンスとプライベート DB インスタンスの両方を混在させることができます。パブリックアクセスからインスタンスを隠す方法については、「VPC の DB インスタンスをインターネットから隠す」を参照してください。

    アベイラビリティーゾーン

    特定のアベイラビリティーゾーンを指定するかどうかを指定します。利用可能ゾーンについての詳細は、リージョンとアベイラビリティーゾーン を参照してください。

    VPC セキュリティグループ

    DB クラスターへのネットワークアクセスの保護用に 1 つ以上の VPC セキュリティグループを選択します。[Create a New VPC Security Group] を選択して、Amazon RDS で VPC セキュリティグループを作成します。詳細については、このトピックで前述した「DB クラスターの前提条件」を参照してください。

    DB クラスター識別子

    DB クラスターの名前を入力します。この名前は選択したリージョン内で、お客様のアカウントに対して一意である必要があります。この識別子は、DB クラスターのクラスターエンドポイントアドレスで使用されます。クラスターエンドポイントの詳細については、「Aurora エンドポイント」を参照してください。

    DB クラスター識別子には以下の制約があります。

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

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

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

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

    Database Name

    データベースの名前を、英数字 8 文字以内で入力します。名前の指定がない場合、Amazon RDS は DB クラスターにデータベースを作成しません。

    Database Port

    データベースにアクセスするためにアプリケーションやユーティリティで使用されるポートを指定します。Aurora DB クラスターのデフォルトの MySQL ポートは 3306 になります。会社のファイアウォールによっては、デフォルトの MySQL ポートへの接続がブロックされます。会社のファイアウォールがデフォルトのポートをブロックする場合は、新しい DB クラスター用に別のポートを選択します。

    パラメータグループ

    パラメータグループを選択します。Aurora にはデフォルトのパラメータグループが用意されています。また、独自のパラメータグループを作成することもできます。パラメータグループの詳細については、「DB パラメータグループを使用する」を参照してください。

    Option Group

    オプショングループを選択します。Aurora にはデフォルトのオプショングループが用意されています。また、独自のオプショングループを作成することもできます。オプショングループの詳細については、「オプショングループを使用する」を参照してください。

    暗号を有効化

    この DB クラスターを保管時に暗号化するには、[Yes] を選択します。詳細については、「Amazon RDS リソースの暗号化」を参照してください。

    優先度

    インスタンスのフェイルオーバー優先度を選択します。値を選択しない場合、デフォルト値は tier-1 になります。この優先度により、プライマリインスタンスの障害からの復旧時に、Aurora レプリカを昇格する順序が決まります。詳細については、「Aurora DB クラスターの耐障害性」を参照してください。

    バックアップの保存期間

    Aurora がデータベースのバックアップコピーを保持する期間 (1 ~ 35 日) を選択します。バックアップコピーは、データベースの秒単位のポイントインタイム復元 (PITR) で使用できます。

    Enable Enhanced Monitoring

    DB クラスターが実行されているオペレーティングシステムに対してリアルタイムでのメトリクスの収集を有効にするには、[Yes] を選択します。詳細については、「拡張モニタリング」を参照してください。

    詳細度

    このオプションは、[Enable Enhanced Monitoring] が [Yes] に設定されている場合にのみ使用できます。DB クラスターのメトリクスを収集する間隔を秒単位で設定します。

    Auto Minor Version Upgrade

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

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

    メンテナンス時間

    週 1 回のシステムメンテナンスを実行できる時間帯を選択します。

    一般的な [Configure Advanced Settings] ページは次のようになります。

     Amazon Aurora DB インスタンス起動ウィザードの詳細設定の編集
  8. [Launch DB Instance] を選択して Aurora DB インスタンスを起動し、[Close] を選択してウィザードを閉じます。

    Amazon RDS コンソールでは、新しい DB インスタンスが DB インスタンスのリストに表示されます。DB インスタンスが作成されて使用できるようになるまで、DB インスタンスのステータスは creating となります。ステータスが [available] に変わったら、DB クラスターのプライマリインスタンスに接続できます。DB インスタンスクラスと割り当てられたストレージによっては、新しいインスタンスを使用できるようになるまで数分かかることがあります。

    新しく作成したクラスターを表示するには、Amazon RDS コンソールで [Clusters] ビューを選択します。詳細については、「Amazon Aurora DB クラスターの表示」を参照してください。

     Amazon Aurora DB インスタンスリスト

    クラスターのポートとエンドポイントをメモします。クラスターのエンドポイントとポートは、書き込みまたは読み取りオペレーションを実行するすべてのアプリケーション用の JDBC 接続文字列と ODBC 接続文字列で使用します。

mysqldump を使用した MySQL から Amazon Aurora への移行

Amazon Aurora は MySQL と互換性があるデータベースであるため、mysqldump ユーティリティを使用して MySQL または MariaDB データベースから既存の Amazon Aurora DB クラスターにデータをコピーできます。非常に大きな MySQL データベースでこれを行う方法については、「わずかなダウンタイムでの Amazon RDS MySQL または MariaDB DB インスタンスへのデータのインポート」を参照してください。データの量が少ない MySQL データベースの場合は、「MySQL DB または MariaDB DB から Amazon RDS MySQL または MariaDB DB インスタンスへのデータのインポート」を参照してください。

関連トピック