omuronの備忘録

個人的な備忘録

(小ネタ)制約のある AZ (ID: apne1-az3) の利用で RDS の起動に失敗した

6/9 の続き。
やっと DB クラスターが作成できました。

結論から言うと、制約のある AZ (ID: apne1-az3) で、インスタンスを起動していたのが問題でした。

実装方法

AWS::RDS::DBInstanceProperties にて以下の設定をしていました。

      AvailabilityZone: !Select [ 0, !GetAZs ]

!GetAZs にて利用可能な AZ を a から順番に列挙し、 !Select で0番目の要素を取得して利用するという指定です。
この結果、インスタンスの起動が ap-northeast-1a 固定となっておりました。

今回は、 ap-northeast-1a が制約のある AZ(ID: apne1-az3) だったため、インスタンスの起動に失敗し、クラスターが作成できていなかったようです。

以下の指定に変更することにより、無事に起動しました。

      AvailabilityZone: !Select [ 1, !GetAZs ] # 0 に当たる ap-northeast-1a は制約がある AZ(ID: apne1-az3)  なので使わない

原因がわかってよかったのですが、 AvailabilityZone は必須ではないため、未指定でも動作に問題はなかったと思います。

ZoneName と ZoneID の確認

現在利用しているアカウントがどの ZoneName で apne1-az3 を利用しているか否かについては、以下のコマンドで確認できます。

$ aws ec2 describe-availability-zones   --region ap-northeast-1   --query 'AvailabilityZones[].{ZoneName:ZoneName, ZoneId:ZoneId}'   --output table
----------------------------------
|    DescribeAvailabilityZones   |
+------------+-------------------+
|   ZoneId   |     ZoneName      |
+------------+-------------------+
|  apne1-az3 |  ap-northeast-1a  |
|  apne1-az4 |  ap-northeast-1b  |
|  apne1-az1 |  ap-northeast-1c  |
|  apne1-az2 |  ap-northeast-1d  |
+------------+-------------------+

!GetAZs!Select のドキュメント

docs.aws.amazon.com

docs.aws.amazon.com