AWS CLIコマンドは色々な情報を取得できたり、設定できたります。--filterオプションを指定することで、限定した情報を取得できます。
1. AWS CLIコマンドのバージョンアップをしよう
AWS CLIコマンドをバージョンアップしましょう。以下のコマンドで可能です
curl https://awscli.amazonaws.com/awscli-exe-linux-x86_64.zip -o "awscliv2.zip" unzip -q awscliv2.zip sudo ./aws/install --update aws --version aws-cli/2.17.17 Python/3.11.8 Linux/5.10.218-208.862.amzn2.x86_64 exe/x86_64.amzn.2 #2024/07/25現在バージョンは、2.17.17のようです。日々更新されます。 インストール(update)すると /usr/local/aws-cli/v2/にインストールされます。 (myapp) [v2]$pwd /usr/local/aws-cli/v2 (myapp) [v2]$ls -al total 0 drwxr-xr-x 11 root root 148 Jul 25 08:48 . drwxr-xr-x 3 root root 16 Mar 2 2022 .. drwxr-xr-x 4 root root 29 Jul 15 09:47 2.17.11 drwxr-xr-x 4 root root 29 Jul 16 08:40 2.17.12 drwxr-xr-x 4 root root 29 Jul 17 09:07 2.17.13 drwxr-xr-x 4 root root 29 Jul 19 09:04 2.17.14 drwxr-xr-x 4 root root 29 Jul 25 09:04 2.17.17 lrwxrwxrwx 1 root root 29 Jul 25 08:48 current -> /usr/local/aws-cli/v2/2.17.17 current 以外はいらないのでバージョンアップ後は、消去しまょう。 cd /usr/local/aws-cli/v2 sudo rm -rf 2.17.1[1-4]* (myapp) [v2]$ls -al total 0 drwxr-xr-x 3 root root 36 Jul 25 15:00 . drwxr-xr-x 3 root root 16 Mar 2 2022 .. drwxr-xr-x 4 root root 29 Jul 25 08:48 2.17.17 lrwxrwxrwx 1 root root 29 Jul 25 08:48 current -> /usr/local/aws-cli/v2/2.17.17
図A AWS構成図
2. aws ec2 describe-instances コマンドにfiltersオプションを利用しよう
aws ec2 describe-instancesコマンドを実行すると、リージョンにあるすべてのインスタンス情報が出力されます。特定のインスタンスに絞りたい場合にfiltersオプションを使用します。
https://docs.aws.amazon.com/cli/latest/reference/ec2/describe-instances.html にあるように、filtersのformatをきちんと書かないと機能しません。例 インスタンスタイプを指定 instance-type - The type of instance (for example, t2.micro ).例 インスタンスの状態を指定 instance-state-name - The state of the instance (pending | running | shutting-down | terminated | stopping | stopped ).
コマンド実行例(コマンド実行結果のjson形式を jqで成形しています。例1 インスタンスタイプ(t3a.micro)のみを出力 aws ec2 describe-instances \ --filters Name=instance-type,Values=t3a.micro | jq .例2 インスタンスタイプ(t3a.micro 又は t3.micro)を出力 aws ec2 describe-instances \ --filters Name=instance-type,Values=t3a.micro ,t3.micro | jq .例3 インスタンスの状態(running 又は stopped)を出力 aws ec2 describe-instances \ --filters Name=instance-state-name,Values=running ,stopped | jq .
コマンド実行結果例1 インスタンスタイプ(t3a.micro)のみを出力 一部分のみ掲載 { "Reservations": [ { "Groups": [], "Instances": [ { "AmiLaunchIndex": 0, "ImageId": "ami-08a8688fb7eacb171", "InstanceId": "i-05675b6cc326f4f74", "InstanceType": "t3a.micro ", "KeyName": "xxxxxxxx", "LaunchTime": "2024-04-02T05:17:12+00:00", "Monitoring": { "State": "disabled" }, "Placement": { "AvailabilityZone": "ap-northeast-1a", "GroupName": "", "Tenancy": "default" }, "PrivateDnsName": "ip-10-128-1-247.ap-northeast-1.compute.internal", "PrivateIpAddress": "10.128.1.247" "Tags": [$ {$ "Key": "Name",$ "Value": "kami_linux2023_private"$ }$ ]例2 インスタンスタイプ(t3a.micro 又は t3.micro)を出力 一部分のみ掲載 { "Reservations": [ { "Groups": [], "Instances": [ { "AmiLaunchIndex": 0, "ImageId": "ami-08a8688fb7eacb171", "InstanceId": "i-05675b6cc326f4f74", "InstanceType": "t3a.micro " , "KeyName": "xxxxxxxx", "LaunchTime": "2024-04-02T05:17:12+00:00", "Monitoring": { "State": "disabled" { "Groups": [], "Instances": [ { "AmiLaunchIndex": 0, "ImageId": "ami-0310b105770df9334", "InstanceId": "i-018e4c7f659184e7f", "InstanceType": "t3.micro ", "KeyName": "xxxxxxx", "LaunchTime": "2023-09-03T03:38:58+00:00", "Monitoring": { "State": "disabled" },例3 インスタンスの状態(running 又は stopped)を出力 一部分のみ掲載 { "Reservations": [ { "Groups": [], "Instances": [ { "AmiLaunchIndex": 0, "ImageId": "ami-0d7ed3ddb85b521a6", "InstanceId": "i-0e94a2aa06d28736e", "InstanceType": "t2.micro", "ProductCodes": [], "PublicDnsName": "", "State": { "Code": 80, "Name": "stopped " } { "Groups": [], "Instances": [ { "AmiLaunchIndex": 0, "ImageId": "ami-00293610a82b21a10", "InstanceId": "i-02198703d20356dba", "InstanceType": "t3a.micro", "KeyName": "xxxxxxxx", "LaunchTime": "2024-07-24T23:24:21+00:00", "Monitoring": { "State": "disabled" }, "Placement": { "AvailabilityZone": "ap-northeast-1a", "GroupName": "", "Tenancy": "default" "State": { "Code": 16, "Name": "running " },
コマンド実行例例4 インスタンスタイプ(t3.micro) かつ stoppedのインスタンスを出力 aws ec2 describe-instances \ --filters Name=instance-type,Values=t3.micro \ Name=instance-state-name,Values=stopped | jq .
コマンド実行結果例4 インスタンスタイプ(t3.micro) かつ stoppedのインスタンスを出力 一部分のみ掲載 { "Reservations": [ { "Groups": [], "Instances": [ { "AmiLaunchIndex": 0, "ImageId": "ami-004a6f4a292bb996e", "InstanceId": "i-0e2c92ce760e2e474", "InstanceType": "t3.micro ", "KeyName": "xxxxxxxx", "LaunchTime": "2024-07-29T02:39:09+00:00", "Monitoring": { "State": "disabled" }, "Placement": { "AvailabilityZone": "ap-northeast-1a", "GroupName": "", "Tenancy": "default" }, "PrivateIpAddress": "10.128.1.151", "ProductCodes": [], "PublicDnsName": "", "State": { "Code": 80, "Name": "stopped " }