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

MySQL DB インスタンスから Amazon Aurora DB クラスターへのデータ移行 (リードレプリカを使用)

Amazon RDS では、MySQL DB エンジンのバイナリログレプリケーション機能を使用し、ソースの MySQL DB に対して、Aurora リードレプリカと呼ばれる特殊なタイプの DB クラスターが作成されます。ソースの MySQL DB インスタンスに加えられた更新は、Aurora リードレプリカに非同期的にレプリケートされます。

ソース MySQL DB インスタンスの Aurora リードレプリカを作成して MySQL DB インスタンスから Aurora DB クラスターに移行する場合は、この機能の使用をお勧めします。MySQL DB インスタンスと Aurora リードレプリカとの間のレプリカラグが 0 である場合は、クライアントアプリケーションを Aurora リードレプリカに誘導してからレプリケーションを停止することで、Aurora リードレプリカをスタンドアロンの Aurora DB クラスターにすることができます。移行では、データ 1 テラバイト (TB) ごとに数時間程度の時間がかかります。

Aurora を使用できるリージョンのリストについては、「現在利用できるリージョン 」を参照してください。

MySQL DB インスタンスの Aurora リードレプリカを作成すると、Amazon RDS により、ソース MySQL DB インスタンスの DB スナップショットが作成されます (Amazon RDS に対してプライベートであり、料金はかかりません)。次に Amazon RDS は DB スナップショットから Aurora リードレプリカにデータを移行します。DB スナップショットのデータが新しい Aurora DB クラスターに移行された後、Amazon RDS は、MySQL DB インスタンスと Aurora DB クラスターとの間でレプリケーションを開始します。MySQL DB インスタンスに、InnoDB 以外のストレージエンジンを使用するテーブルまたは圧縮行形式を使用するテーブルが含まれている場合は、Aurora リードレプリカを作成する前に InnoDB ストレージエンジンと動的行形式が使用されるようにテーブルを変更することで、Aurora リードレプリカの作成プロセスをスピードアップできます。MySQL DB スナップショットを Aurora DB クラスターにコピーするプロセスの詳細については、「RDS MySQL スナップショットの Aurora への移行」を参照してください。

非暗号化または暗号化された MySQL DB インスタンスを暗号化された Aurora DB クラスターに移行することも、非暗号化の MySQL DB インスタンスを非暗号化の Aurora DB クラスターに移行することもできます。暗号化された MySQL DB インスタンスを非暗号化の Aurora DB クラスターに移行することはできません。

1 つの MySQL DB インスタンスに対して作成できる Aurora リードレプリカは、1 つだけです。

注記

レプリケーションマスターである RDS MySQL DB インスタンスの MySQL データベースエンジンバージョンと Amazon Aurora との間に存在する特性の相違が原因で、レプリケーションの問題が発生することがあります。エラーが発生した場合は、Amazon RDS コミュニティフォーラムでヘルプ状態を参照するか、AWS サポート にご連絡ください。

MySQL リードレプリカの詳細については、「PostgreSQL、MySQL、および MariaDB リードレプリカの使用」を参照してください。

Aurora リードレプリカの作成

コンソールまたは AWS CLI を使用して、MySQL DB インスタンスの Aurora リードレプリカを作成できます。

AWS マネジメントコンソール

