AWS CLI の使い方を 1 から教えるシリーズ 2 回目。前回 は AWS CLI のインストール方法と初期設定について紹介しました。
-
AWS CLI入門
AWS CLI をの使い方を教える機会があったのでそのときのメモを残しておきます。AWS をコマンドラインで操作すること ...
続きを見る
今回はフィルタの使い方を紹介します。
目次
フィルタとは
AWS CLI を使って情報を参照する describe 系のサブコマンドは --filters
オプションを指定して情報の絞込ができます。
まずは filters オプションを指定しない例を見ていきましょう。サブネットを一覧表示する describe-subnets をそのまま実行した場合は、すべてのサブネットが返されます。
aws ec2 describe-subnets
{
"Subnets": [
{
"AvailabilityZone": "ap-northeast-1c",
"AvailableIpAddressCount": 4091,
"CidrBlock": "172.31.0.0/20",
"DefaultForAz": true,
"MapPublicIpOnLaunch": true,
"State": "available",
"SubnetId": "subnet-30e19d68",
"VpcId": "vpc-49ee852d",
"AssignIpv6AddressOnCreation": false,
"Ipv6CidrBlockAssociationSet": []
},
...
]
}
次に filters オプションで表示する情報を絞り込む例を見てみましょう。以下は --filters
オプションで CIDR ブロックが 172.31.16.0/20 のものだけを表示する例です。
aws ec2 describe-subnets --filters "Name=cidr-block,Values=172.31.16.0/20"
{
"Subnets": [
{
"AvailabilityZone": "ap-northeast-1a",
"AvailableIpAddressCount": 4088,
"CidrBlock": "172.31.16.0/20",
"DefaultForAz": true,
"MapPublicIpOnLaunch": true,
"State": "available",
"SubnetId": "subnet-03714e75",
"VpcId": "vpc-49ee852d",
"AssignIpv6AddressOnCreation": false,
"Ipv6CidrBlockAssociationSet": []
}
]
}
フィルタで使えるキーは help コマンドで探す
検索に使えるキーは help コマンドで調べます。cidr-block は cidrBlock や cidr というキーも設定できることが分かります。とりあえず、出力結果に表示されるキーを小文字にして単語をハイフンで区切ると覚えておけば大丈夫です。
aws ec2 describe-subnets help
...
OPTIONS
--filters (list)
One or more filters.
o availabilityZone - The Availability Zone for the subnet. You can
also use availability-zone as the filter name.
o available-ip-address-count - The number of IPv4 addresses in the
subnet that are available.
o cidrBlock - The IPv4 CIDR block of the subnet. The CIDR block you
specify must exactly match the subnet's CIDR block for information
to be returned for the subnet. You can also use cidr or cidr-block
as the filter names.
...
Shorthand Syntax:
Name=string,Values=string,string ...
...
利用できないキーを指定すると以下のようなエラーになります。
aws ec2 describe-subnets --filters "Name=AvailabilityZone,Values=ap-northeast-1a"
An error occurred (InvalidParameterValue) when calling the DescribeSubnets operation: The filter 'AvailabilityZone' is invalid
ワイルドカード検索
アスタリスクで前方一致などワイルドカード検索ができます。以下は cidr-block
を 172.31.16
で前方一致検索している例です。部分一致や後方一致もできます。
aws ec2 describe-subnets --filters "Name=cidr-block,Values=172.31.16*"
{
"Subnets": [
{
"AvailabilityZone": "ap-northeast-1a",
"AvailableIpAddressCount": 4088,
"DefaultForAz": true,
"Ipv6CidrBlockAssociationSet": [],
"VpcId": "vpc-49ee852d",
"State": "available",
"MapPublicIpOnLaunch": true,
"SubnetId": "subnet-03714e75",
"CidrBlock": "172.31.16.0/20",
"AssignIpv6AddressOnCreation": false
}
]
}
タグで検索
タグで検索をすることもできます。以下は Name
というキーの値が public-subnet
であるものを検索する例です。一つ前で紹介したワイルドカード検索と組み合わせると便利です。
aws ec2 describe-subnets --filter 'Name=tag:Name,Values=public-subnet'
{
"Subnets": [
{
"AvailabilityZone": "ap-northeast-1b",
"AvailableIpAddressCount": 4088,
"DefaultForAz": true,
"Ipv6CidrBlockAssociationSet": [],
"VpcId": "vpc-0dfc2cc54eb770f90",
"State": "available",
"MapPublicIpOnLaunch": true,
"SubnetId": "subnet-07832675f0f29c993",
"CidrBlock": "192.168.96.0/19",
"AssignIpv6AddressOnCreation": false,
"Tags": [
{
"Key": "Name",
"Value": "public-subnet"
}
]
}
]
}
and 検索
filters のあとにスペース区切りで検索条件を追加すると and 検索になります。
aws ec2 describe-subnets --filters \
"Name=cidr-block,Values=172.31*" \
"Name=availability-zone,Values=ap-northeast-1c"
{
"Subnets": [
{
"AvailabilityZone": "ap-northeast-1c",
"AvailableIpAddressCount": 4091,
"DefaultForAz": true,
"Ipv6CidrBlockAssociationSet": [],
"VpcId": "vpc-49ee852d",
"State": "available",
"MapPublicIpOnLaunch": true,
"SubnetId": "subnet-30e19d68",
"CidrBlock": "172.31.0.0/20",
"AssignIpv6AddressOnCreation": false
}
]
}
or 検索
Values にカンマ区切りで値を追加すると、or 検索になります
aws ec2 describe-subnets --filters "Name=cidr-block,Values=172.31.16*,172.31.0*"
{
"Subnets": [
{
"AvailabilityZone": "ap-northeast-1c",
"AvailableIpAddressCount": 4091,
"DefaultForAz": true,
"Ipv6CidrBlockAssociationSet": [],
"VpcId": "vpc-49ee852d",
"State": "available",
"MapPublicIpOnLaunch": true,
"SubnetId": "subnet-30e19d68",
"CidrBlock": "172.31.0.0/20",
"AssignIpv6AddressOnCreation": false
},
{
"AvailabilityZone": "ap-northeast-1a",
"AvailableIpAddressCount": 4088,
"DefaultForAz": true,
"Ipv6CidrBlockAssociationSet": [],
"VpcId": "vpc-49ee852d",
"State": "available",
"MapPublicIpOnLaunch": true,
"SubnetId": "subnet-03714e75",
"CidrBlock": "172.31.16.0/20",
"AssignIpv6AddressOnCreation": false
}
]
}
次回は Query の使い方を説明します。
-
AWS CLIのクエリの使い方
AWS CLI の使い方を 1 から教えるシリーズ 3 回目。前回はフィルタをやりました 今回はクエリの使い方を紹介しま ...
続きを見る