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

1 つの MySQL DB インスタンスに対して作成できる Aurora リードレプリカは、1 つだけです。暗号化されていない MySQL DB インスタンスについてのみ、Aurora リードレプリカを作成できます。

注記

レプリケーションマスターである 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 パラメータグループを使用する」を参照してください。

    暗号を有効化

    利用不可。

    優先度

    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 リードレプリカを作成するには、AWS CLI コマンド create-db-clustercreate-db-instance を使用して、新しい Aurora DB クラスターを作成します。create-db-cluster コマンドを呼び出すときは、--replication-source-identifier パラメータを含めて、ソース MySQL DB インスタンスの Amazon リソースネーム (ARN) を指定します。Amazon RDS ARN の詳細については、「Amazon Relational Database Service (Amazon RDS)」を参照してください。

ソース MySQL DB インスタンスと同じマスターユーザー名、マスターパスワード、またはデータベース名を Aurora リードレプリカで指定しないでください。

Linux、OS X、Unix の場合:

Copy
aws rds create-db-cluster --db-cluster-identifier sample-replica-cluster --engine aurora \ --db-subnet-group-name mysubnetgroup --vpc-security-group-ids sg-c7e5b0d2 \ --replication-source-identifier arn:aws:rds:us-west-2:123456789012:db:master-mysql-instance

Windows の場合:

Copy
aws rds create-db-cluster --db-cluster-identifier sample-replica-cluster --engine aurora ^ --db-subnet-group-name mysubnetgroup --vpc-security-group-ids sg-c7e5b0d2 ^ --replication-source-identifier arn:aws:rds:us-west-2:123456789012:db:master-mysql-instance

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

DB クラスターのプライマリインスタンスを作成するには、AWS CLI の create-db-instance コマンドを呼び出します。--db-cluster-identifier パラメータの値として DB クラスターの名前を含めます。

Linux、OS X、Unix の場合:

Copy
aws rds create-db-instance --db-instance-identifier sample-replica-instance \ --db-cluster-identifier sample-replica-cluster --engine aurora --db-instance-class db.r3.large

Windows の場合:

Copy
aws rds create-db-instance --db-instance-identifier sample-replica-instance ^ --db-cluster-identifier sample-replica-cluster --engine aurora --db-instance-class db.r3.large

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

関連トピック