ソース MySQL DB インスタンスから Aurora リードレプリカを作成するには

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

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

  3. Aurora リードレプリカのソースとして使用する MySQL DB インスタンスを選択してから、[Instance Actions] の [Create Aurora Read Replica] を選択します。

    Aurora リードレプリカの作成
  4. 次の表を参考にして、Aurora リードレプリカに使用する DB クラスターの仕様を選択します。

    オプション 説明

    DB インスタンスクラス

    DB クラスターのプライマリインスタンスに対する処理要件やメモリ要件を定義する DB インスタンスクラスを選択します。DB インスタンスクラスのオプションについては、「DB インスタンスクラス」を参照してください。

    マルチ AZ 配置

    [Create Replica in Different Zone] を選択し、フェイルオーバーをサポートするため、ターゲットリージョン内の別のアベイラビリティーゾーンに新しい DB クラスターのスタンバイレプリカを作成します。複数のアベイラビリティーゾーンの詳細については、「リージョンとアベイラビリティーゾーン」を参照してください。

    DB Instance Identifier

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

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

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

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

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

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

    Aurora リードレプリカ DB クラスターはソース DB インスタンスのスナップショットから作成されるため、Aurora リードレプリカのマスターユーザー名およびマスターパスワードはソース 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 クラスター識別子

    レプリカのターゲット AWS リージョンにあるアカウントで一意となる Aurora リードレプリカ DB クラスターの名前を入力します。この識別子は、DB クラスターのクラスターエンドポイントアドレスで使用されます。クラスターエンドポイントの詳細については、「Aurora エンドポイント」を参照してください。

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

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

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

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

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

    Database Port

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

    DB Parameter Group

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

    DB クラスターのパラメータグループ

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

    暗号を有効化

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

    優先度

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

    バックアップの保存期間

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

    Enable Enhanced Monitoring

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

    モニタリングロール

    拡張モニタリングに使用する IAM ロール。詳細については、「拡張モニタリングの設定と有効化」を参照してください。

    詳細度

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

    Auto Minor Version Upgrade

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

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

    メンテナンス時間

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

  5. [Create Read Replica] を選択します。

AWS CLI

ソース MySQL DB インスタンスから Aurora リードレプリカを作成するには、create-db-clustercreate-db-instance AWS CLI コマンドを使用して新規の Aurora DB クラスターとプライマリインスタンスを作成します。ソース MySQL DB インスタンスと同じマスターユーザー名、マスターパスワード、またはデータベース名と同じユーザー名、マスターパスワード、またはデータベース名を Aurora リードレプリカに指定しないでください。

create-db-cluster コマンドを次のパラメータで使用して、MySQL DB インスタンスから Aurora リードレプリカに新規の Aurora DB クラスターを作成できます。

  • --db-cluster-identifier

    作成する DB クラスターの名前。

  • --db-subnet-group-name

    この DB クラスターに関連付ける DB サブネットグループの名前。

  • --engine aurora

  • --kms-key-id

    MySQL DB インスタンスが暗号化されているかどうかによって、AWS Key Management Service (AWS KMS) 暗号化キーはオプションで DB クラスターを暗号化します。

    • MySQL DB インスタンスが暗号化されていない場合は、暗号化キーを指定して保管時の DB クラスターを暗号化します。これを実行しない場合、保管時の DB クラスターはデフォルトでアカウントの暗号化キーを使用して暗号化されます。

    • MySQL DB インスタンスが暗号化されている場合は、暗号化キーを指定し、その指定された暗号化キーを使用して保管時の DB クラスターを暗号化します。これを実行しない場合、保管時の DB クラスターは MySQL DB インスタンスの暗号化キーを使用して暗号化されます。

      注記

      暗号化された MySQL DB インスタンスから 非暗号化の DB クラスターを作成することはできません。

  • --replication-source-identifier

    送信元の MySQL DB インスタンスの Amazon リソースネーム (ARN)。Amazon RDS ARN の詳細については、「Amazon Relational Database Service (Amazon RDS)」を参照してください。

  • --vpc-security-group-ids

    この DB クラスターに関連付ける EC2 VPC セキュリティグループのリスト。

この例では、ARN が mysqlmasterARN に設定された元の MySQL DB インスタンスから、mysubnetgroup という名前の DB サブネットグループと mysecuritygroup という名前の VPC セキュリティグループに関連付けられる myreadreplicacluster という名前の DB クラスターを作成します。

Linux、OS X、Unix の場合:

