share facebook facebook2 twitter menu hatena pocket slack

2014.09.17 WED

[AWS] 最新のAmazon LinuxのAMI IDを取得するワンライナー

磯辺 和彦

WRITTEN BY磯辺 和彦

こんにちわ、cloudpack磯辺和彦です。

AWS CLIのワンライナーシリーズ。本日は、Amazon Linux (hvm, ebs)の最新AMIのAMI IDを取得するもの。

$ aws ec2 describe-images --owner amazon --filters 'Name=name,Values=amzn-ami-hvm-*' 'Name=virtualization-type,Values=hvm' 'Name=root-device-type,Values=ebs' --query 'Images[].[Name, ImageId]' --output text|sort|tail -n 1
 amzn-ami-hvm-2014.03.2.x86_64-gp2	ami-df470ede

ポイントはいくつか。

  • ownerをamazonにすることで、Amazon公式のAMIを対象とする。
  • filtersで名前をamzn-ami-hvm-*と、ワイルドカードで指定する。
  • filtersに複数の条件を指定する(name, root-device-type, virtualization-type)。
  • queryで出力される内容を限定する。
  • outputをtextにすることで、sortとtailを使って最新のAMIが拾える。JSONは行指向ではないので、シェルでフィルタするときはtextにすると便利。

ちなみに、フィルターに使える条件は、各APIのドキュメントに記載されている。今回の場合は、describe-imagesとなる。Supported Filtersとして、フィルタとして使用できるキーと取りうる値が定義されている。

元記事はこちらです。
[AWS] 最新のAmazon LinuxのAMI IDを取得するワンライナー

磯辺 和彦

磯辺 和彦

cloudpackに参加して以来、設計・構築・運用・開発・セキュリティなど様々な経験を経て、現在は主に社内インフラ関連を担当中。WEB+DB Press Vol.85に記事書きました。