AWS CLI filterを理解する

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構成図
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"
}