たびたび同じようなことを調べている気がするので、忘れないようにまとめておきます。ちょっとしたことをするたびに追記していきたい。
前提条件
- unix系の環境
- 以下のツールなどがインストール済み
- awscli
- jq
ec2
"hoge-xx" という名前の起動中インスタンスを全部停止する
$ aws ec2 describe-instances --filters "Name=tag:Name,Values=hoge-*" "Name=instance-state-name,Values=running" | jq '.Reservations[].Instances[].InstanceId' | xargs -I{} aws ec2 stop-instances --instance-ids {} | jq -c .
"hoge-xx" という名前の停止中インスタンスを全部起動する
$ aws ec2 describe-instances --filters "Name=tag:Name,Values=hoge-*" "Name=instance-state-name,Values=stopped" | jq '.Reservations[].Instances[].InstanceId' | xargs -I{} aws ec2 start-instances --instance-ids {} | jq -c .
"hoge-xx" という名前の起動中インスタンスのパブリックIP一覧を出力する
$ aws ec2 describe-instances --filters "Name=tag:Name,Values=hoge-*" "Name=instance-state-name,Values=running" | jq '.Reservations[].Instances[].PublicIpAddress'
DNS名一覧のほうが有用かも。
route53
任意のゾーンのAレコード一覧を出力する
$ aws route53 list-resource-record-sets --hosted-zone-id xxxxxxxxxxxxxx | jq -r '.ResourceRecordSets[] | select(.Type == "A") | .Name'