AMI情報のうち、特定のノード('Name'を抽出します。
手順に必要な設定値を変数に格納をします。
リージョンを指定します。
環境変数の設定: export AWS_DEFAULT_REGION='ap-northeast-1'
環境変数の設定:
export AWS_DEFAULT_REGION='ap-northeast-1'
各変数に正しい設定値が格納されていることを確認します。
変数の確認: cat << END # 0. AWS_DEFAULT_REGION:"ap-northeast-1" AWS_DEFAULT_REGION="${AWS_DEFAULT_REGION}" END
変数の確認:
cat << END # 0. AWS_DEFAULT_REGION:"ap-northeast-1" AWS_DEFAULT_REGION="${AWS_DEFAULT_REGION}" END
各変数について、上の行と下の行の値の内容もしくは形式が同じであることを確認します。 もし異なる場合は、それぞれの手順番号に戻って変数の設定を行います。
(特になし)
AMIの名前一覧(JSON形式)を出力します。
コマンド: 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' 結果(例): [ "bottlerocket-aws-k8s-1.23-x86_64-v1.9.1-614cec9b", "Cloud9Default-2022-08-26T15-44", "Cloud9AmazonLinux2-2022-08-18T14-02", "Cloud9AmazonLinux2-2022-08-23T11-43", "Cloud9AmazonLinux2-2022-08-22T11-41", (略) "amazon-eks-node-1.19-v20220824" ]
コマンド:
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'
結果(例):
[ "bottlerocket-aws-k8s-1.23-x86_64-v1.9.1-614cec9b", "Cloud9Default-2022-08-26T15-44", "Cloud9AmazonLinux2-2022-08-18T14-02", "Cloud9AmazonLinux2-2022-08-23T11-43", "Cloud9AmazonLinux2-2022-08-22T11-41", (略) "amazon-eks-node-1.19-v20220824" ]
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" \ --output text 結果(例): Cloud9Default-2022-08-12T14-51 aws-elasticbeanstalk-amzn-2.0.20220719.64bit-eb_nodejs12_amazon_linux_2-hvm-2022-08-03T18-38 Cloud9AmazonLinux2-2022-08-23T11-43 Cloud9AmazonLinux2-2022-08-04T13-39 Cloud9Default-2022-08-08T15-48Cloud9AmazonLinux2-2022-08-23T05-52 Cloud9Default-2022-08-18T13-56 amazon-eks-gpu-node-1.23-v20220811 (略)
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" \ --output text
Cloud9Default-2022-08-12T14-51 aws-elasticbeanstalk-amzn-2.0.20220719.64bit-eb_nodejs12_amazon_linux_2-hvm-2022-08-03T18-38 Cloud9AmazonLinux2-2022-08-23T11-43 Cloud9AmazonLinux2-2022-08-04T13-39 Cloud9Default-2022-08-08T15-48Cloud9AmazonLinux2-2022-08-23T05-52 Cloud9Default-2022-08-18T13-56 amazon-eks-gpu-node-1.23-v20220811 (略)
注釈
1行で出力される。(変数に格納した上でfor文などで使うには問題ない)
AMIの名前一覧を配列(JSON形式)で出力します。
コマンド: 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]" 結果(例): [ [ "bottlerocket-aws-k8s-1.22-x86_64-v1.9.1-614cec9b" ], [ "amazon-eks-gpu-node-1.20-v20220824" ], [ "amazon-eks-gpu-node-1.23-v20220802" ], (略) [ "amazon-eks-gpu-node-1.20-v20220811" ] ]
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]"
[ [ "bottlerocket-aws-k8s-1.22-x86_64-v1.9.1-614cec9b" ], [ "amazon-eks-gpu-node-1.20-v20220824" ], [ "amazon-eks-gpu-node-1.23-v20220802" ], (略) [ "amazon-eks-gpu-node-1.20-v20220811" ] ]
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]" \ --output text 結果(例): Cloud9Default-2022-08-10T10-23 amazon-eks-gpu-node-1.22-v20220802 aws-elasticbeanstalk-amzn-2.0.20220719.64bit-eb_nodejs12_amazon_linux_2-hvm-2022-08-03T18-38 amazon-eks-gpu-node-1.21-v20220824 (略) Cloud9AmazonLinux2-2022-08-09T03-51
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]" \ --output text
Cloud9Default-2022-08-10T10-23 amazon-eks-gpu-node-1.22-v20220802 aws-elasticbeanstalk-amzn-2.0.20220719.64bit-eb_nodejs12_amazon_linux_2-hvm-2022-08-03T18-38 amazon-eks-gpu-node-1.21-v20220824 (略) Cloud9AmazonLinux2-2022-08-09T03-51
行単位で出力されるため、視認性が高く、ファイル保存して再利用しやすい。
「AMI情報のうち、特定の部分を抽出することができている。」ことを確認します。
処理の実行で取得できていればOKです。