

# RDS for MySQL DB インスタンスから Amazon Aurora MySQL DB クラスターへのデータの移行
<a name="AuroraMySQL.Migrating.RDSMySQL"></a>

RDS for MySQL DB インスタンスから Amazon Aurora MySQL DB クラスターにデータを移行 (コピー) できます。

**Topics**
+ [Aurora への RDS for MySQL スナップショットの移行](AuroraMySQL.Migrating.RDSMySQL.Snapshot.md)
+ [Aurora リードレプリカを使用した、RDS for MySQL DB インスタンスから Amazon Aurora MySQL DB クラスターへのデータの移行](AuroraMySQL.Migrating.RDSMySQL.Replica.md)

**注記**  
Amazon Aurora MySQL は MySQL と互換性があるため、MySQL データベースと Amazon Aurora MySQL DB クラスターの間でレプリケーションをセットアップすることによって、MySQL データベースのデータを移行できます。詳細については、「[Amazon Aurora でのレプリケーション](Aurora.Replication.md)」を参照してください。

# Aurora への RDS for MySQL スナップショットの移行
<a name="AuroraMySQL.Migrating.RDSMySQL.Snapshot"></a>

RDS for MySQL DB インスタンスの DB スナップショットを移行して、Aurora MySQL DB クラスターを作成することができます。新しい Aurora MySQL DB クラスターには、元の RDS for MySQL DB インスタンスのデータが入力されます。DB スナップショットは、Aurora MySQL と互換性がある MySQL バージョンを実行している Amazon RDS DB インスタンスから作成されたものである必要があります。

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

**注記**  
ソース RDS for MySQL DB インスタンスの Aurora リードレプリカを作成することにより、RDS for MySQL DB インスタンスを Aurora MySQL DB クラスターに移行することもできます。詳細については、「[Aurora リードレプリカを使用した、RDS for MySQL DB インスタンスから Amazon Aurora MySQL DB クラスターへのデータの移行](AuroraMySQL.Migrating.RDSMySQL.Replica.md)」を参照してください。  
8.0.11、8.0.13、8.0.15 などの一部の古い MySQL 8.0 バージョンからは Aurora MySQL バージョン 3.05 以上に移行できません。移行する前に MySQL バージョン 8.0.28 にアップグレードすることをお勧めします。

実行する必要がある一般的なステップは次のとおりです。

