Edited at

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

More than 1 year has passed since last update.


前提

$ 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