handson(light): aws cli output

1.1. AMIの情報取得 (filter)

手順の目的

AMI情報のうち、特定のAMIの名前を抽出します。

設定値の指定

手順に必要な設定値を変数に格納をします。

0. リージョン

リージョンを指定します。

環境変数の設定:

export AWS_DEFAULT_REGION='ap-northeast-1'

1. AMIの名前プレフィックス

AMIの名前プレフィックスを指定します。

変数の指定:

EC2_IMAGE_NAME_PREFIX='amzn2-ami-hvm-2.0'

2. AMIの作成時期

AMIの作成時期を指定します。

変数の指定:

EC2_IMAGE_CREATION='2022-*'

設定値の確認

各変数に正しい設定値が格納されていることを確認します。

変数の確認:

cat << END

  # 0. AWS_DEFAULT_REGION:"ap-northeast-1"
       AWS_DEFAULT_REGION="${AWS_DEFAULT_REGION}"

  # 1. EC2_IMAGE_NAME_PREFIX:"amzn2-ami-hvm-2.0"
       EC2_IMAGE_NAME_PREFIX="${EC2_IMAGE_NAME_PREFIX}"
  # 2. EC2_IMAGE_CREATION:"2022-*"
       EC2_IMAGE_CREATION="${EC2_IMAGE_CREATION}"

END

各変数について、上の行と下の行の値の内容もしくは形式が同じであることを確認します。 もし異なる場合は、それぞれの手順番号に戻って変数の設定を行います。

処理の実行

(特になし)

AMIの情報抽出

特定のAMIの名前を抽出します。

コマンド:

aws ec2 describe-images \
  --owner amazon \
  --filters Name=state,Values=available \
            Name=image-type,Values=machine \
            Name=hypervisor,Values=xen \
            Name=virtualization-type,Values=hvm \
            Name=architecture,Values=x86_64 \
            Name=root-device-type,Values=ebs \
            Name=root-device-name,Values=/dev/xvda \
            Name=block-device-mapping.device-name,Values=/dev/xvda \
            Name=creation-date,Values=${EC2_IMAGE_CREATION} \
  --query "Images[?contains(Name,\`${EC2_IMAGE_NAME_PREFIX}\`)].Name"

結果(例):

[
    "amzn2-ami-hvm-2.0.20220316.0-x86_64-gp2",
    "amzn2-ami-hvm-2.0.20220207.1-x86_64-gp2",
    "amzn2-ami-hvm-2.0.20220406.1-x86_64-gp2",
    "amzn2-ami-hvm-2.0.20220316.0-x86_64-ebs",
    "amzn2-ami-hvm-2.0.20220218.3-x86_64-ebs",
    "amzn2-ami-hvm-2.0.20220218.1-x86_64-gp2",
    "amzn2-ami-hvm-2.0.20220218.3-x86_64-gp2",
    "amzn2-ami-hvm-2.0.20220805.0-x86_64-ebs",
    "amzn2-ami-hvm-2.0.20220419.0-x86_64-gp2",
    "amzn2-ami-hvm-2.0.20220419.0-x86_64-ebs",
    "amzn2-ami-hvm-2.0.20220719.0-x86_64-gp2",
    "amzn2-ami-hvm-2.0.20220805.0-x86_64-gp2",
    "amzn2-ami-hvm-2.0.20220719.0-x86_64-ebs",
    "amzn2-ami-hvm-2.0.20211223.0-x86_64-gp2",
    "amzn2-ami-hvm-2.0.20220426.0-x86_64-ebs",
    "amzn2-ami-hvm-2.0.20220218.1-x86_64-ebs",
    "amzn2-ami-hvm-2.0.20220606.1-x86_64-ebs",
    "amzn2-ami-hvm-2.0.20220426.0-x86_64-gp2",
    "amzn2-ami-hvm-2.0.20211223.0-x86_64-ebs",
    "amzn2-ami-hvm-2.0.20220121.0-x86_64-ebs",
    "amzn2-ami-hvm-2.0.20220606.1-x86_64-gp2",
    "amzn2-ami-hvm-2.0.20220406.1-x86_64-ebs",
    "amzn2-ami-hvm-2.0.20220207.1-x86_64-ebs",
    "amzn2-ami-hvm-2.0.20220310.0-x86_64-gp2",
    "amzn2-ami-hvm-2.0.20220310.0-x86_64-ebs",
    "amzn2-ami-hvm-2.0.20220121.0-x86_64-gp2"
]

完了確認

「AMI情報のうち、作成時期が"2022-*"の情報を抽出できている。」ことを確認します。

注釈

処理の実行で取得できていればOKです。

手順の完了