1. Aurora MySQL DB クラスターをプロビジョニングするための容量を決定します。詳細については、「[必要な容量](#AuroraMySQL.Migrating.RDSMySQL.Space)」を参照してください。

1. コンソールを使用して、Amazon RDS MySQL インスタンスが置かれている AWS リージョン内にスナップショットを作成します。DB スナップショットの作成については、「[DB スナップショットの作成](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_CreateSnapshot.html)」を参照してください。

1. DB スナップショットが DB クラスターと同じ AWS リージョン内にない場合は、Amazon RDS コンソールを使用して DB スナップショットをその AWS リージョンにコピーします。DB スナップショットのコピーについては、「[DB スナップショットのコピー](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_CopySnapshot.html)」を参照してください。

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

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

## 必要な容量
<a name="AuroraMySQL.Migrating.RDSMySQL.Space"></a>

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

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

## Amazon Aurora MySQL にデータを移行するために必要な容量の削減
<a name="AuroraMySQL.Migrating.RDSMySQL.PreImport"></a>

Amazon Aurora に移行する前にデータベーススキーマを変更することもできます。このような変更は、次のような場合に便利です。
+ 移行プロセスを迅速化したい。
+ プロビジョニングするために必要な領域の量がわからない場合。
+ データを移行しようとしたが、プロビジョニング済み領域の不足で移行が失敗した場合。

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

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


| テーブルタイプ | 制限またはガイドライン | 
| --- | --- | 
|  MyISAM テーブル  |  Aurora MySQL は InnoDB テーブルのみをサポートします。データベース内に MyISAM テーブルがある場合は、Aurora MySQL に移行する前にそれらのテーブルを変換する必要があります。移行中の MyISAM から InnoDB への変換プロセスには、追加領域が必要です。 領域不足が発生する可能性を低く抑えて移行プロセスを高速化するには、すべての MyISAM テーブルを移行前に InnoDB テーブルに変換しておきます。処理後の InnoDB テーブルのサイズは、Aurora MySQL がそのテーブルに対して必要とするサイズと同じになります。MyISAM テーブルを InnoDB に変換するには、次のコマンドを実行します。 `alter table <schema>.<table_name> engine=innodb, algorithm=copy;`   | 
|  圧縮テーブル  |  Aurora MySQL では、圧縮テーブル (`ROW_FORMAT=COMPRESSED` を使用して作成されたテーブル) をサポートしていません。 スペースが不足する可能性を減らしたり、移行処理を高速化するには、`ROW_FORMAT` を `DEFAULT`、`COMPACT`、`DYNAMIC` または `REDUNDANT` に設定して圧縮テーブルを展開します。詳細については、MySQL ドキュメントの「[InnoDB 行形式](https://dev.mysql.com/doc/refman/8.0/en/innodb-row-format.html)」を参照してください。  | 

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

```
-- This script examines a MySQL database for conditions that block
-- migrating the database into Amazon Aurora.
-- 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 or higher. ' +
    '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'
        )
    )
  )
  or
  (
    -- Compressed tables
       ROW_FORMAT = 'Compressed'
  );
```

スクリプトでは、次の例のような出力が作成されます。この例では、MyISAM から InnoDB に変換する必要のある 2 つのテーブルを示しています。出力には、メガバイト (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)
```

## RDS for MySQL DB スナップショットを Aurora MySQL DB クラスターに移行する
<a name="migrate-snapshot-ams-cluster"></a>

RDS for MySQL DB インスタンスの DB スナップショットを移行して、AWS マネジメントコンソール または AWS CLI を使って、Aurora MySQL DB クラスターを作成することができます。新しい Aurora MySQL DB クラスターには、元の RDS for MySQL DB インスタンスのデータが入力されます。DB スナップショットの作成については、「[DB スナップショットの作成](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_CreateSnapshot.html)」を参照してください。

DB スナップショットがデータを検索する AWS リージョン内にない場合は、DB スナップショットをその AWS リージョンにコピーします。DB スナップショットのコピーについては、「[DB スナップショットのコピー](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_CopySnapshot.html)」を参照してください。

### コンソール
<a name="AuroraMySQL.Migrating.RDSMySQL.Import.Console"></a>

AWS マネジメントコンソール を使用して DB スナップショットを移行すると、コンソールは DB クラスターのみの作成に必要なアクションを実行します。

新しい Aurora MySQL DB クラスターが、AWS KMS key を使用して保管中に暗号化されるよう選択することもできます。

**AWS マネジメントコンソール を使用して MySQL DB スナップショットを移行するには**

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

1. MySQL DB インスタンスまたはスナップショットから移行をスタートします。

   DB インスタンスから移行をスタートするには:

   1. ナビゲーションペインで、[**データベース**] を選択し、MySQL DB インスタンスを選択します。

   1. [**アクション**]、[**最新のスナップショットの移行**] の順に選択します。

   スナップショットから移行をスタートするには:

   1. [**スナップショット**] を選択します。

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

   1. [**スナップショットのアクション**]、[**スナップショットの移行**] の順に選択します。

   [**データベースの移行**] ページが表示されます。

1. [**データベースの移行**] ページで以下の値を設定します。
   + [**DB エンジンへの移行**] : `aurora` を選択します。
   + [**DB エンジンのバージョン**]: Aurora MySQL DB クラスターの DB エンジンのバージョンを選択します。
   + **DB インスタンスクラス**: データベースに必要なストレージと容量を持つ DB インスタンスクラス (`db.r3.large` など) を選択します。Aurora クラスターボリュームは、データベースのデータ量が増えるにつれて自動的に増加します。Aurora クラスターボリュームは、最大 128 tebibytes (TiB) のサイズまで増やすことができます。そのため、現在のストレージ要件を満たしている DB インスタンスクラスを選択する必要があります。詳細については、「[Amazon Aurora ストレージの概要](Aurora.Overview.StorageReliability.md#Aurora.Overview.Storage)」を参照してください。
   + **DB インスタンス識別子**: DB クラスター名を入力します。選択した AWS リージョン内で、自分のアカウントに対して一意であることが必要です。この識別子は、DB クラスター内のインスタンスのエンドポイントアドレスで使用されます。名前には、選択した AWS リージョンと DB エンジンなどを含めると理解しやすくなります (**aurora-cluster1** など)。

     DB インスタンス識別子には次の制約があります。
     + 1 ～ 63 文字の英数字またはハイフンを使用する必要があります。
     + 1 字目は文字である必要があります。
     + ハイフンを、文字列の最後に使用したり、2 つ続けて使用したりすることはできません。
     + 1 つの AWS アカウント、1 つの AWS リージョンにつき、すべての DB インスタンスにおいて一意である必要があります。
   + [**Virtual Private Cloud (VPC)**]: 既存の VPC がある場合は、その VPC 識別子 (`vpc-a464d1c1` など) を選択することで、その VPC を Aurora MySQL DB クラスターで使用できます。VPC の作成方法の詳細については、「[チュートリアル: DB クラスターで使用する VPC を作成する (IPv4 専用)](CHAP_Tutorials.WebServerDB.CreateVPC.md)」を参照してください。

     または、[**新しい VPC の作成**] を選択し、Aurora で自動的に VPC を作成します。
   + **DB サブネットグループ**: 既存のサブネットグループがある場合は、そのサブネットグループ識別子 (`gs-subnet-group1` など) を選択して、サブネットグループを Aurora MySQL DB クラスターで使用できます。

     または、[**新しいサブネットグループを作成**] を選択し、Aurora で自動的にサブネットグループを作成します。
   + **Public accessibility**: DB クラスターのインスタンスが VPC 内のリソースからのみアクセスできることを指定するには、[**いいえ**] を選択します。DB クラスターのインスタンスがパブリックネットワーク上のリソースからアクセスできることを指定するには、[**はい**] を選択します。デフォルトは [**はい**] です。
**注記**  
本番稼働用の DB クラスターは、お客様のアプリケーションサーバーのみがアクセスするため、パブリックサブネット内に配置する必要がない場合があります。DB クラスターをパブリックサブネットに配置する必要がない場合は、[**パブリックアクセス可能**] を [**いいえ**] に設定します。
   + [**アベイラビリティーゾーン**]: Aurora MySQL DB クラスターのプライマリインスタンスをホストするアベイラビリティーゾーンを選択します。Aurora で自動的にアベイラビリティーゾーンを選択するには、[**指定なし**] を選択します。
   + [**データベースのポート**]: Aurora MySQL DB クラスターのインスタンスへの接続に使用されるデフォルトのポートを入力します。デフォルトは `3306` です。
**注記**  
会社のファイアウォールで MySQL のデフォルトポートである 3306 などのデフォルトポートへのアクセスが許可されない場合があります。この場合は、会社のファイアウォールによって許可されるポート値を指定します。そのポート値を覚えておいてください。後で Aurora MySQL DB クラスターに接続するときに使用します。
   + [**暗号化**]: 新しい Aurora MySQL DB クラスターを保管時に暗号化するには、[**暗号を有効化**] を選択します。[**Enable Encryption**] (暗号化を有効化) を選択する場合、KMS キーを **AWS KMS key** 値として選択する必要があります。

     DB スナップショットが暗号化されていない場合は、暗号化キーを指定して保管時の DB クラスターを暗号化します。

     DB スナップショットが暗号化されている場合は、暗号化キーを指定し、その指定された暗号化キーを使用して保管時の DB クラスターを暗号化します。DB スナップショットで使用される暗号化キー、または別のキーを指定できます。暗号化された DB スナップショットから 非暗号化の DB クラスターを作成することはできません。
   + [**マイナーバージョン自動アップグレード**]: この設定は Aurora MySQL DB クラスターに適用されません。

     Aurora MySQL のエンジンに関する更新の詳細については、「[Amazon Aurora MySQL のデータベースエンジンの更新Amazon Aurora MySQL の長期サポート (LTS) とベータリリース](AuroraMySQL.Updates.md)」を参照してください。

1. [**移行**] を選択して、DB スナップショットを移行します。

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

### AWS CLI
<a name="USER_ImportAuroraCluster.CLI"></a>

[https://docs.aws.amazon.com/cli/latest/reference/rds/restore-db-cluster-from-snapshot.html](https://docs.aws.amazon.com/cli/latest/reference/rds/restore-db-cluster-from-snapshot.html) コマンドを次のパラメータで使用することで、RDS for MySQL DB インスタンスの DB スナップショットから Aurora DB クラスターを作成できます。
+ `--db-cluster-identifier` - 作成する DB クラスターの名前。
+ `--engine aurora-mysql` — MySQL 5.7 互換または 8.0 互換 DB クラスターの場合
+ `--kms-key-id` - DB スナップショットが暗号化されるかどうかに応じて、オプションで DB クラスターを暗号化するための AWS KMS key。
  + DB スナップショットが暗号化されていない場合は、暗号化キーを指定して保管時の DB クラスターを暗号化します。これを実行しない場合、DB クラスターは暗号化されません。
  + DB スナップショットが暗号化されている場合は、暗号化キーを指定し、その指定された暗号化キーを使用して保管時の DB クラスターを暗号化します。これを実行しない場合、保管時の DB クラスターは DB スナップショットの暗号化キーを使用して暗号化されます。
**注記**  
暗号化された DB スナップショットから 非暗号化の DB クラスターを作成することはできません。
+ `--snapshot-identifier` – 移行する DB スナップショットの Amazon リソースネーム (ARN)。Amazon RDS ARN の詳細については、「[Amazon Relational Database Service (Amazon RDS)](https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html#arn-syntax-rds)」を参照してください。

`RestoreDBClusterFromSnapshot` コマンドを使用して DB スナップショットを移行すると、DB クラスターとプライマリインスタンスの両方がこのコマンドによって作成されます。

この例では、*mydbcluster* という名前の MySQL 5.7 互換 DB クラスターを ARN が *mydbsnapshotARN* に設定されている DB スナップショットから作成します。

Linux、macOS、Unix の場合:

```
aws rds restore-db-cluster-from-snapshot \
    --db-cluster-identifier mydbcluster \
    --snapshot-identifier mydbsnapshotARN \
    --engine aurora-mysql
```

Windows の場合:

```
aws rds restore-db-cluster-from-snapshot ^
    --db-cluster-identifier mydbcluster ^
    --snapshot-identifier mydbsnapshotARN ^
    --engine aurora-mysql
```

この例では、*mydbcluster* という名前の MySQL 5.7 互換 DB クラスターを ARN が *mydbsnapshotARN* に設定されている DB スナップショットから作成します。

Linux、macOS、Unix の場合:

```
aws rds restore-db-cluster-from-snapshot \
    --db-cluster-identifier mydbcluster \
    --snapshot-identifier mydbsnapshotARN \
    --engine aurora-mysql
```

Windows の場合:

```
aws rds restore-db-cluster-from-snapshot ^
    --db-cluster-identifier mydbcluster ^
    --snapshot-identifier mydbsnapshotARN ^
    --engine aurora-mysql
```

# Aurora リードレプリカを使用した、RDS for MySQL DB インスタンスから Amazon Aurora MySQL DB クラスターへのデータの移行
<a name="AuroraMySQL.Migrating.RDSMySQL.Replica"></a>

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

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

Aurora を使用できるリージョンの一覧は、*AWS 全般のリファレンス* の「[Amazon Aurora](https://docs.aws.amazon.com/general/latest/gr/rande.html#aurora)」を参照してください。

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

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

**注記**  
レプリケーションプライマリである RDS for MySQL DB インスタンスの MySQL データベースエンジンバージョンと Aurora MySQL との間に存在する特性の相違が原因で、レプリケーションの問題が発生することがあります。エラーが発生した場合のサポートについては、[Amazon RDS コミュニティフォーラム](https://forums.aws.amazon.com/forum.jspa?forumID=60)を参照するか、AWS サポートまでお問い合わせください。  
RDS for MySQL DB インスタンスに既に Aurora リードレプリカのソースがある場合は、Aurora リードレプリカを作成できません。  
8.0.11、8.0.13、8.0.15 などの一部の古い RDS for MySQL 8.0 バージョンからは Aurora MySQL バージョン 3.05 以上に移行できません。移行する前に RDS for MySQL バージョン 8.0.28 にアップグレードすることをお勧めします。

MySQL リードレプリカの詳細については、「[MariaDB、MySQL、PostgreSQL DB インスタンスのリードレプリカの使用](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_ReadRepl.html)」を参照してください。

## Aurora リードレプリカの作成
<a name="AuroraMySQL.Migrating.RDSMySQL.Replica.Create"></a>

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

### コンソール
<a name="AuroraMySQL.Migrating.RDSMySQL.Replica.Create.Console"></a>

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

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

1. ナビゲーションペインで、[**データベース**] を選択します。

1. Aurora リードレプリカの出典として使用する MySQL DB インスタンスを選択します。

1. [**アクション**] で [**Aurora リードレプリカの作成**] を選択します。

1. 次の表の説明に従って、Aurora リードレプリカに使用する DB クラスターの仕様を選択します。    
<a name="aurora_read_replica_param_advice"></a>[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ja_jp/AmazonRDS/latest/AuroraUserGuide/AuroraMySQL.Migrating.RDSMySQL.Replica.html)

1. [**Create read replica**] を選択します。

### AWS CLI
<a name="AuroraMySQL.Migrating.RDSMySQL.Replica.Create.CLI"></a>

ソース RDS for MySQL DB インスタンスから Aurora リードレプリカを作成するには、AWS CLI コマンドの [https://docs.aws.amazon.com/cli/latest/reference/rds/create-db-cluster.html](https://docs.aws.amazon.com/cli/latest/reference/rds/create-db-cluster.html) と [https://docs.aws.amazon.com/cli/latest/reference/rds/create-db-instance.html](https://docs.aws.amazon.com/cli/latest/reference/rds/create-db-instance.html) を使用して、新しい Aurora MySQL DB クラスターを作成します。`create-db-cluster` コマンドを呼び出すときは、`--replication-source-identifier` パラメータを含めて、出典 MySQL DB インスタンスの Amazon リソースネーム (ARN) を指定します。Amazon RDS ARN の詳細については、「[Amazon Relational Database Service (Amazon RDS)](https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html#arn-syntax-rds)」を参照してください。

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

Linux、macOS、Unix の場合:

```
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:primary-mysql-instance
```

Windows の場合:

```
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:primary-mysql-instance
```

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

以下のパラメータを指定して [https://docs.aws.amazon.com/cli/latest/reference/rds/create-db-instance.html](https://docs.aws.amazon.com/cli/latest/reference/rds/create-db-instance.html) AWS CLI コマンドを使用することで、DB クラスターにプライマリインスタンスを作成できます。
+ `--db-cluster-identifier`

  DB クラスターの名前。
+ `--db-instance-class`

  プライマリインスタンスに使用するための DB インスタンス名。
+ `--db-instance-identifier`

  プライマリインスタンスの名前。
+ `--engine aurora`

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

**Example**  
Linux、macOS、Unix の場合:  

```
aws rds create-db-instance \
    --db-cluster-identifier myreadreplicacluster \
    --db-instance-class myinstanceclass \
    --db-instance-identifier myreadreplicainstance \
    --engine aurora
```
Windows の場合:  

```
aws rds create-db-instance ^
    --db-cluster-identifier myreadreplicacluster ^
    --db-instance-class myinstanceclass ^
    --db-instance-identifier myreadreplicainstance ^
    --engine aurora
```

### RDS API
<a name="Aurora.Migration.RDSMySQL.Create.API"></a>

ソース RDS for MySQL DB インスタンスから Aurora リードレプリカを作成するには、[https://docs.aws.amazon.com/AmazonRDS/latest/APIReference/API_CreateDBCluster.html](https://docs.aws.amazon.com/AmazonRDS/latest/APIReference/API_CreateDBCluster.html) と [https://docs.aws.amazon.com/AmazonRDS/latest/APIReference/API_CreateDBInstance.html](https://docs.aws.amazon.com/AmazonRDS/latest/APIReference/API_CreateDBInstance.html) Amazon RDS API コマンドを使用して新しい Aurora DB クラスターとプライマリインスタンスを作成します。ソース RDS for MySQL DB インスタンスと同じマスターユーザーネーム、マスターパスワード、またはデータベース名と同じユーザーネーム、マスターパスワード、またはデータベース名を Aurora リードレプリカに指定しないでください。

以下のパラメータを指定して [https://docs.aws.amazon.com/AmazonRDS/latest/APIReference/API_CreateDBCluster.html](https://docs.aws.amazon.com/AmazonRDS/latest/APIReference/API_CreateDBCluster.html) Amazon RDS API コマンドを使用することで、RDS for MySQL DB インスタンスから Aurora リードレプリカに新しい Aurora DB クラスターを作成できます。
+ `DBClusterIdentifier`

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

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

  MySQL DB インスタンスが暗号化されているかどうかによって、オプションで DB クラスターを暗号化する AWS KMS key。
  + 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)](https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html#arn-syntax-rds)」を参照してください。
+ `VpcSecurityGroupIds`

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

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

**Example**  

```
https://rds.us-east-1.amazonaws.com/
    ?Action=CreateDBCluster
    &DBClusterIdentifier=myreadreplicacluster
    &DBSubnetGroupName=mysubnetgroup
    &Engine=aurora
    &ReplicationSourceIdentifier=mysqlprimaryARN
    &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 リードレプリカのプライマリインスタンスが Aurora によって自動的に作成されます。AWS CLI を使用して Aurora リードレプリカを作成する場合、使用する DB クラスターのプライマリインスタンスを明示的に作成する必要があります。プライマリ インスタンスは、DB クラスターで作成される初期の DB インスタンスです。

以下のパラメータを指定して [https://docs.aws.amazon.com/AmazonRDS/latest/APIReference/API_CreateDBInstance.html](https://docs.aws.amazon.com/AmazonRDS/latest/APIReference/API_CreateDBInstance.html) Amazon RDS API コマンドを使用することで、DB クラスターにプライマリインスタンスを作成できます。
+ `DBClusterIdentifier`

  DB クラスターの名前。
+ `DBInstanceClass`

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

  プライマリインスタンスの名前。
+ `Engine=aurora`

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

**Example**  

```
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 リードレプリカの表示
<a name="AuroraMySQL.Migrating.RDSMySQL.Replica.View"></a>

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

### コンソール
<a name="AuroraMySQL.Migrating.RDSMySQL.Replica.View.Console"></a>

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

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

1. ナビゲーションペインで、[**データベース**] を選択します。

1. Aurora リードレプリカの DB クラスターを選択して、その詳細を表示します。プライマリの MySQL DB インスタンスの情報は、[**レプリケーション出典**] フィールドに表示されます。  
![\[MySQL プライマリを表示\]](http://docs.aws.amazon.com/ja_jp/AmazonRDS/latest/AuroraUserGuide/images/aurora-repl6.png)

### AWS CLI
<a name="AuroraMySQL.Migrating.RDSMySQL.Replica.View.CLI"></a>

AWS CLI により、Aurora MySQL DB クラスターでの Aurora MySQL レプリケーションと MySQL の関係性を確認するには、[https://docs.aws.amazon.com/cli/latest/reference/rds/describe-db-clusters.html](https://docs.aws.amazon.com/cli/latest/reference/rds/describe-db-clusters.html) および [https://docs.aws.amazon.com/cli/latest/reference/rds/describe-db-instances.html](https://docs.aws.amazon.com/cli/latest/reference/rds/describe-db-instances.html) コマンドを使用します。

どの MySQL DB インスタンスがプライマリかを判別するには、[https://docs.aws.amazon.com/cli/latest/reference/rds/describe-db-clusters.html](https://docs.aws.amazon.com/cli/latest/reference/rds/describe-db-clusters.html) を使用して、Aurora リードレプリカのクラスター識別子を `--db-cluster-identifier` オプションに指定します。レプリケーションのプライマリである DB インスタンスの ARN については、出力の `ReplicationSourceIdentifier` 要素を参照してください。

どの DB クラスターが Aurora リードレプリカであるかを判別するには、[https://docs.aws.amazon.com/cli/latest/reference/rds/describe-db-instances.html](https://docs.aws.amazon.com/cli/latest/reference/rds/describe-db-instances.html) を使用して、MySQL DB インスタンスのインスタンス識別子を `--db-instance-identifier` オプションに指定します。Aurora リードレプリカの DB クラスター識別子については、出力の `ReadReplicaDBClusterIdentifiers` 要素を参照してください。

**Example**  
Linux、macOS、Unix の場合:  

```
aws rds describe-db-clusters \
    --db-cluster-identifier myreadreplicacluster
```

```
aws rds describe-db-instances \
    --db-instance-identifier mysqlprimary
```
Windows の場合:  

```
aws rds describe-db-clusters ^
    --db-cluster-identifier myreadreplicacluster
```

```
aws rds describe-db-instances ^
    --db-instance-identifier mysqlprimary
```

## Aurora リードレプリカの昇格
<a name="AuroraMySQL.Migrating.RDSMySQL.Replica.Promote"></a>

移行が完了したら、AWS マネジメントコンソール または AWS CLI を使って、Aurora リードレプリカをスタンドアロンの DB クラスターに昇格することができます。

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

Aurora リードレプリカを昇格する前に、出典 MySQL DB インスタンスに対するトランザクションの書き込みをすべて停止し、Aurora リードレプリカのレプリカラグが 0 になるまで待ちます。Aurora リードレプリカのレプリカラグを確認するには、`SHOW SLAVE STATUS` (Aurora MySQL バージョン 2) または `SHOW REPLICA STATUS` (Aurora MySQL バージョン 3) コマンドを Aurora リードレプリカに対して呼び出します。[**マスターから数秒遅れ**] 値をチェックします。

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

### コンソール
<a name="AuroraMySQL.Migrating.RDSMySQL.Replica.Promote.Console"></a>

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

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

1. ナビゲーションペインで、[**データベース**] を選択します。

1. Aurora リードレプリカの DB クラスターを選択します。

1. [**アクション**] で、[**Promote (昇格)**] を選択します。

1. [**リードレプリカの昇格**] を選択します。

昇格したら、以下の手順を実行して昇格が完了したことを確認します。

**Aurora リードレプリカが昇格したことを確認するには**

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

1. ナビゲーションペインの [**Events**] を選択します。

1. [**イベント**] ページで、昇格したクラスターの `Promoted Read Replica cluster to a stand-alone database cluster` イベントがあることを確認します。

昇格が完了したら、プライマリ MySQL DB インスタンスと Aurora リードレプリカのリンクは解除され、DB インスタンスは必要に応じて安全に削除できるようになります。

### AWS CLI
<a name="AuroraMySQL.Migrating.RDSMySQL.Replica.Promote.CLI"></a>

Aurora リードレプリカをスタンドアロン DB クラスターに昇格させるには、AWS CLI の [https://docs.aws.amazon.com/cli/latest/reference/rds/promote-read-replica-db-cluster.html](https://docs.aws.amazon.com/cli/latest/reference/rds/promote-read-replica-db-cluster.html) コマンドを使用します。

**Example**  
Linux、macOS、Unix の場合:  

```
aws rds promote-read-replica-db-cluster \
    --db-cluster-identifier myreadreplicacluster
```
Windows の場合:  

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