【AWS】AWS CLIでAmazon Linux 2の最新AMI IDを取得してみた

# はじめに
EC2でAmazon Linux 2のインスタンスを構築する際に、クイックスタートを選択するとAmazon Linux 2023が自動的に選択されていてAmazon Linux 2の最新のAMIをGUI上で探すときに時間がかかったので、簡単にAMIを探すことができる方法を調べてみました。

## AWS CLIで最新のAMI IDを取得してみる
色々な記事・ブログ等を見ましたが、AWS CLIでコマンドでAMI IDを取得していることが多いようでしたので、以下の条件でAWS CLIコマンドでAmazon Linux 2の最新のAMI IDを取得していきたいと思います。

+ OS: Amazon Linux 2
+ アーキテクチャ: x86_64
+ ストレージタイプ: gp2 (汎用SSD)

AWS CLIで`describe-images`コマンドを利用します。
+ `--owners amazon`でAMIの所有者をAmazonにします。
+ `--filters "Name=name,Values=amzn2-ami-hvm-2.0.*-x86_64-gp2"`でAMI名を検索します。
+ `--query 'sort_by(Images, &CreationDate)[-1].[ImageId]'`でAMIの作成日時に基づいてソートします。
+ `--output table`でテーブル形式で出力します。

```
$ aws ec2 describe-images --owners amazon --filters "Name=name,Values=amzn2-ami-hvm-2.0.*-x86_64-gp2" --query 'sort_by(Images, &CreationDate)[-1]' --output table
----------------------------------------------------------------------------
|                              DescribeImages                              |
+---------------------+----------------------------------------------------+
|  Architecture       |  x86_64                                            |
|  CreationDate       |  2023-04-11T07:52:19.000Z                          |
|  DeprecationTime    |  2025-04-11T07:52:19.000Z                          |
|  Description        |  Amazon Linux 2 AMI 2.0.20230404.1 x86_64 HVM gp2  |
|  EnaSupport         |  True                                              |
|  Hypervisor         |  xen                                               |
|  ImageId            |  ami-04d6e43069fd7e366                             |
|  ImageLocation      |  amazon/amzn2-ami-hvm-2.0.20230404.1-x86_64-gp2    |
|  ImageOwnerAlias    |  amazon                                            |
|  ImageType          |  machine                                           |
|  Name               |  amzn2-ami-hvm-2.0.20230404.1-x86_64-gp2           |
|  OwnerId            |  137112412989                                      |
|  PlatformDetails    |  Linux/UNIX                                        |
|  Public             |  True                                              |
|  RootDeviceName     |  /dev/xvda                                         |
|  RootDeviceType     |  ebs                                               |
|  SriovNetSupport    |  simple                                            |
|  State              |  available                                         |
|  UsageOperation     |  RunInstances                                      |
|  VirtualizationType |  hvm                                               |
+---------------------+----------------------------------------------------+
||                           BlockDeviceMappings                          ||
|+------------------------------------+-----------------------------------+|
||  DeviceName                        |  /dev/xvda                        ||
|+------------------------------------+-----------------------------------+|
|||                                  Ebs                                 |||
||+--------------------------------+-------------------------------------+||
|||  DeleteOnTermination           |  True                               |||
|||  Encrypted                     |  False                              |||
|||  SnapshotId                    |  snap-0cbea0938fa9ea74b             |||
|||  VolumeSize                    |  8                                  |||
|||  VolumeType                    |  gp2                                |||
||+--------------------------------+-------------------------------------+||
```

AWS CLIコマンドで最新のAMIを探すことができました。

# さいごに
AWS CLIコマンドを用いて、Amazon Linux 2の最新のAMI IDを取得することができました。
ほかのOSとかでも`--filters`の内容を変更することで最新のAMI IDを取得することができそうなので、また試していきたいです。

# 参考URL
https://docs.aws.amazon.com/ja_jp/AWSEC2/latest/UserGuide/finding-an-ami.html

https://docs.aws.amazon.com/cli/latest/reference/ec2/describe-images.html

https://qiita.com/charon/items/18d9d582ea6c8960f274