RDS のリードレプリカを作成する AZ は指定できますか?

RDS のリードレプリカを作成する AZ は指定できますか?

RDS のリードレプリカを作成する際、AZ を指定できるかどうかは構成によって異なります。本記事では、シングル AZ と Multi-AZ のそれぞれのケースで、AZ 指定の可否と選択基準について、実検証を交えて解説します。
2026.09.14

困っていた内容

RDS のリードレプリカを作成する際、配置する AZ を自分で選択することは可能でしょうか。
また、自動で選択される場合、その選択基準のようなものはありますか。

回答

リードレプリカをシングル AZ 構成で作成する場合は、AZ を指定できます。
一方、マルチ AZ 構成で作成する場合は AZ を指定できません。この場合、プライマリ/スタンバイをどの AZ に配置するかは Amazon RDS がランダムに決定します。[1]

なお、AZ を指定しなかった場合は、DB サブネットグループに含まれる AZ の中から RDS が自動的に選択します。[2]
そのため「必ずこのAZに置きたい」という要件がある場合は、
シングル AZ 構成としたうえで、--availability-zone を明示的にご指定ください。

参考資料

[1]リージョン、アベイラビリティーゾーン、および Local Zones - Amazon Relational Database Service

マルチ AZ DB デプロイで、プライマリ DB インスタンスとセカンダリ DB インスタンスのアベイラビリティーゾーンを選択することはできません。Amazon RDS によってランダムに選択されます。

[2] VPC 内の DB インスタンスの使用 - DB サブネットグループの使用

DB サブネットグループから、Amazon RDS は DB インスタンスに関連付けるサブネットとそのサブネット内の IP アドレスを選択します。DB は、そのサブネットを含むアベイラビリティーゾーンを使用します。

(補足)検証してみた

検証環境の準備

前提として、以下は事前に用意済みとします(作成手順の詳細は割愛します)。

  • VPC、および AZ が異なるサブネット(今回は ap-northeast-1a / 1c / 1d)
  • 上記サブネットを含む DB サブネットグループ(yutaka-test-db-subnetgroup)
  • DB 用の セキュリティグループ

ソース DB インスタンスの作成

リードレプリカの元になるDBインスタンスを、検証用に最小構成(db.t3.micro / 20GiB / シングルAZ)で作成します。

REGION=ap-northeast-1
SOURCE_ID=yutaka-test-db
SUBNET_GROUP=yutaka-test-db-subnetgroup
SG_ID=sg-xxxxxxxxxxxxxxxxx

$ aws rds create-db-instance \
  --db-instance-identifier $SOURCE_ID \
  --db-instance-class db.t3.micro \
  --engine mysql \
  --engine-version 8.4.9 \
  --master-username admin \
  --master-user-password 'XXXXXXXXXXXXXXXXXX' \
  --allocated-storage 20 \
  --storage-type gp3 \
  --db-subnet-group-name $SUBNET_GROUP \
  --vpc-security-group-ids $SG_ID \
  --no-multi-az \
  --no-publicly-accessible \
  --backup-retention-period 1 \
  --region $REGION

rds_rep01

サブネットグループに登録されている AZ を確認

レプリカが配置され得る AZ(=DBサブネットグループが持つAZ)を確認します。

$ aws rds describe-db-subnet-groups \
  --db-subnet-group-name $SUBNET_GROUP \
  --region $REGION \
  --query 'DBSubnetGroups[0].Subnets[].{AZ:SubnetAvailabilityZone.Name,Subnet:SubnetIdentifier}' \
  --output table

ap-northeast-1a / 1c / 1d の 3 つが登録されていることを確認できました。

-------------------------------------------------
|            DescribeDBSubnetGroups             |
+------------------+----------------------------+
|        AZ        |          Subnet            |
+------------------+----------------------------+
|  ap-northeast-1d |  subnet-xxxxxxxxxxxxxxx1d  |
|  ap-northeast-1a |  subnet-xxxxxxxxxxxxxxx1a  |
|  ap-northeast-1c |  subnet-xxxxxxxxxxxxxxx1c  |
+------------------+----------------------------+

リードレプリカを作成できるのは、ここに出力された AZ の範囲内のみです。
配置したい AZ のサブネットがサブネットグループに含まれていない場合は、先にサブネットグループを修正する必要があります。

パターン①:Multi-AZ + AZ指定

まず、リードレプリカを作成時、マルチ AZ 構成と AZ 指定を同時に行えるか確認します。
ドキュメントのとおりであれば AZ 指定はできないため、エラーになることが想定されます。

$ aws rds create-db-instance-read-replica \
  --db-instance-identifier test-replica-multiaz-az \
  --source-db-instance-identifier $SOURCE_ID \
  --multi-az \
  --availability-zone ap-northeast-1a \
  --region $REGION

結果、想定どおりエラーになりました。InvalidParameterCombination として、「Multi-AZインスタンスに対して特定のAZを要求することはできない」旨が明示されています。

An error occurred (InvalidParameterCombination) when calling the CreateDBInstanceReadReplica operation: Requesting a specific availability zone is not valid for Multi-AZ instances.

パターン②:シングルAZ + AZ指定

次に、シングル AZ 構成で AZ を指定した場合の挙動を確認します。

$ aws rds create-db-instance-read-replica \
  --db-instance-identifier test-replica-singleaz-1a \
  --source-db-instance-identifier $SOURCE_ID \
  --no-multi-az \
  --availability-zone ap-northeast-1a \
  --region $REGION

こちらは正常に作成でき、AvailabilityZone が指定どおり ap-northeast-1a になっていることが確認できました。

{
    "DBInstance": {
        "DBInstanceIdentifier": "test-replica-singleaz-1a",
        "DBInstanceStatus": "creating",
        "AvailabilityZone": "ap-northeast-1a",
        "MultiAZ": false,
        "DBSubnetGroup": {
            "DBSubnetGroupName": "yutaka-test-db-subnetgroup"
        },
        "ReadReplicaSourceDBInstanceIdentifier": "yutaka-test-db"
    }
}

rds_rep02


AWSテクニカルサポートノートについて

過去にクラスメソッドのAWS総合支援サービスで頂いたお問合せの中から、通常のAWS利用時でも有益になりうる情報をテクニカルサポートチームがTIPSとしてご紹介しています。技術サポートは、無料でご提供しております。詳細は下記ボタンからご覧ください。

クラスメソッドのAWSサポートの詳細を見る

この記事をシェアする

AWSのお困り事はクラスメソッドへ

関連記事