share facebook facebook2 twitter menu hatena pocket slack

2015.07.03 FRI

AWSの特定OS最新AMIを追いかけるためのワンライナー

齋藤 康征

WRITTEN BY齋藤 康征

実現したいこと

著名な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"
}

元記事はこちら

AWSの特定OS最新AMIを追いかけるためのワンライナー

齋藤 康征

齋藤 康征

cloudpackの @saitara (齋藤 康征)です。 大きなトラフィックと大量のアクセスを好物としてます。