メニュー
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 からのデータ移行」を参照してください。

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

ソースの MySQL バージョン 5.5 または 5.6 データベースから Amazon S3 バケットに完全および増分バックアップファイルをコピーし、これらのファイルから Amazon Aurora DB クラスターを復元できます。

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

必要なアクセス許可

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 バケットにアクセスするために必要な IAM サービスロールが Amazon RDS で作成されます。

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

To create an IAM role for Amazon RDS to access Amazon S3

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

  2. In the navigation pane, choose Roles.

  3. Choose Create New Role, specify a value for Role Name for the new role, and then choose Next Step.

  4. Under AWS Service Roles, find Amazon RDS and choose Select.

  5. Don't select a policy to attach in the Attach Policy step. Instead, choose Next Step.

  6. Review your role information, and then choose Create Role.

  7. In the list of roles, choose the name of your newly created role. Choose the Permissions tab.

  8. Choose Inline Policies. Because your new role has no policy attached, you are prompted to create one. Click the link to create a new policy.

  9. On the Set Permissions page, choose Custom Policy and then choose Select.

  10. Type a Policy Name such as S3-bucket-policy. Add the following code for Policy Document, replacing <bucket name> with the name of the S3 bucket that you are allowing access to.

    As part of the policy document, you can also include a file name prefix. If you specify a prefix, then Amazon Aurora creates the DB cluster using the files in the S3 bucket that begin with the specified prefix. If you don't specify a prefix, then Aurora creates the DB cluster using all of the files in the S3 bucket.

    To specify a prefix, replace <prefix> following with the prefix of your file names. Include the asterisk (*) after the prefix. If you don't want to specify a prefix, specify only an asterisk.

    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. Choose Apply Policy.

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

Percona Xtrabackup を使用して MySQL データベースファイルの完全バックアップを作成し、そのバックアップファイルを Amazon S3 バケットにアップロードできます。または、Percona Xtrabackup を使用して MySQL データベースファイルをバックアップ済みである場合は、既存の完全および増分バックアップディレクトおよびファイルを Amazon S3 バットにアップロードできます。

Percona Xtrabackup での完全バックアップの作成

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/backup/backup.tar.gz

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

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

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

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

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

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

Percona Xtrabackup での増分バックアップの使用

Aurora は、Percona Xtrabackup を使用して作成された完全バックアップおよび増分バックアップの両方をサポートしています。Percona Xtrabackup を使用して MySQL データベースファイルの完全および増分バックアップを作成済みである場合は、完全バックアップを作成して Amazon S3 にアップロードする必要はありません。代わりに、既存の完全および増分バックアップのディレクトリおよびファイルを Amazon S3 バケットにコピーして、多大な時間を節約できます。Percona Xtrabackup を使用した増分バックアップの作成の詳細については、「Incremental Backups with innobackupex」を参照してください。

既存の完全および増分バックアップファイルを Amazon S3 バケットにコピーするときは、ベースディレクトリのコンテンツを再帰的にコピーする必要があります。これらのコンテンツには、完全バックアップと、すべての増分バックアップディレクトリおよびファイルが含まれます。このコピーは、Amazon S3 バケットのディレクトリ構造を維持する必要があります。Aurora は、すべてのファイルとディレクトリを反復処理します。Aurora では、各増分バックアップに含まれている xtrabackup-checkpoints ファイルを使用してベースディレクトリを識別し、ログシーケンス番号 (LSN) の範囲に従って増分バックアップを整理します。

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

バックアップに関する考慮事項

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

Amazon RDS では、Amazon S3 バケットにアップロードするソースファイルの数が百万までに制限されます。データベースのバックアップデータ (すべての完全および増分バックアップを含む) 内に多数のファイルがある場合は、tarball (.tar.gz) ファイルを使用して完全および増分バックアップファイルを Amazon S3 バケットに保存します。

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

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

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

Aurora では、--no-timestamp オプションの有無にかかわらず、Percona Xtrabackup を使用して作成された増分バックアップをサポートします。増分バックアップのディレクトリ構造の深さを制限するために、--no-timestamp オプションを使用することをお勧めします。

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

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

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

