AWS CLIでは、実行時のオプションで取得する情報を選択したり、フォーマットを変更したりできます。
うまく使いこなせれば、必要な情報だけを取得して確認できるし、スクリプトでちょっとした処理を実行するのも簡単にできるはず。
よく使う実行オプション
--output {json|text|table}
--region {<region>}
--filter
--query
--profile 別プロファイルでの実行(ユーザー、表示形式、region等のセット)
--region {<region>}
コマンド実行の対象となるRegionを指定。
指定しない場合はデフォルトのRegion($HOME/.aws/config
で指定)が使われる。
以下のRegionが指定できる。
$ aws ec2 describe-regions --output table
----------------------------------------------------------
| DescribeRegions |
+--------------------------------------------------------+
|| Regions ||
|+-----------------------------------+------------------+|
|| Endpoint | RegionName ||
|+-----------------------------------+------------------+|
|| ec2.eu-central-1.amazonaws.com | eu-central-1 ||
|| ec2.sa-east-1.amazonaws.com | sa-east-1 ||
|| ec2.ap-northeast-1.amazonaws.com | ap-northeast-1 ||
|| ec2.eu-west-1.amazonaws.com | eu-west-1 ||
|| ec2.us-east-1.amazonaws.com | us-east-1 ||
|| ec2.us-west-1.amazonaws.com | us-west-1 ||
|| ec2.us-west-2.amazonaws.com | us-west-2 ||
|| ec2.ap-southeast-2.amazonaws.com | ap-southeast-2 ||
|| ec2.ap-southeast-1.amazonaws.com | ap-southeast-1 ||
|+-----------------------------------+------------------+|
--output {json|text|table}
コマンド実行結果の出力形式を指定。
指定しない場合は、$HOME/.aws/config
に定義されたフォーマットで出力される。
JSON、TEXT、Table形式で出力できるが、個人的にはJSON形式が一番見やすいし、jq
コマンドと組み合わせれば必要な情報だけに絞って取得するのも簡単なのでおすすめ。
Text形式
$ aws ec2 describe-vpcs --output text
VPCS 172.31.0.0/16 dopt-c5a7bca7 default True available vpc-9f1fc8fa
VPCS 10.0.0.0/16 dopt-c5a7bca7 default False available vpc-2ce93449
TAGS Name aws_book_vpc
Table形式
$ aws ec2 describe-vpcs --output table
---------------------------------------------------------------------------------------------------
| DescribeVpcs |
+-------------------------------------------------------------------------------------------------+
|| Vpcs ||
|+---------------+----------------+------------------+------------+-------------+----------------+|
|| CidrBlock | DhcpOptionsId | InstanceTenancy | IsDefault | State | VpcId ||
|+---------------+----------------+------------------+------------+-------------+----------------+|
|| 172.31.0.0/16| dopt-c5a7bca7 | default | True | available | vpc-9f1fc8fa ||
|+---------------+----------------+------------------+------------+-------------+----------------+|
|| Vpcs ||
|+-------------+----------------+-------------------+-------------+-------------+----------------+|
|| CidrBlock | DhcpOptionsId | InstanceTenancy | IsDefault | State | VpcId ||
|+-------------+----------------+-------------------+-------------+-------------+----------------+|
|| 10.0.0.0/16| dopt-c5a7bca7 | default | False | available | vpc-2ce93449 ||
|+-------------+----------------+-------------------+-------------+-------------+----------------+|
||| Tags |||
||+------------------------------+--------------------------------------------------------------+||
||| Key | Value |||
||+------------------------------+--------------------------------------------------------------+||
||| Name | aws_book_vpc |||
||+------------------------------+--------------------------------------------------------------+||
JSON形式
$ aws ec2 describe-vpcs --output json
{
"Vpcs": [
{
"VpcId": "vpc-9f1fc8fa",
"InstanceTenancy": "default",
"State": "available",
"DhcpOptionsId": "dopt-c5a7bca7",
"CidrBlock": "172.31.0.0/16",
"IsDefault": true
},
{
"VpcId": "vpc-2ce93449",
"InstanceTenancy": "default",
"Tags": [
{
"Value": "aws_book_vpc",
"Key": "Name"
}
],
"State": "available",
"DhcpOptionsId": "dopt-c5a7bca7",
"CidrBlock": "10.0.0.0/16",
"IsDefault": false
}
]
}
jq
コマンドにパイプして使うと便利。jq
を使うと、
- colarcodedされる
- 値の検索が簡単
$ aws ec2 describe-vpcs --output json | jq '.Vpcs[].VpcId'
"vpc-9f1fc8fa"
"vpc-2ce93449"
--filters
検索条件を指定して検索。
ある項目が特定の値であるという条件に合致する、サービスやリソースの情報を取得することができる。
定義できるFilterの条件は、Referenceの--filters
の項を参照。
例えば aws ec2 describe-vpcs
で指定できるFilterは、以下に記載されている。
describe-vpcs — AWS CLI 1.7.24 documentation
実行例
$ aws ec2 describe-vpcs --filters "Name=cidr,Values=10.0.0.0/16"
{
"Vpcs": [
{
"VpcId": "vpc-2ce93449",
"InstanceTenancy": "default",
"Tags": [
{
"Value": "vpc-awsbook",
"Key": "Name"
}
],
"State": "available",
"DhcpOptionsId": "dopt-c5a7bca7",
"CidrBlock": "10.0.0.0/16",
"IsDefault": false
}
]
}
--query
出力結果のに含める項目の絞り込み。
サービスやリソースの、特定の項目の情報だけ取得することができる。
定義できるQueryの条件は、ReferenceのOutput
の項を参照。
例えば aws ec2 describe-vpcs
で指定できるQueryは、以下に記載されている。
describe-vpcs — AWS CLI 1.7.24 documentation
実行例
$ aws ec2 describe-vpcs --query 'Vpcs[].VpcId[]'
[
"vpc-6d11cc08",
"vpc-9f1fc8fa",
"vpc-2ce93449"
]
--filters
と--query
は組み合わせて使うと便利。
$ aws ec2 describe-vpcs --filters "Name=cidr,Values=10.0.0.0/16" --query 'Vpcs[].VpcId[]'
[
"vpc-2ce93449"
]