この記事は公開されてから1年以上経過しています。情報が古い可能性がありますので、ご注意ください。
こんにちは。サービスグループの武田です。
今年の4月に香港リージョンが追加されました。そして、この香港リージョンからは有効化がオプトインになりました。
これまでリージョンの有効/無効といったステータスは、マネジメントコンソール上からは確認できたのですが、AWS CLIなどでは確認できませんでした。今回EC2のAPIに、これらのステータスを確認できるアップデートがありましたのでさっそく試してみました。
環境
AWS CLIを利用します。アップデートが必要なため、古いバージョンの場合は必ずアップデートを行ってください。
$ aws --version
aws-cli/1.16.205 Python/3.7.0 Darwin/18.6.0 botocore/1.12.195
$ sw_vers
ProductName: Mac OS X
ProductVersion: 10.14.5
BuildVersion: 18F132
有効リージョンの一覧取得
これまでどおりec2 describe-regions
を実行すればOKです。OptInStatus
がリージョンの状態ですね。OptInStatusは次の3つのステータスが定義されています。
- opt-in-not-required
- オプトイン不要(有効)
- opted-in
- オプトインしている(有効)
- not-opted-in
- オプトインしていない(無効)
$ aws ec2 describe-regions
{
"Regions": [
{
"Endpoint": "ec2.eu-north-1.amazonaws.com",
"RegionName": "eu-north-1",
"OptInStatus": "opt-in-not-required"
},
{
"Endpoint": "ec2.ap-south-1.amazonaws.com",
"RegionName": "ap-south-1",
"OptInStatus": "opt-in-not-required"
},
{
"Endpoint": "ec2.eu-west-3.amazonaws.com",
"RegionName": "eu-west-3",
"OptInStatus": "opt-in-not-required"
},
{
"Endpoint": "ec2.eu-west-2.amazonaws.com",
"RegionName": "eu-west-2",
"OptInStatus": "opt-in-not-required"
},
{
"Endpoint": "ec2.eu-west-1.amazonaws.com",
"RegionName": "eu-west-1",
"OptInStatus": "opt-in-not-required"
},
{
"Endpoint": "ec2.ap-northeast-2.amazonaws.com",
"RegionName": "ap-northeast-2",
"OptInStatus": "opt-in-not-required"
},
{
"Endpoint": "ec2.ap-northeast-1.amazonaws.com",
"RegionName": "ap-northeast-1",
"OptInStatus": "opt-in-not-required"
},
{
"Endpoint": "ec2.sa-east-1.amazonaws.com",
"RegionName": "sa-east-1",
"OptInStatus": "opt-in-not-required"
},
{
"Endpoint": "ec2.ca-central-1.amazonaws.com",
"RegionName": "ca-central-1",
"OptInStatus": "opt-in-not-required"
},
{
"Endpoint": "ec2.ap-southeast-1.amazonaws.com",
"RegionName": "ap-southeast-1",
"OptInStatus": "opt-in-not-required"
},
{
"Endpoint": "ec2.ap-southeast-2.amazonaws.com",
"RegionName": "ap-southeast-2",
"OptInStatus": "opt-in-not-required"
},
{
"Endpoint": "ec2.eu-central-1.amazonaws.com",
"RegionName": "eu-central-1",
"OptInStatus": "opt-in-not-required"
},
{
"Endpoint": "ec2.us-east-1.amazonaws.com",
"RegionName": "us-east-1",
"OptInStatus": "opt-in-not-required"
},
{
"Endpoint": "ec2.us-east-2.amazonaws.com",
"RegionName": "us-east-2",
"OptInStatus": "opt-in-not-required"
},
{
"Endpoint": "ec2.us-west-1.amazonaws.com",
"RegionName": "us-west-1",
"OptInStatus": "opt-in-not-required"
},
{
"Endpoint": "ec2.us-west-2.amazonaws.com",
"RegionName": "us-west-2",
"OptInStatus": "opt-in-not-required"
}
]
}
なお、単純にリージョン名の一覧のみが欲しいのであれば次のようにqueryを書けばOKです。リストが長くなってしまうので、以降はこのクエリを付けておきます。
$ aws ec2 describe-regions --query 'Regions[].RegionName'
無効リージョンも含めた一覧取得
無効リージョンを取得したい場合は--all-regions
オプションを付与します。例として次のようにコマンドを実行します。ap-east-1
が含まれていることが確認できます。なお、大阪ローカルリージョンは含まれていませんね。
$ aws ec2 describe-regions --all-regions --query 'Regions[].RegionName'
[
"eu-north-1",
"ap-south-1",
"eu-west-3",
"eu-west-2",
"eu-west-1",
"ap-northeast-2",
"ap-northeast-1",
"sa-east-1",
"ca-central-1",
"ap-east-1",
"ap-southeast-1",
"ap-southeast-2",
"eu-central-1",
"us-east-1",
"us-east-2",
"us-west-1",
"us-west-2"
]
無効リージョンのみ一覧取得
全リージョンから無効リージョンのみに絞ります。絞り込みは--filters
オプションを使用します。
$ aws ec2 describe-regions --all-regions --filters 'Name=opt-in-status,Values=not-opted-in' --query 'Regions[].RegionName'
[
"ap-east-1"
]
対象リージョンが有効か無効かを調べる
次のように--region-name
オプションを使用することで指定したリージョン情報のみ取得できます。OptInStatusがopt-in-not-requiredかopted-inなら有効、not-opted-inなら無効という判定ができます。
$ aws ec2 describe-regions --all-regions --region-name ap-east-1 --query 'Regions[].OptInStatus'
[
"not-opted-in"
]
まとめ
社内では待ち望んでいた声も多く、待望のアップデートがついに来ました!ぜひ便利に使っていきましょう。