AWS CLIでよく使うコマンド集

  • 6
    いいね
  • 0
    コメント

前提

$ sudo curl -o /usr/local/bin/jq -L https://github.com/stedolan/jq/releases/download/jq-1.5/jq-linux64 && sudo chmod +x /usr/local/bin/jq
  • aws configureでアクセスキーを登録
$ aws configure
AWS Access Key ID [****************]:
AWS Secret Access Key [****************]:

EC2

一覧取得

  • インスタンスID・タグ名(Key=Name)を一覧出力
    ※--queryオプションを使うと、返却する要素のselectと、フィルタ条件を付けられる。 ここでは、ResourceTypeが "instance" の インスタンスIDとNameタグを取得。
$ aws ec2 describe-tags --query 'Tags[?ResourceType==`instance`] | [?Key==`Name`].{ResourceId:ResourceId,ResourceName:Value}' --output table
  • インスタンスID・パブリックIP・プライベートIPを一覧出力
    ※インスタンスIDがNULLの物は除外
$ aws ec2 describe-addresses --query 'Addresses[?InstanceId!=`null`].[InstanceId,PublicIp,PrivateIpAddress]'  --output table
  • インスタンスID・インスタンスタイプ・タグ名(Key=Name)を一覧出力
    ※インスタンスの状態がrunningの物だけを対象
$ aws ec2 describe-instances --filter "Name=instance-state-name,Values=running" --query 'Reservations[].Instances[].[InstanceId,InstanceType,Tags[?Key==`Name`].Value]' --output text

条件指定

  • 特定のインスタンスIDからパブリックIP・プライベートIP・タグ名(Key=Name)・インスタンスタイプを一覧出力
$ INSTANCE_ID=XXXXX
$ aws ec2 describe-instances --instance-ids ${INSTANCE_ID} --query 'Reservations[].Instances[].[PublicIpAddress,PrivateIpAddress,Tags[?Key==`Name`].Value,InstanceType]' --output table
  • 特定のタグ名からパブリックIP・プライベートIP・タグ名(Key=Name)・インスタンスタイプを一覧出力
$ INSTANCE_TAG="XXXXX"
$ aws ec2 describe-instances --filter "Name=tag:Name,Values=${INSTANCE_TAG}" --query 'Reservations[].Instances[].[PublicIpAddress,PrivateIpAddress,Tags[?Key==`Name`].Value,InstanceType]' --output table

セキュリティグループ

一覧取得

  • セキュリティグループ名とグループIDを一覧出力
$ aws ec2 describe-security-groups --query "SecurityGroups[].[GroupName,GroupId]" --output table
  • セキュリティグループ毎に関連付いたEC2インスタンスの一覧を出力
declare -a SECG=$(aws ec2 describe-security-groups | jq '.SecurityGroups[].GroupName')
for secg in ${SECG[@]}; do
  echo "### SecurityGroupName: "$secg" ###"
  aws ec2 describe-instances | jq -r '.Reservations[].Instances[] | select(.SecurityGroups[].GroupName=='$secg') | [.InstanceId, .Tags[].Value] | @csv'
  echo "-----"
done

ALB(Application Load Balancer)

一覧取得

  • ロードバランサー名・DNS名・ARNを一覧出力
$ aws elbv2 describe-load-balancers --query "LoadBalancers[].[LoadBalancerName,DNSName,LoadBalancerArn]"

条件指定

  • 特定のロードバランサーの情報を出力
$ LB_NAME="XXXXX"
$ aws elbv2 describe-load-balancers --names ${LB_NAME}

RDS

一覧取得

  • RDS名・DBエンジン・インスタンスのクラス・エンドポイントを一覧出力
$ aws rds describe-db-instances --query "DBInstances[].[DBInstanceIdentifier,Engine,DBInstanceClass,Endpoint.[Address]]"

S3

一覧取得

  • S3バケット一覧を出力
$ aws s3api list-buckets --query Buckets[].Name --output table