リードレプリカを使用してマルチ AZ DB クラスターに移行する
シングル AZ デプロイまたはマルチ AZ DB インスタンスデプロイをマルチ AZ DB クラスターデプロイに少ないダウンタイムで移行するには、マルチ AZ DB クラスターリードレプリカを作成します。ソースとして、シングル AZ デプロイの DB インスタンス、またはマルチ AZ DB インスタンスデプロイのプライマリ DB インスタンスを指定します。DB インスタンスは、マルチ AZ DB クラスターへの移行時に書き込みトランザクションを処理できます。
以下は、マルチ AZ DB クラスターのリードレプリカを作成する前の考慮事項です。
-
ソース DB インスタンスは、マルチ AZ DB クラスターをサポートするバージョンである必要があります。詳細については、「Amazon RDS のマルチ AZ DB クラスターでサポートされているリージョンと DB エンジン」を参照してください。
-
マルチ AZ DB クラスターのリードレプリカは、ソースと同じメジャーバージョンで、同じかそれ以上のマイナーバージョンでなければなりません。
-
バックアップ保持期間を 0 以外の値に設定することで、ソース DB インスタンスで自動バックアップを有効にする必要があります。
-
ソース DB インスタンスに割り当てられるストレージは 100 GiB 以上でなければなりません。
-
RDS for MySQL では、
gtid-mode
とenforce_gtid_consistency
パラメータの両方は、ソース DB インスタンスのON
に設定する必要があります。デフォルトのパラメータグループではなく、カスタムパラメータグループを使用する必要があります。詳細については、「Amazon RDS DB インスタンスの DB パラメータグループ」を参照してください。 -
アクティブな長時間実行トランザクションの場合、リードレプリカの作成プロセスに時間がかかることがあります。長時間実行トランザクションが完了してから、リードレプリカを作成することをお勧めします。
-
マルチ AZ DB クラスターのリードレプリカのソース DB インスタンスを削除した場合、リードレプリカはスタンドアロンのマルチ AZ DB クラスターに昇格されます。
マルチ AZ DB クラスターのリードレプリカの作成と昇格
マルチAZ DB クラスターのリードレプリカの作成と昇格には、AWS Management Console、AWS CLI、または RDS API を使用します。
注記
ソース DB インスタンスの Amazon VPC に基づいて、すべてのリードレプリカを同じ仮想プライベートクラウド (VPC) に作成することを強くお勧めします。
リードレプリカをソース DB インスタンスとは異なる VPC に作成すると、クラスレスドメイン間ルーティング (CIDR) の範囲がレプリカと Amazon RDS システムとの間で重複する可能性があります。CIDR が重複すると、レプリカが不安定になり、レプリカに接続するアプリケーションに悪影響を及ぼす可能性があります。リードレプリカの作成時にエラーが発生した場合は、別のターゲット DB サブネットグループを選択します。詳細については、「VPC 内の DB インスタンスの使用」を参照してください。
リードレプリカを使用してシングル AZ デプロイまたはマルチ AZ DB インスタンスデプロイをマルチ AZ DB クラスターに移行するには、AWS Management Console を使用して次の手順を実行します。
-
AWS Management Console にサインインし、Amazon RDS コンソール https://console.aws.amazon.com/rds/
を開きます。 -
マルチ AZ DB クラスターのリードレプリカを作成します。
-
ナビゲーションペインで、[データベース] を選択します。
-
リードレプリカのソースとして使用する DB インスタンスを選択します。
-
[アクション] で [リードレプリカの作成] を選択します。
-
[Availability and durability] (可用性と耐久性) で、[Multi-AZ DB cluster] (マルチ AZ DB クラスター) を選択します。
-
DB インスタンス識別子に、リードレプリカの名前を入力します。
-
残りのセクションで、DB クラスター設定を指定します。設定の詳細については、「マルチ AZ DB クラスターを作成するための設定」を参照してください。
-
[Create read replica] を選択します。
-
-
準備ができたら、リードレプリカをスタンドアロンのマルチ AZ DB クラスターに昇格します。
-
トランザクションがソース DB インスタンスに書き込まれるのを停止して、すべての更新がリードレプリカに反映されるまで待ちます。
データベースの更新は、プライマイ DB インスタンスで行われた後にリードレプリカで行われます。このレプリケーションのラグは大きく異なる可能性があります。
ReplicaLag
メトリクスを使用して、リードレプリカにすべての更新がいつ加えられたかを確認できます。レプリカラグの詳細については、「リードレプリケーションのモニタリング」を参照してください。 -
AWS Management Console にサインインし、Amazon RDS コンソール (https://console.aws.amazon.com/rds/
) を開きます。 -
Amazon RDS コンソールで、[Databases (データベース)] を選択します。
[Databases (データベース)] ペインが表示されます。各リードレプリカには、[Role (ロール)] 列に [Replica (レプリカ)] があります。
-
昇格するマルチ AZ DBクラスターのリードレプリカを選択します。
-
[アクション] で、[Promote (昇格)] を選択します。
-
[Promote read replica] (リードレプリカの昇格) ページで、新しく昇格されたマルチ AZ DB クラスターのバックアップ保持期間とバックアップウィンドウを入力します。
-
希望通りの設定になったら、[Promote read replica] (リードレプリカの昇格) を選択します。
-
昇格されたマルチ AZ DB クラスターのステータスが
Available
になるまで待ちます。 -
昇格されたマルチ AZ DB クラスターを使用するようにアプリケーションに指示します。
必要に応じて、シングル AZ デプロイまたはマルチ AZ DB インスタンスデプロイが不要になった場合は削除します。手順については、DB インスタンスを削除する を参照してください。
-
リードレプリカを使用してシングル AZ デプロイまたはマルチ AZ DB インスタンスデプロイをマルチ AZ DB クラスターに移行するには、AWS CLI を使用して次の手順を実行します。
-
マルチ AZ DB クラスターのリードレプリカを作成します。
ソース DB インスタンスからリードレプリカを作成するには、AWS CLI コマンド
create-db-cluster
を使用します。--replication-source-identifier
として、ソース DB インスタンスの Amazon リソースネーム (ARN) を指定します。Linux、macOS、Unix の場合:
aws rds create-db-cluster \ --db-cluster-identifier
mymultiazdbcluster
\ --replication-source-identifierarn:aws:rds:us-east-2:123456789012:db:mydbinstance
--engine postgres \ --db-cluster-instance-class db.m5d.large \ --storage-type io1 \ --iops 1000 \ --db-subnet-group-namedefaultvpc
\ --backup-retention-period 1Windows の場合:
aws rds create-db-cluster ^ --db-cluster-identifier
mymultiazdbcluster
^ --replication-source-identifierarn:aws:rds:us-east-2:123456789012:db:mydbinstance
--engine postgres ^ --db-cluster-instance-class db.m5d.large ^ --storage-type io1 ^ --iops 1000 ^ --db-subnet-group-namedefaultvpc
^ --backup-retention-period 1 -
トランザクションがソース DB インスタンスに書き込まれるのを停止して、すべての更新がリードレプリカに反映されるまで待ちます。
データベースの更新は、プライマイ DB インスタンスで行われた後にリードレプリカで行われます。このレプリケーションのラグは大きく異なる可能性があります。
Replica Lag
メトリクスを使用して、リードレプリカにすべての更新がいつ加えられたかを確認できます。レプリカラグの詳細については、「リードレプリケーションのモニタリング」を参照してください。 -
準備ができたら、リードレプリカをスタンドアロンのマルチ AZ DB クラスターに昇格します。
マルチ AZ DB クラスターのリードレプリカを昇格するには、AWS CLI コマンド
promote-read-replica-db-cluster
を使用します。--db-cluster-identifier
として、マルチ AZ DB クラスターリードレプリカの ID を指定します。aws rds promote-read-replica-db-cluster --db-cluster-identifier
mymultiazdbcluster
-
昇格されたマルチ AZ DB クラスターのステータスが
Available
になるまで待ちます。 -
昇格されたマルチ AZ DB クラスターを使用するようにアプリケーションに指示します。
必要に応じて、シングル AZ デプロイまたはマルチ AZ DB インスタンスデプロイが不要になった場合は削除します。手順については、DB インスタンスを削除する を参照してください。
リードレプリカを使用してシングル AZ デプロイまたはマルチ AZ DB インスタンスデプロイをマルチ AZ DB クラスターに移行するには、RDS AAPI を使用して次の手順を実行します。
-
マルチ AZ DB クラスターのリードレプリカを作成します。
マルチ AZ DB クラスターのリードレプリカを作成するには、必須パラメータ
DBClusterIdentifier
を指定して、CreateDBCluster
オペレーションを使用します。ReplicationSourceIdentifier
として、ソース DB インスタンスの Amazon リソースネーム (ARN) を指定します。 -
トランザクションがソース DB インスタンスに書き込まれるのを停止して、すべての更新がリードレプリカに反映されるまで待ちます。
データベースの更新は、プライマイ DB インスタンスで行われた後にリードレプリカで行われます。このレプリケーションのラグは大きく異なる可能性があります。
Replica Lag
メトリクスを使用して、リードレプリカにすべての更新がいつ加えられたかを確認できます。レプリカラグの詳細については、「リードレプリケーションのモニタリング」を参照してください。 -
準備ができたら、リードレプリカをスタンドアロンのマルチ AZ DB クラスターに昇格します。
マルチ AZ DB クラスターのリードレプリカを昇格するには、必須パラメータ
DBClusterIdentifier
を指定して、PromoteReadReplicaDBCluster
オペレーションを使用します。マルチ AZ DB クラスターリードレプリカの ID を指定します。 -
昇格されたマルチ AZ DB クラスターのステータスが
Available
になるまで待ちます。 -
昇格されたマルチ AZ DB クラスターを使用するようにアプリケーションに指示します。
必要に応じて、シングル AZ デプロイまたはマルチ AZ DB インスタンスデプロイが不要になった場合は削除します。手順については、DB インスタンスを削除する を参照してください。
マルチ AZ DB クラスターのリードレプリカの作成に関する制限事項
次の制限は、シングル AZ デプロイまたはマルチ AZ DB インスタンスデプロイから マルチ AZ DB クラスターのリードレプリカを作成する際に適用されます。
-
ソース DB インスタンスを所有する AWS アカウント とは異なる AWS アカウント では、マルチ AZ DB クラスターのリードレプリカを作成することはできません。
-
マルチ AZ DB クラスターのリードレプリカは、ソース DB インスタンスとは異なる AWS リージョン で作成することはできません。
-
マルチ AZ DB クラスターのリードレプリカを指定の時点に復元することはできません。
-
ストレージ暗号化は、ソース DB インスタンスとマルチ AZ DB クラスターで同じ設定にする必要があります。
-
ソース DB インスタンスが暗号化されている場合、マルチ AZ DB クラスターのリードレプリカは同じ KMS キーを使用して暗号化する必要があります。
-
ソース DB インスタンスが汎用 SSD (gp3) ストレージを使用しており、割り当てられたストレージが 400 GiB 未満の場合、マルチ AZ DB クラスターのリードレプリカのプロビジョンド IOPS は変更できません。
-
ソース DB インスタンスでマイナーバージョンアップグレードを実行するには、まず、マルチ AZ DB クラスターリードレプリカでマイナーバージョンアップグレードを実行する必要があります。
-
RDS for PostgreSQL マルチ AZ DB クラスターのリードレプリカでマイナーバージョンアップグレードを実行すると、アップグレード後にリーダー DB インスタンスがライター DB インスタンスに切り替えられません。したがって、Amazon RDS がライターインスタンスをアップグレードしている間に、DB クラスターでダウンタイムが発生する可能性があります。
-
マルチ AZ DB クラスターのリードレプリカでメジャーバージョンアップグレードを実行することはできません。
-
マルチ AZ DB クラスターリードレプリカのソース DB インスタンスでメジャーバージョンアップグレードを実行できますが、リードレプリカへのレプリケーションは停止し、再開できません。
-
マルチ AZ DB クラスターのリードレプリカは、カスケードリードレプリカをサポートしていません。
-
RDS for PostgreSQL では、マルチ AZ DB クラスターのリードレプリカはフェイルオーバーできません。