

# マルチ AZ DB クラスターからの DB インスタンスリードレプリカの作成
<a name="multi-az-db-clusters-create-instance-read-replica"></a>

クラスターのコンピューティングまたは I/O のキャパシティを超えてスケーリングするために、マルチ AZ DB クラスターから DB インスタンスのリードレプリカを作成できます。このような過度の読み込みトラフィックを 1 つまたは複数の DB インスタンスのリードレプリカに割り振ることができます。また、リードレプリカを使用して、マルチ AZ DB クラスターから DB インスタンスに移行することもできます。

リードレプリカを作成するには、マルチ AZ DB クラスターをレプリケーションソースとして指定します。ライターインスタンスではなく、マルチ AZ DB クラスターのリーダーインスタンスのいずれかが常にレプリケーションのソースです。この条件により、フェイルオーバーが発生した場合でも、レプリカは常にソースクラスターと同期されます。

**Topics**
+ [リーダー DB インスタンスと DB インスタンスのリードレプリカの比較](#multi-az-db-clusters-readerdb-vs-dbrr)
+ [考慮事項](#multi-az-db-clusters-instance-read-replica-considerations)
+ [DB インスタンスのリードレプリカの作成](#multi-az-db-clusters-instance-read-replica-create)
+ [DB インスタンスのリードレプリカの昇格](#multi-az-db-clusters-promote-instance-read-replica)
+ [マルチ AZ DB クラスターからの DB インスタンスリードレプリカの作成に関する制限事項](#multi-az-db-clusters-create-instance-read-replica-limitations)

## リーダー DB インスタンスと DB インスタンスのリードレプリカの比較
<a name="multi-az-db-clusters-readerdb-vs-dbrr"></a>

マルチ AZ DB クラスターの *DB インスタンスのリードレプリカ*は、マルチ AZ DB クラスターの*リーダー DB インスタンス*と次の点で異なります。
+ リーダー DB インスタンスは自動フェイルオーバーターゲットとして機能しますが、DB インスタンスのリードレプリカにその機能はありません。
+ リーダー DB インスタンスは、変更をコミットする前に、ライター DB インスタンスからの変更を確認する必要があります。ただし、DB インスタンスのリードレプリカの場合、更新は確認を必要とせずにリードレプリカに非同期的にコピーされます。
+ リーダー DB インスタンスは、マルチ AZ DB クラスターのライター DB インスタンスと常に同じインスタンスクラス、ストレージタイプ、およびエンジンバージョンを共有します。ただし、DB インスタンスのリードレプリカは、必ずしもソースクラスターと同じ設定を共有する必要はありません。
+ DB インスタンスのリードレプリカをスタンドアロン DB インスタンスに昇格させることができます。マルチ AZ DB クラスターの DB インスタンスをスタンドアロンインスタンスに昇格することはできません。
+ リーダーエンドポイントは、マルチ AZ DB クラスターのリーダー DB インスタンスにのみリクエストをルーティングします。DB インスタンスのリードレプリカにリクエストをルーティングすることはありません。

リーダーおよびライター DB インスタンスの詳細については、「[マルチ AZ DB クラスターアーキテクチャ](multi-az-db-clusters-concepts.md#multi-az-db-clusters-concepts-overview)」を参照してください。

## 考慮事項
<a name="multi-az-db-clusters-instance-read-replica-considerations"></a>

マルチ AZ DB クラスターから DB インスタンスのリードレプリカを作成する前に以下を検討してください。
+ DB インスタンスのリードレプリカを作成するとき、ソースクラスターと同じメジャーバージョンで、同じかそれ以上のマイナーバージョンでなければなりません。作成後、オプションでリードレプリカをソースクラスターよりも上位のマイナーバージョンにアップグレードできます。
+ DB インスタンスのリードレプリカを作成する場合、割り当てられるストレージは、ソースのマルチ AZ DB クラスターに割り当てられたストレージと同じである必要があります。割り当てられたストレージは、リードレプリカの作成後に変更できます。
+ RDS for MySQL の場合、ソースマルチ AZ DB クラスターでは、`gtid-mode` パラメータを `ON` に設定する必要があります。詳細については、「[マルチ AZ DB クラスターの DB クラスターパラメータグループを使用する](USER_WorkingWithDBClusterParamGroups.md)」を参照してください。
+ アクティブな長時間実行トランザクションの場合、リードレプリカの作成プロセスに時間がかかることがあります。長時間実行トランザクションが完了してから、リードレプリカを作成することをお勧めします。
+ DB インスタンスのリードレプリカのソースマルチ AZ DB インスタンスを削除した場合、書き込み先のリードレプリカはスタンドアロン DB インスタンスに昇格されます。

## DB インスタンスのリードレプリカの作成
<a name="multi-az-db-clusters-instance-read-replica-create"></a>

AWS マネジメントコンソール、AWS CLI、または RDS API を使用して、マルチ AZ DB クラスターから DB インスタンスのリードレプリカを作成できます。

**注記**  
ソースマルチ AZ DB クラスターの Amazon VPC に基づいて、すべてのリードレプリカを同じ仮想プライベートクラウド (VPC) に作成することを強くお勧めします。  
リードレプリカをソースマルチ AZ DB クラスターとは異なる VPC に作成すると、Classless Inter-Domain Routing (CIDR) の範囲がレプリカと RDS システムとの間で重複する可能性があります。CIDR が重複すると、レプリカが不安定になり、レプリカに接続するアプリケーションに悪影響を及ぼす可能性があります。リードレプリカの作成時にエラーが発生した場合は、別のターゲット DB サブネットグループを選択します。詳細については、「[VPC 内の DB インスタンスの使用](USER_VPC.WorkingWithRDSInstanceinaVPC.md)」を参照してください。

### コンソール
<a name="multi-az-db-clusters-create-instance-read-replica-console"></a>

マルチ AZ DB インスタンスリードレプリカを作成するには、AWS マネジメントコンソール を使用して次のステップを実行します。

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

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

1. リードレプリカのソースとして使用するマルチ AZ DB クラスターを選択します。

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

1. **レプリカソース**に、正しいマルチ AZ DB クラスターが選択されていることを確認してください。

1. **DB 識別子**に、リードレプリカの名前を入力します。

1. 残りのセクションで、DB インスタンス設定を指定します。設定の詳細については、「[DB インスタンスの設定](USER_CreateDBInstance.Settings.md)」を参照してください。
**注記**  
DB インスタンスのリードレプリカに割り当てられたストレージは、ソースマルチ AZ DB クラスターに割り当てられたストレージと同じである必要があります。

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

### AWS CLI
<a name="multi-az-db-clusters-create-instance-read-replica-cli"></a>

マルチ AZ DB クラスターから DB インスタンスのリードレプリカを作成するには、AWS CLI コマンド [https://docs.aws.amazon.com/cli/latest/reference/rds/create-db-instance-read-replica.html](https://docs.aws.amazon.com/cli/latest/reference/rds/create-db-instance-read-replica.html) を使用します。`--source-db-cluster-identifier` には、マルチ AZ DB クラスターの識別子を指定します。

Linux、macOS、Unix の場合:

```
aws rds create-db-instance-read-replica \
  --db-instance-identifier myreadreplica \
  --source-db-cluster-identifier mymultiazdbcluster
```

Windows の場合:

```
aws rds create-db-instance-read-replica ^
  --db-instance-identifier myreadreplica ^
  --source-db-cluster-identifier mymultiazdbcluster
```

### RDS API
<a name="multi-az-db-clusters-create-instance-read-replica-api"></a>

マルチ AZ DB クラスターから DB インスタンスのリードレプリカを作成するには、[https://docs.aws.amazon.com/AmazonRDS/latest/APIReference/API_CreateDBInstanceReadReplica.html](https://docs.aws.amazon.com/AmazonRDS/latest/APIReference/API_CreateDBInstanceReadReplica.html) オペレーションを使用します。

## DB インスタンスのリードレプリカの昇格
<a name="multi-az-db-clusters-promote-instance-read-replica"></a>

DB インスタンスのリードレプリカが不要になった場合は、スタンドアロン DB インスタンスに昇格できます。リードレプリカを昇格させると、使用可能になる前に DB インスタンスが再起動されます。手順については、「[リードレプリカをスタンドアロン DB インスタンスに昇格させる](USER_ReadRepl.Promote.md)」を参照してください。

リードレプリカを使用してシングル AZ DB クラスターデプロイをシングル AZ またはマルチ AZ DB インスタンスデプロイに移行している場合は、ソース DB クラスターに書き込まれるトランザクションを必ず停止してください。次に、リードレプリカにすべての更新が行われるまで待ちます。データベースの更新は、マルチ AZ DB クラスターのリーダー DB インスタンスのいずれかで行われた後にリードレプリカで実行されます。このレプリケーションのラグは大きく異なる可能性があります。`ReplicaLag` メトリクスを使用して、リードレプリカにすべての更新がいつ加えられたかを確認できます。レプリカラグの詳細については、「[リードレプリケーションのモニタリング](USER_ReadRepl.Monitoring.md)」を参照してください。

リードレプリカを昇格させたら、昇格した DB インスタンスのステータスが `Available` になるのを待ってから、昇格した DB インスタンスを使用するようアプリケーションに指示します。必要に応じて、マルチ AZ DB クラスターデプロイが不要になった場合は削除することもできます。手順については、「[Amazon RDS 用のマルチ AZ DB クラスターの削除](USER_DeleteMultiAZDBCluster.Deleting.md)」を参照してください。

## マルチ AZ DB クラスターからの DB インスタンスリードレプリカの作成に関する制限事項
<a name="multi-az-db-clusters-create-instance-read-replica-limitations"></a>

次の制限事項は、マルチ AZ DB インスタンスデプロイから DB インスタンスのリードレプリカを作成する際に適用されます。
+ ソースマルチ AZ DB クラスターを所有する AWS アカウント とは異なる AWS アカウント では、 DB インスタンスのリードレプリカを作成することはできません。
+ ソースマルチ AZ DB クラスターとは異なる AWS リージョン で DB インスタンスのリードレプリカを作成することはできません。
+ DB インスタンスのリードレプリカを指定の時点に復元することはできません。
+ ストレージ暗号化は、ソースマルチ AZ DB クラスターと DB インスタンスのリードレプリカで同じ設定にする必要があります。
+ ソースマルチ AZ DB クラスターが暗号化されている場合、DB インスタンスのリードレプリカは同じ KMS キーを使用して暗号化する必要があります。
+ ソースマルチ AZ DB クラスターでマイナーバージョンアップグレードを実行するには、まず、DB インスタンスのリードレプリカでマイナーバージョンアップグレードを実行する必要があります。
+ DB インスタンスのリードレプリカは、カスケードリードレプリカをサポートしていません。
+ RDS for PostgreSQL の場合、DB インスタンスのリードレプリカを作成するには、ソースのマルチ AZ DB クラスターは PostgreSQL バージョン 13.11、14.8、または 15.2.R2 以降を実行している必要があります。
+ DB インスタンスリードレプリカのマルチ AZ DB クラスターでメジャーバージョンアップグレードを実行できますが、リードレプリカへのレプリケーションが停止し、再開できません。