AWS のリージョンの略称

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 などは普段目にするリージョン名単純な省略なので覚えやすいです。