小ネタ:EC2 インスタンスの ARN 文字列を作る
AWS CLI や AWS マネジメントコンソールでは、EC2 インスタンスの ARN として表示されている箇所がないため、必要に応じて都度組み立てる必要がある。
そこで、AWS CLI の ec2 describe-instances
で取得できる値から、ARN 文字列を組み立てるコマンドを検討してみる。
そもそも EC2 インスタンスの ARN 形式は?
以下のような規則の文字列となる。
1 |
|
作成したコマンド
1 2 3 4 |
|
ポイント
インスタンスが存在するリージョンそのものの文字列は、ec2 describe-instances
の結果には含まれず、Placement
の AvailabilityZone
(例:ap-northeast-1a )か、PrivateDnsName
(例:ip-10-0-0-150.ap-northeast-1.compute.internal )に含まれる文字列から取得する必要がある。
そこで今回は、Placement
の AvailabilityZone
の値を awk コマンドの中で、末尾の一文字を削除する処理として リージョン文字列を組み立てることにした。
実行結果例
1 2 |
|
まとめ
EC2 インスタンスの ARN が必要になる場面はあまり思いつかない(aws resourcegroupstaggingapi tag-resources
でのタグ付けの時とか?)が、命名規則は簡単なものの、アカウントに存在する EC2 インスタンスの ARN 一覧を作成したいような時に地味に役立つのかな?
注意点としては、アベイラビリティゾーンの文字列の規則が リージョン名
+ 英文字一文字
と決め打ちしている点。
もう少しシンプルに書くこともできそうだが、小ネタとして。