dullwhaleのメモ帳

何度も同じことを調べなくてよいように...

AWS CLIで各種リソースをリスト出力する

あまりよく考えずに作ったから、もっと短くしたり、効率的にしたりできそう。

EC2 インスタンス

aws ec2 describe-instances --query 'Reservations[].Instances[]' | jq --raw-output --monochrome-output '.[] | [.InstanceId, (.Tags[] | select(.Key == "Name").Value), .InstanceType, .State.Name] | @tsv'

RDS インスタンス

# 識別子、インスタンスタイプ、DBエンジン、マルチAZか否かを出力
aws rds describe-db-instances --query 'DBInstances' | jq --raw-output --monochrome-output '.[] | [.DBInstanceIdentifier, .DBInstanceClass, .Engine, .MultiAZ] | @tsv' 

# 識別子、DBエンジン、DBエンジンのバージョンを出力
aws rds describe-db-instances --query 'DBInstances' | jq --raw-output --monochrome-output '.[] | [.DBInstanceIdentifier, .Engine, .EngineVersion] | @tsv'

ECS Fargate

while IFS='!' read cls task; do echo aws ecs describe-tasks --query "'tasks[*].[clusterArn,group,attributes[?name==\`ecs.cpu-architecture\`].value | [0],cpu,memory]'" --output text --cluster "${cls}" --tasks "${task}"; done < <(aws ecs list-clusters --output text | sed 's|.*:cluster/||' | xargs -L 1 -P 16 -I {} bash -c "aws ecs list-tasks --output text --cluster {} | sed 's|.*\t||' | paste -s -d ' ' - | sed -e 's|^|{}\!|'") | bash | sort | awk 'BEGIN{OFS="\t";print "cluster\tservice\tCPU-arch\tvCPU\tmemory"}{ sub(/.*:cluster\//,"", $1);sub(/service:/,"",$2);print}'