はじめに
間違って EC2 インスタンス起動しっぱなしにしたことありませんか。僕もそのうちの一人です。
AWS に連絡したら初回だからか料金を無料にしてくれましたが、次はなさそうなので再発しないように何とか食い止めたいなと思いました。そこで AWS コンソールを見に行かなくても起動しているかどうかを確認できるスクリプトを書いてみました!
コマンド
aws ec2 describe-instances \
--query 'Reservations[*].Instances[*].{
InstanceId:InstanceId,
Name:State.Name
}' \
--output table
コマンド詳細
-
aws ec2 describe-instances
というコマンドですべての EC2 インスタンスの情報を取得します。 -
--query 'Reservations[*].Instances[*].{InstanceId:InstanceId, Name:State.Name}'
:- JMESPath を使用して、
InstanceId
とState.Name
(インスタンスのIDと状態名)を抽出します。
- JMESPath を使用して、
-
--output table
:- 出力フォーマットをテーブル形式に指定します。
実行結果
コマンドを実行すると、以下のようなテーブル形式の出力が得られます。
---------------------------------------
| DescribeInstances |
+---------------------+--------------+
| InstanceId | Name |
+---------------------+--------------+
| i-XXXXXXXXXXXXXXXXX| running |
| i-YYYYYYYYYYYYYYYYY| stopped |
+---------------------+--------------+
出力内容詳細
- InstanceId: EC2 インスタンスの ID。
-
Name: インスタンスの状態(例:
running
,stopped
,terminated
など)。
おわりに
このコマンドを使用することで、AWS アカウント内の EC2 インスタンスの状態を簡単に確認できます。
出来たらこのスクリプトを毎日自動実行して、running
のものがあればメールやラインで通知する、っていうのやりたいですね。いや、やります!!