AWS でリソース名や terraform の識別子にリージョンを入れたいとき、ap-northeast-1
とかだと長すぎるのでもっと略したいときの略称の候補。
大抵はリージョンごとに〇〇環境のように作成するためリージョン名が識別子に入ることはあまりありませんが、たまにバックアップサイトとして別リージョンにも展開しておく、とかのときに悩むことがあります。
ap-northeast-1 -> an1
ハイフン区切りで先頭一文字を取り出す。元のリージョン名から導出しやすくわかりやすいと思うのですが、この方法だと一部のリージョンで重複します。
aws ec2 describe-regions --all-regions \ | jq '.Regions[].RegionName | . as $region | split("-") | map(.[0:1]) | join("") | [$region, .] | @tsv' -r \ | sort -k2 \ | uniq -f1 -D
af-south-1 as1 ap-south-1 as1 ap-southeast-1 as1 ap-south-2 as2 ap-southeast-2 as2
ap-northeast-1 -> apne1
https://docs.aws.amazon.com/ja_jp/ram/latest/userguide/working-with-az-ids.html
AZ の ID でリージョン名が略されているので、それをそのまま使えばいいじゃない、という案。
aws ec2 describe-regions | jq '.Regions[].RegionName' -r \ | while read -r region; do aws --region="$region" ec2 describe-availability-zones \ | jq --arg region "$region" '.AvailabilityZones[].ZoneId | split("-") | [$region, .[0]] | @tsv' -r done \ | sort -u
ap-northeast-1 apne1 ap-northeast-2 apne2 ap-northeast-3 apne3 ap-south-1 aps1 ap-southeast-1 apse1 ap-southeast-2 apse2 ca-central-1 cac1 eu-central-1 euc1 eu-north-1 eun1 eu-west-1 euw1 eu-west-2 euw2 eu-west-3 euw3 sa-east-1 sae1 us-east-1 use1 us-east-2 use2 us-west-1 usw1 us-west-2 usw2
ap-northeast-1 -> tokyo
tokyo
などの実際の地域名を使う。普段口頭では実際の地域名で喋っていると思うので、わかりやすいですね(まさか、エーピーノースイーストワン、とか喋らないですよね)。
ap-northeast-1 tokyo ap-northeast-3 osaka us-east-1 nvirginia us-west-2 oregon
ap-northeast-1 -> NRT
AWS リージョンの短いエイリアスとしての空港コード - Qiita
という案もあるようです。AWS 発の文章で使われていることもあるらしいですが、なじみが無さ過ぎてぱっと見で全然わからないです。。。
ap-northeast-1
ap-northeast-1
などのリージョン名をそのまま使う。
ap-northeast-1 ap-northeast-3 us-east-1 us-west-2
昔は terraform でハイフン含む識別子を付けると aws_xxx.aaa-bbb
みたいに書いたときに何か不都合があったような気がしますが、今はもうその問題は無いはずです。ただ、ちょっと見た目が気持ち悪い気がしますね・・
さいごに
これまでは tokyo
とかを使うことが多かったです。ただ改めて見ると an1
とか apne1
とかもありな気もします。全リージョンにとりあえず設定しておきたい、とかなら AZ ID に基づく apne1
のような名前は使い勝手が良さそうですし、一部で重複するリージョンが必要ないなら an1
などは普段目にするリージョン名単純な省略なので覚えやすいです。