前提
-
aws cliのインストール
awscliインストール -
jqのインストール
$ 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