Copy
aws rds create-db-cluster \ --db-cluster-identifier myreadreplicacluster \ --db-subnet-group-name mysubnetgroup \ --engine aurora \ --replication-source-identifier mysqlmasterARN \ --vpc-security-group-ids mysecuritygroup

Windows の場合:

Copy
aws rds create-db-cluster ^ --db-cluster-identifier myreadreplicacluster ^ --db-subnet-group-name mysubnetgroup ^ --engine aurora ^ --replication-source-identifier mysqlmasterARN ^ --vpc-security-group-ids mysecuritygroup

コンソールを使用して Aurora リードレプリカを作成すると、DB クラスターの Aurora リードレプリカのプライマリインスタンスが Amazon RDS によって自動的に作成されます。AWS CLI を使用して Aurora リードレプリカを作成する場合、使用する DB クラスターのプライマリインスタンスを明示的に作成する必要があります。プライマリ インスタンスは、DB クラスターで作成される最初の DB インスタンスです。

create-db-instance AWS CLI コマンドを次のパラメータで使用することで、DB クラスターにプライマリインスタンスを作成できます。

  • --db-cluster-identifier

    DB クラスターの名前。

  • --db-instance-class

    プライマリインスタンスに使用するための DB インスタンス名。

  • --db-instance-identifier

    プライマリインスタンスの名前。

  • --engine aurora

この例では、myinstanceclass で指定される DB インスタンスクラスを使用して、myreadreplicacluster という名前の DB クラスターに myreadreplicainstance という名前のプライマリインスタンスを作成します。

Linux、OS X、Unix の場合:

Copy
aws rds create-db-instance \ --db-cluster-identifier myreadreplicacluster \ --db-instance-class myinstanceclass --db-instance-identifier myreadreplicainstance \ --engine aurora

Windows の場合:

Copy
aws rds create-db-instance \ --db-cluster-identifier myreadreplicacluster \ --db-instance-class myinstanceclass --db-instance-identifier myreadreplicainstance \ --engine aurora

API

ソース MySQL DB インスタンスから Aurora リードレプリカを作成するには、CreateDBClusterCreateDBInstance Amazon RDS API コマンドを使用して新規の Aurora DB クラスターとプライマリインスタンスを作成します。ソース MySQL DB インスタンスと同じマスターユーザー名、マスターパスワード、またはデータベース名と同じユーザー名、マスターパスワード、またはデータベース名を Aurora リードレプリカに指定しないでください。

CreateDBCluster Amazon RDS API コマンドを次のパラメータで使用して、MySQL DB インスタンスから Aurora リードレプリカに新規の Aurora DB クラスターを作成できます。

  • DBClusterIdentifier

    作成する DB クラスターの名前。

  • DBSubnetGroupName

    この DB クラスターに関連付ける DB サブネットグループの名前。

  • Engine=aurora

  • KmsKeyId

    MySQL DB インスタンスが暗号化されているかどうかによって、AWS Key Management Service (AWS KMS) 暗号化キーはオプションで DB クラスターを暗号化します。

    • MySQL DB インスタンスが暗号化されていない場合は、暗号化キーを指定して保管時の DB クラスターを暗号化します。これを実行しない場合、保管時の DB クラスターはデフォルトでアカウントの暗号化キーを使用して暗号化されます。

    • MySQL DB インスタンスが暗号化されている場合は、暗号化キーを指定し、その指定された暗号化キーを使用して保管時の DB クラスターを暗号化します。これを実行しない場合、保管時の DB クラスターは MySQL DB インスタンスの暗号化キーを使用して暗号化されます。

      注記

      暗号化された MySQL DB インスタンスから 非暗号化の DB クラスターを作成することはできません。

  • ReplicationSourceIdentifier

    送信元の MySQL DB インスタンスの Amazon リソースネーム (ARN)。Amazon RDS ARN の詳細については、「Amazon Relational Database Service (Amazon RDS)」を参照してください。

  • VpcSecurityGroupIds

    この DB クラスターに関連付ける EC2 VPC セキュリティグループのリスト。

