コンテンツにスキップ

AWS CLI

AWS CLI は、AWS リソースをコマンドラインから参照・操作するための基本ツール。

まず押さえたいこと

  • 認証情報と profile を整理して使う
  • まずは参照系コマンドを安定して打てるようにする
  • --query--output を使うと見やすくなる

profile の基本

aws configure --profile dev
aws configure list --profile dev
aws sts get-caller-identity --profile dev

メモ:

  • まず get-caller-identity で「今どの認証情報を使っているか」を確認する癖を付ける
  • 複数アカウントを触るなら profile 名を揃えると楽

実務でよく使う流れ

1. profile / identity を確認する
2. describe 系で対象リソースを探す
3. --query で必要な項目だけ抜く
4. --output table / text で見やすくする

よく使う参照コマンド

共通

aws configure list
aws sts get-caller-identity
aws ec2 describe-regions

EC2 / VPC

aws ec2 describe-instances
aws ec2 describe-vpcs
aws ec2 describe-subnets
aws ec2 describe-security-groups
aws ec2 describe-route-tables

よく使う例:

aws ec2 describe-instances \
  --query "Reservations[].Instances[].{Id:InstanceId,State:State.Name,Type:InstanceType}" \
  --output table

aws ec2 describe-security-groups \
  --filters Name=ip-permission.from-port,Values=22 Name=ip-permission.cidr,Values='0.0.0.0/0' \
  --query "SecurityGroups[*].[GroupName]" \
  --output text

S3

aws s3 ls
aws s3api list-buckets
aws s3api get-bucket-versioning --bucket <bucket-name>

よく使う例:

aws s3api list-buckets --query "Buckets[].Name"
aws s3api get-bucket-versioning --bucket <bucket-name>

IAM

aws iam list-roles
aws iam list-users
aws iam get-role --role-name <role-name>

よく使う例:

aws sts get-caller-identity
aws iam get-role --role-name <role-name> --query "Role.Arn" --output text

CloudWatch / CloudTrail

aws cloudwatch list-metrics
aws logs describe-log-groups
aws cloudtrail describe-trails

ECS / EKS

aws ecs list-clusters
aws ecs list-services --cluster <cluster-name>
aws eks list-clusters
aws eks describe-cluster --name <cluster-name>

見やすくする例

aws ec2 describe-instances --query "Reservations[].Instances[].InstanceId" --output text
aws s3api list-buckets --query "Buckets[].Name" --output table

実務でよく使う --query

  • 1 項目だけ抜く
  • 配列を表形式で見る
  • ネストした JSON から必要項目だけ切り出す

例:

aws ec2 describe-subnets \
  --query "Subnets[].{Id:SubnetId,Cidr:CidrBlock,Az:AvailabilityZone}" \
  --output table

aws logs describe-log-groups \
  --query "logGroups[].logGroupName" \
  --output text

公式ドキュメント

メモ

  • まずは describe 系で状況確認できるようになると実務でかなり使いやすい
  • query を使えるようになると、コンソールを開かずにかなりの確認ができる