この記事は公開されてから1年以上経過しています。情報が古い可能性がありますので、ご注意ください。
ウィスキー、シガー、パイプをこよなく愛する大栗です。 1年以上前からAWSを使用されている方は、東京リージョンでEC2を起動する時にAZを3個から選択できるのではないでしょうか。しかし、この中の1個のAZは新機能が提供されておらず、旧世代のEC2インスタンスしか使用できず、EBSもMagneticのみの提供となっています。 そのため、できる限り早く新機能が提供されていないAZから、別の利用可能なAZへ移行すべきです。
AZはAWSアカウント毎にマッピングが異なるため、自分のアカウントのap-northeast-1aと隣の人のap-northeast-1aが別の可能性があります。管理しているアカウントが多いと利用可能なAZを一つ一つ確認するのは手間なのでワンライナーで利用可能なAZを取得できるようにしてみました。 なお、確認環境はAmazon Linux AMI 2014.09です。
やってみる
aws ec2 describe-regions --region ap-northeast-1 --query "Regions[*].RegionName[]" --output text | \
tr -d "\n" | xargs -I'{}' -d"\t" -n 1 -P 1 aws rds describe-orderable-db-instance-options --region '{}' \
--engine mysql --max-items 1 --query "OrderableDBInstanceOptions[0].AvailabilityZones[*].Name"
少し解説をすると、最初に"aws ec2 describe-regions"でリージョン一覧を取得します。次に改行を取っていますが、次のxargsで具合が悪くなる為です。最後にxargsでリージョン毎に"aws rds describe-orderable-db-instance-options"を実行してRDSが起動できるAZを取得しました。 結果は、以下の様になります。
[
"eu-central-1a",
"eu-central-1b"
]
[
"sa-east-1a",
"sa-east-1b"
]
[
"ap-northeast-1a",
"ap-northeast-1c"
]
[
"eu-west-1a",
"eu-west-1b",
"eu-west-1c"
]
[
"us-east-1a",
"us-east-1b",
"us-east-1c"
]
[
"us-west-1a",
"us-west-1c"
]
[
"us-west-2a",
"us-west-2b",
"us-west-2c"
]
[
"ap-southeast-2a",
"ap-southeast-2b"
]
[
"ap-southeast-1a",
"ap-southeast-1b"
]
まとめ
これで、今後利用しているAZが分かりましたので、今度はAZの移行計画を考える番ですね。