この例では、ARN が mysqlmasterARN に設定された元の MySQL DB インスタンスから、mysubnetgroup という名前の DB サブネットグループと mysecuritygroup という名前の VPC セキュリティグループに関連付けられる myreadreplicacluster という名前の DB クラスターを作成します。

Copy
https://rds.us-east-1.amazonaws.com/ ?Action=CreateDBCluster &DBClusterIdentifier=myreadreplicacluster &DBSubnetGroupName=mysubnetgroup &Engine=aurora &ReplicationSourceIdentifier=mysqlmasterARN &SignatureMethod=HmacSHA256 &SignatureVersion=4 &Version=2014-10-31 &VpcSecurityGroupIds=mysecuritygroup &X-Amz-Algorithm=AWS4-HMAC-SHA256 &X-Amz-Credential=AKIADQKE4SARGYLE/20150927/us-east-1/rds/aws4_request &X-Amz-Date=20150927T164851Z &X-Amz-SignedHeaders=content-type;host;user-agent;x-amz-content-sha256;x-amz-date &X-Amz-Signature=6a8f4bd6a98f649c75ea04a6b3929ecc75ac09739588391cd7250f5280e716db

コンソールを使用して Aurora リードレプリカを作成すると、DB クラスターの Aurora リードレプリカのプライマリインスタンスが Amazon RDS によって自動的に作成されます。AWS CLI を使用して Aurora リードレプリカを作成する場合、使用する DB クラスターのプライマリインスタンスを明示的に作成する必要があります。プライマリ インスタンスは、DB クラスターで作成される最初の DB インスタンスです。

CreateDBInstance Amazon RDS API コマンドを次のパラメータで使用することで、DB クラスターにプライマリインスタンスを作成できます。

  • DBClusterIdentifier

    DB クラスターの名前。

  • DBInstanceClass

    プライマリインスタンスに使用するための DB インスタンス名。

  • DBInstanceIdentifier

    プライマリインスタンスの名前。

  • Engine=aurora

この例では、myinstanceclass で指定される DB インスタンスクラスを使用して、myreadreplicacluster という名前の DB クラスターに myreadreplicainstance という名前のプライマリインスタンスを作成します。

Copy
https://rds.us-east-1.amazonaws.com/ ?Action=CreateDBInstance &DBClusterIdentifier=myreadreplicacluster &DBInstanceClass=myinstanceclass &DBInstanceIdentifier=myreadreplicainstance &Engine=aurora &SignatureMethod=HmacSHA256 &SignatureVersion=4 &Version=2014-09-01 &X-Amz-Algorithm=AWS4-HMAC-SHA256 &X-Amz-Credential=AKIADQKE4SARGYLE/20140424/us-east-1/rds/aws4_request &X-Amz-Date=20140424T194844Z &X-Amz-SignedHeaders=content-type;host;user-agent;x-amz-content-sha256;x-amz-date &X-Amz-Signature=bee4aabc750bf7dad0cd9e22b952bd6089d91e2a16592c2293e532eeaab8bc77

Aurora リードレプリカの表示

コンソールまたは AWS CLI を使用すると、Aurora DB クラスターに関する MySQL から Aurora へのレプリケーション関係を確認できます。

AWS マネジメントコンソール

MySQL DB インスタンスの Aurora リードレプリカを表示するには

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

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

  3. MySQL DB インスタンスを展開し、[Replication] を選択します。Aurora リードレプリカの情報は、レプリカのロールと共に、Deployment DB Clusters テーブルの行で示されます。

     オーロラリードレプリカの表示

Aurora リードレプリカのマスター MySQL DB インスタンスを表示するには

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

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

  3. Aurora リードレプリカ用の DB クラスターを展開し、[Replication] タブを選択します。マスターの MySQL DB インスタンスの情報は、[Replication Source] フィールドに表示されます。

     MySQL マスターの表示