To restore an Amazon Aurora DB cluster from files on an S3 bucket

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

  2. In the RDS dashboard, choose Restore Aurora DB Cluster from S3.

  3. In the Specify Source Backup Details, specify the following:

    For This Option Do This

    Source Engine

    Amazon Aurora currently supports only restoring from backup files for the mysql database engine.

    Source Engine Version

    Specify the version of the MySQL database that the backup files were created from, for example 5.6.22. MySQL version 5.5 and 5.6 are supported.

    S3 Bucket

    Select the Amazon S3 bucket where your backup files are stored.

    S3 Bucket Prefix

    (Optional) Specify a file path prefix for the files stored in your Amazon S3 bucket. The S3 Bucket Prefix is optional. If you don't specify a prefix, then Amazon Aurora creates the DB cluster using all of the files and folders in the root folder of the S3 bucket. If you specify a prefix, then Amazon Aurora creates the DB cluster using the files and folders in the S3 bucket where the full path for the file begins with the specified prefix.

    Amazon Aurora doesn't traverse other subfolders in your S3 bucket looking for backup files. Only the files from the folder identified by the S3 Bucket Prefix are used. If you store your backup files in a subfolder in your S3 bucket, then you must specify a prefix that identifies the full path to the folder where the files are stored.

    For example, suppose that you store your backup files in a subfolder of your S3 bucket named backups, and you have multiple sets of backup files, each in its own directory (gzip_backup1, gzip_backup2, and so on.) In this case, you specify a prefix of backups/gzip_backup1 to restore from the files in the gzip_backup1 folder.

    Create a New Role

    Choose Yes to create a new IAM role, or No to select an existing IAM role, to authorize Amazon Aurora to access Amazon S3 on your behalf. For more information, see 必要なアクセス許可.

    IAM Role Name

    This option is available only if Create a New Role is set to Yes. Specify the name of the new IAM role to be created. The new role is used to authorize Amazon Aurora to access Amazon S3 on your behalf. For more information, see 必要なアクセス許可.

    IAM Role

    This option is available only if Create a New Role is set to No. Select the IAM role that you created to authorize Amazon Aurora to access Amazon S3 on your behalf. If you have not created an IAM role, you can instead set Create a New Role to Yes to create one. For more information, see 必要なアクセス許可.

    IAM Role Name

    This option is available only if Create a New Role is set to Yes. Specify the name of the new IAM role to be created. The new role is used to authorize Amazon Aurora to access Amazon S3 on your behalf. For more information, see 必要なアクセス許可.

    IAM Role

    This option is available only if Create a New Role is set to No. Select the IAM role that you created to authorize Amazon Aurora to access Amazon S3 on your behalf. If you have not created an IAM role, you can instead set Create a New Role to Yes to create one. For more information, see 必要なアクセス許可.

    A typical Specify Source Backup Details page looks like the following.

    
                                Amazon Aurora Migrate from an Amazon S3 bucket
  4. Choose Next Step.

  5. On the Specify DB Details page, specify your DB cluster information. The following table shows settings for a DB instance.

    For This Option Do This

    DB Instance Class

    Select a DB instance class that defines the processing and memory requirements for each instance in the DB cluster. Aurora supports the db.t2.small, db.t2.medium, db.r3.large, db.r3.xlarge, db.r3.2xlarge, db.r3.4xlarge, and db.r3.8xlarge DB instance classes. For more information about DB instance class options, see DB インスタンスクラス.

    Multi-AZ Deployment

    Determine if you want to create Aurora Replicas in other Availability Zones for failover support. For more information about multiple Availability Zones, see リージョンとアベイラビリティーゾーン.

    DB Instance Identifier

    Type a name for the primary instance in your DB cluster. This identifier is used in the endpoint address for the primary instance of your DB cluster.

    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 region.

    Master Username

    Type a name using alphanumeric characters that you will use as the master user name to log on to your DB cluster. The default privileges granted to the master user name account include: 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

    Type a password that contains from 8 to 41 printable ASCII characters (excluding /,", and @) for your master user password.

    A typical Specify DB Details page looks like the following.

    
                                Amazon Aurora Launch DB Instance Wizard DB Instance
                                    Details
  6. Confirm your master password, and then choose Next.

  7. On the Configure Advanced Settings page, you can customize additional settings for your Aurora DB cluster. The following table shows the advanced settings for a DB cluster.

    For This Option Do This

    VPC

    Select the VPC that will host the DB cluster. Select Create a New VPC to have Amazon RDS create a VPC for you. For more information, see DB クラスターの前提条件 earlier in this topic.

    Subnet Group

    Select the DB subnet group to use for the DB cluster. Select Create a New DB Subnet Group to have Amazon RDS create a DB subnet group for you. For more information, see DB クラスターの前提条件 earlier in this topic.

    Publicly Accessible

    Select Yes to give the DB cluster a public IP address; otherwise, select No. The instances in your DB cluster can be a mix of both public and private DB instances. For more information about hiding instances from public access, see VPC の DB インスタンスをインターネットから隠す.

    Availability Zone

    Determine if you want to specify a particular Availability Zone. For more information about Availability Zones, see リージョンとアベイラビリティーゾーン.

    VPC Security Group(s)

    Select one or more VPC security groups to secure network access to the DB cluster. Select Create a New VPC Security Group to have Amazon RDS create a VPC security group for you. For more information, see DB クラスターの前提条件 earlier in this topic.

    DB Cluster Identifier

    Type a name for your DB cluster that is unique for your account in the region you selected. This identifier is used in the cluster endpoint address for your DB cluster. For information on the cluster endpoint, see Aurora エンドポイント.

    The DB cluster 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 clusters per AWS account, per region.

    Database Name

    Type a name for your database of up to 64 alphanumeric characters. If you don't provide a name, Amazon RDS won't create a database on the DB cluster you are creating.

    Database Port

    Specify the port that applications and utilities will use to access the database. Aurora DB clusters default to the default MySQL port, 3306. The firewalls at some companies block connections to the default MySQL port. If your company firewall blocks the default port, choose another port for the new DB cluster.

    DB Parameter Group

    Select a DB parameter group. Aurora has a default DB parameter group you can use, or you can create your own DB parameter group. For more information about DB parameter groups, see DB パラメータグループを使用する.

    DB Cluster Parameter Group

    Select a DB cluster parameter group. Aurora has a default DB cluster parameter group you can use, or you can create your own DB cluster parameter group. For more information about DB cluster parameter groups, see DB パラメータグループを使用する.

    Option Group

    Select an option group. Aurora has a default option group you can use, or you can create your own option group. For more information about option groups, see オプショングループを使用する.

    Enable Encryption

    Select Yes to enable encryption at rest for this DB cluster. For more information, see Amazon RDS リソースの暗号化.

    Priority

    Choose a failover priority for the instance. If you don't select a value, the default is tier-1. This priority determines the order in which Aurora Replicas are promoted when recovering from a primary instance failure. For more information, see Aurora DB クラスターの耐障害性.

    Backup Retention Period

    Select the length of time, from 1 to 35 days, that Aurora will retain backup copies of the database. Backup copies can be used for point-in-time restores (PITR) of your database, timed down to the second.

    Enable Enhanced Monitoring

    Choose Yes to enable gathering metrics in real time for the operating system that your DB cluster runs on. For more information, see 拡張モニタリング.

    Monitoring Role

    This option is only available if Enable Enhanced Monitoring is set to Yes. Select the IAM role that you created to permit Amazon RDS to communicate with Amazon CloudWatch Logs for you.

    Granularity

    This option is only available if Enable Enhanced Monitoring is set to Yes. Set the interval, in seconds, between times at which metrics are collected for your DB cluster.

    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.

    Maintenance Window

    Select the weekly time range during which system maintenance can occur.

    A typical Configure Advanced Settings page looks like the following.

    
                                Amazon Aurora Launch DB Instance Wizard Configure Advanced
                                    Settings
  8. Choose Launch DB Instance to launch your Aurora DB instance, and then choose Close to close the wizard.

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 インスタンスへのデータのインポート」を参照してください。

関連トピック