インスタンスが増えてくるとずっと止まりっぱなしで放置されているものもあるので、消すものを探す時の手助け的に。
ワンライナーといわれれば、ワンライナーって感じですね。
(実行環境はMac)
今回はあえて jq を使わずに、 --query
のみで書きました。
AWS CLI公式ドキュメント
コマンド
$ ago=30;date -v-${ago}d > /dev/null 2>&1 && DATE=`date -v-${ago}d +%Y-%m-%d` || DATE=`date --date="-${ago} days" +%Y-%m-%d`; aws ec2 describe-instances --filter Name=instance-state-name,Values=stopped --query "Reservations[].Instances[?LaunchTime<='$DATE'][].{InstanceId: InstanceId,PrivateIpAddress: PrivateIpAddress,LaunchTime: LaunchTime}"
出力
[
{
"InstanceId": "i-4xxxxxb5",
"LaunchTime": "2015-08-02T16:31:32.000Z",
"PrivateIpAddress": "172.31.0.200"
},
{
"InstanceId": "i-dxxxxx2e",
"LaunchTime": "2015-06-20T09:32:45.000Z",
"PrivateIpAddress": "172.31.0.79"
}
]
一応
$ echo $DATE
>> 2015-08-18
60日以上前に起動されたインスタンス取得したい場合とか
最初の ago=30
の部分を ago=60
とかに変更すれば 60日前に起動された インスタンスを取得できます。
その時の実行結果
[
{
"InstanceId": "i-dxxxxx2e",
"LaunchTime": "2015-06-20T09:32:45.000Z",
"PrivateIpAddress": "172.30.0.79"
}
]
一応、日付の確認
$ echo $DATE
2015-07-19
さいごに
パラメーター色々変えたりすればできます。あと、パースは jq 使ったほうが便利ですね。
本当は、StateTransitionReason
とかみてもっと色々できるのかもしれません。