実現したいこと
著名なOSの最新AMIのリソースIDなどを取得することが目的です。
能書き
このエントリーは "AWS CLI"で最新の"Amazon Linux AMI"(gp2)のIDを取得する を読んで触発されたものです。
AWS CLIで取得した情報を登録年月日にて逆順ソート(※1) し、最初の1件のみを表示することで最新AMIを取得しようと試みています。
※1:reverseの使い方については半信半疑です
OS別
filterなどで定義している内容と取得結果は2015年6月17日現在のものとなります。気付いたらメンテナンスします。
以下の例において、リージョンは ap-northeast-1 にて実施しています。
筆者がHVM以外利用する気が無いため、以下の例でもHVM向けAMIのみを抽出しています。
Amazon Linux
aws ec2 describe-images --owner amazon --region ap-northeast-1 --filter "Name=name,Values=amzn-ami-hvm-*-gp2" "Name=virtualization-type,Values=hvm" --query 'sort_by(Images[].{YMD:CreationDate,Name:Name,ImageId:ImageId},&YMD)|reverse(@)|[0]'
{ "ImageId": "ami-cbf90ecb", "YMD": "2015-03-18T16:30:35.000Z", "Name": "amzn-ami-hvm-2015.03.0.x86_64-gp2" }
Amazon Linux(NAT)
aws ec2 describe-images --owner amazon --region ap-northeast-1 --filter "Name=name,Values=amzn-ami-vpc-nat-*" "Name=virtualization-type,Values=hvm" --query 'sort_by(Images[].{YMD:CreationDate,Name:Name,ImageId:ImageId},&YMD)|reverse(@)|[0]'
{ "ImageId": "ami-03cf3903", "YMD": "2015-03-20T20:45:27.000Z", "Name": "amzn-ami-vpc-nat-hvm-2015.03.0.x86_64-gp2" }
RHEL
aws ec2 describe-images --owner 309956199498 --region ap-northeast-1 --filter "Name=name,Values=RHEL-7.1*" "Name=virtualization-type,Values=hvm" --query 'sort_by(Images[].{YMD:CreationDate,Name:Name,ImageId:ImageId},&YMD)|reverse(@)|[0]'
{ "ImageId": "ami-b1b458b1", "YMD": "2015-02-26T16:34:39.000Z", "Name": "RHEL-7.1_HVM_GA-20150225-x86_64-1-Hourly2-GP2" }
SuSE
aws ec2 describe-images --owner 013907871322 --region ap-northeast-1 --filter "Name=name,Values=suse-sles-12-*" "Name=virtualization-type,Values=hvm" --query 'sort_by(Images[].{YMD:CreationDate,Name:Name,ImageId:ImageId},&YMD)|reverse(@)|[0]'
{ "ImageId": "ami-f1fdcef0", "YMD": "2014-10-23T22:34:13.000Z", "Name": "suse-sles-12-byos-v20141023-hvm-ssd-x86_64" }
Ubuntu
aws ec2 describe-images --owner 099720109477 --region ap-northeast-1 --filter "Name=name,Values=*/ubuntu-trusty-14*" "Name=virtualization-type,Values=hvm" --query 'sort_by(Images[].{YMD:CreationDate,Name:Name,ImageId:ImageId},&YMD)|reverse(@)|[0]'
{ "ImageId": "ami-aa7da3aa", "YMD": "2015-06-09T17:11:36.000Z", "Name": "ubuntu/images/hvm-ssd/ubuntu-trusty-14.04-amd64-server-20150609" }