AWS CLI

AWS CLI を使用して、Aurora DB クラスターに関する MySQL から Aurora へのレプリケーション関係を確認するには、describe-db-clusters コマンドおよび describe-db-instances コマンドを使用します。

どの MySQL DB インスタンスがマスターであるかを判別するには、describe-db-clusters を使用して、Aurora リードレプリカのクラスター識別子を --db-cluster-identifier オプションに指定します。レプリケーションマスターである DB インスタンスの ARN については、出力の ReplicationSourceIdentifier 要素を参照してください。

どの DB クラスターが Aurora リードレプリカであるかを判別するには、describe-db-instances を使用して、MySQL DB インスタンスのインスタンス識別子を --db-instance-identifier オプションに指定します。Aurora リードレプリカの DB クラスター識別子については、出力のReadReplicaDBClusterIdentifiers 要素を参照してください。

Linux、OS X、Unix の場合:

Copy
aws rds describe-db-clusters \ --db-cluster-identifier myreadreplicacluster
Copy
aws rds describe-db-instances \ --db-instance-identifier mysqlmaster

Windows の場合:

Copy
aws rds describe-db-clusters ^ --db-cluster-identifier myreadreplicacluster
Copy
aws rds describe-db-instances ^ --db-instance-identifier mysqlmaster

Aurora リードレプリカの昇格

移行が完了したら、Aurora リードレプリカをスタンドアロンの DB クラスターに昇格し、 Aurora リードレプリカのエンドポイントにクライアントアプリケーションを誘導できます。Aurora エンドポイントの詳細については、「Aurora エンドポイント」を参照してください。昇格はすばやく完了し、昇格中も Aurora リードレプリカに対する読み取り/書き込みを行うことができます。ただし昇格中に、マスター MySQL DB インスタンスを削除したり、DB インスタンスと Aurora リードレプリカのリンクを解除する操作は行うことができません。

Aurora リードレプリカを昇格する前に、ソース MySQL DB インスタンスに対するトランザクションの書き込みをすべて停止し、Aurora リードレプリカのレプリカラグが 0 になるまで待ちます。Aurora リードレプリカのレプリカラグを確認するには、Aurora リードレプリカで SHOW SLAVE STATUS コマンドを呼び出し、Seconds behind master 値を確認します。

マスターへの書き込みトランザクションが停止し、レプリカラグが 0 になったら、Aurora AWS CLI コマンドへの書き込みを開始できます。それより前に Aurora リードレプリカへの書き込みを行い、MySQL マスターでも変更されているテーブルを変更した場合、Aurora へのレプリケーションが失われるおそれがあります。その場合は、Aurora リードレプリカを削除して、作り直す必要があります。

昇格したら、昇格が完了したことを確認します。これには、ナビゲーションペインの [Instances] を選択し、Aurora リードレプリカに対する [Promoted Read Replica cluster to stand-alone database cluster] イベントが存在することを確認します。昇格が完了したら、マスター MySQL DB インスタンスと Aurora リードレプリカのリンクは解除され、DB インスタンスは必要に応じて安全に削除できるようになります。

AWS マネジメントコンソール

Aurora リードレプリカを DB クラスターに昇格するには

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

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

  3. Aurora リードレプリカの DB インスタンスを選択し、[Instance Actions] の [Promote Read Replica] を選択します。

    Aurora リードレプリカの作成
  4. [Promote Read Replica] を選択します。

AWS CLI

Aurora リードレプリカを DB クラスターに昇格するには、AWS CLI コマンド promote-read-replica-db-cluster を使用します。

Linux、OS X、Unix の場合:

Copy
aws rds promote-read-replica-db-cluster \ --db-cluster-identifier myreadreplicacluster

Windows の場合:

Copy
aws rds promote-read-replica-db-cluster ^ --db-cluster-identifier myreadreplicacluster

関連トピック