AWS CLIで自アカウントのAZ名とAZ IDのマッピングを確認する
こんにちは。サービスグループの武田です。
先日、AWSの東京リージョンで障害が発生しました。詳細は公式のアナウンスを参照してください。
Summary of the Amazon EC2 Issues in the Asia Pacific (Tokyo) Region (AP-NORTHEAST-1)
当日はリアルタイムでAWSから情報が発信され、それを確認しながら対応されていた方も多いのではないでしょうか。その情報の中に a single Availability Zone in the AP-NORTHEAST-1 Region という一文がありました。これにより複数AZにまたがった障害ではないということが分かりましたが、具体的にどのAZなのかがわかりませんでした。どのAZで起きた障害なのか情報収集をしていた方の中に次のような方はいなかったでしょうか?
「障害ってap-northeast-1aじゃないの?え?AZ名とAZ IDは違う?なにそれ!」
簡単にいうと、apne1-az1
などがAZ IDと呼ばれるもので、AZに一意に付けられた識別子です。一方、皆さんもよく知っているap-northeast-1a
などがAZ名で、AWS アカウントごとにどのAZとマッピングされるかは異なる可能性があります。次の大瀧のエントリが分かりやすく参考になります。
さて、前置きが長くなりましたが、では使用しているアカウントのマッピング情報を知るにはどうすればいいでしょうか?ひとつは紹介したエントリにも画面キャプチャ付きで紹介しているマネジメントコンソールを使用する方法がありますね。このエントリでは、別の方法としてAWS CLIを使用した方法を紹介します。
環境
次の環境で検証しています。
$ sw_vers ProductName: Mac OS X ProductVersion: 10.14.6 BuildVersion: 18G87 $ aws --version aws-cli/1.16.225 Python/3.7.0 Darwin/18.7.0 botocore/1.12.215
やってみた
AWS CLIではEC2のdescribe-availability-zones
を使用することで取得できます。
describe-availability-zones — AWS CLI 1.16.225 Command Reference
$ aws ec2 describe-availability-zones --region ap-northeast-1 { "AvailabilityZones": [ { "State": "available", "Messages": [], "RegionName": "ap-northeast-1", "ZoneName": "ap-northeast-1a", "ZoneId": "apne1-az4" }, { "State": "available", "Messages": [], "RegionName": "ap-northeast-1", "ZoneName": "ap-northeast-1c", "ZoneId": "apne1-az1" }, { "State": "available", "Messages": [], "RegionName": "ap-northeast-1", "ZoneName": "ap-northeast-1d", "ZoneId": "apne1-az2" } ] }
人間が目で確認したい場合、JSON形式ではやや視認性が悪いです。AWS CLIではテーブル形式でも出力できます。
$ aws ec2 describe-availability-zones \ --region ap-northeast-1 \ --query 'AvailabilityZones[].{RegionName:RegionName, ZoneName:ZoneName, ZoneId:ZoneId}' \ --output table ---------------------------------------------------- | DescribeAvailabilityZones | +----------------+-------------+-------------------+ | RegionName | ZoneId | ZoneName | +----------------+-------------+-------------------+ | ap-northeast-1| apne1-az4 | ap-northeast-1a | | ap-northeast-1| apne1-az1 | ap-northeast-1c | | ap-northeast-1| apne1-az2 | ap-northeast-1d | +----------------+-------------+-------------------+
この結果から、私のアカウントではap-northeast-1a
はapne1-az4
を指しているのだな。といったことが確認できます。
まとめ
簡単にですが、AWS CLIでAZ名とAZ IDのマッピングを確認してみました。興味があれば東京リージョン以外もぜひ確認してみてください。
合わせて読みたい
複数のAvailability ZoneにプロビジョニングしたELB(ALB) / AutoScaling Groupから特定Availability Zone上のリソースをパージする