EC2の中から自分に設定されたNameタグを取得する(IMDSv2のTOKENを必要としないパターン)

2024/03/22に公開

EC2の中から自分に設定されたNameタグを取得する方法です。
Metaデータの取得方法がIMDSv2(インスタンスメタデータサービスv2)になってからTOKENの取得が必要になり1行で実行するには長くなるので、IMDSを使わないパターンにしました。

結果

こうです。

aws ec2 describe-tags --filters "Name=resource-id,Values=$(ec2-metadata -i --quiet)" "Name=key,Values=Name" --query Tags[].Value --output text

ポイント

  • aws ec2 describe-tags コマンドでタグを取得する場合、resource-idの指定が必要
  • 幾つかのウェブサイトを見てもresource-idに指定するインスタンス ID 取得のためにIMDSv2を使っている所がほとんどで、そのためコマンドが長くなっていた
  • 実はEC2に標準で入っているec2-metadataコマンドでインスタンス ID を取得できるので、インスタンス ID取得部分をec2-metadataコマンドに置き換えてコマンド全体を短くしている
  • ec2-metadataでタグも取得できるんだけど、指定のタグ名でフィルタするオプションが無かったのでdescribe-tagsで取得してる。

Discussion