handson(light): aws cli output

1.2.1. AMIの情報抽出 (JMESPath: 条件指定)

手順の目的

AMI情報のうち、特定の条件に該当するものを抽出します。

設定値の指定

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

0. リージョン

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

環境変数の設定:

export AWS_DEFAULT_REGION='ap-northeast-1'

1. AMI名

AMI名を指定します。

変数の指定:

EC2_IMAGE_NAME='amzn2-ami-hvm-2.0.20220805.0-x86_64-gp2'

設定値の確認

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

変数の確認:

cat << END

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

  # 1. EC2_IMAGE_NAME:"amzn2-ami-hvm-2.0.20220805.0-x86_64-gp2"
       EC2_IMAGE_NAME="${EC2_IMAGE_NAME}"

END

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

処理の実行

(特になし)

AWS CLIリソースの作成

名前が'amzn2-ami-hvm-2.0.20220805.0-x86_64-gp2'の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 \
  --query "Images[?Name == \`${EC2_IMAGE_NAME}\`]"

結果(例):

[
    {
        "Architecture": "x86_64",
        "CreationDate": "2022-08-17T23:34:46.000Z",
        "ImageId": "ami-0b069de314c9ab4c4",
        "ImageLocation": "amazon/amzn2-ami-hvm-2.0.20220805.0-x86_64-gp2",
        "ImageType": "machine",
        "Public": true,
        "OwnerId": "137112412989",
        "PlatformDetails": "Linux/UNIX",
        "UsageOperation": "RunInstances",
        "State": "available",
        "BlockDeviceMappings": [
            {
                "DeviceName": "/dev/xvda",
                "Ebs": {
                    "DeleteOnTermination": true,
                    "SnapshotId": "snap-0ce6ee9153bd6f8b7",
                    "VolumeSize": 8,
                    "VolumeType": "gp2",
                    "Encrypted": false
                }
            }
        ],
        "Description": "Amazon Linux 2 AMI 2.0.20220805.0 x86_64 HVM gp2",
        "EnaSupport": true,
        "Hypervisor": "xen",
        "ImageOwnerAlias": "amazon",
        "Name": "amzn2-ami-hvm-2.0.20220805.0-x86_64-gp2",
        "RootDeviceName": "/dev/xvda",
        "RootDeviceType": "ebs",
        "SriovNetSupport": "simple",
        "VirtualizationType": "hvm",
        "DeprecationTime": "2024-08-17T23:34:46.000Z"
    }
]

完了確認

「AMI情報のうち、特定の部分を抽出することができている。」ことを確認します。

注釈

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

手順の完了