無駄なコストを抑える!CloudWatch EventsでEC2を停止する方法

CloudWatch Eventsのルールで、時間になったらEC2を停止させる

きっかけ

前回初学者だからこそ、とんでもない請求が来る前にAWSでやっておくべき転ばぬ先の請求アラートを書かせていただきましたが、そもそもEC2インスタンスを消し忘れないような仕組みを設定できれば、無駄なコストもかからないかと思いましたので記事にしていきます。
自動起動は別の記事で書いていきたいと思います。


1.CloudWatchのルールを選択する

1.AWSマネジメントコンソールから CloudWatchを検索

スクリーンショット 2021-06-20 10.22.36.png

2.イベント>ルール の画面を開き「ルールの作成」を押下します

スクリーンショット 2021-06-20 10.23.26.png


2.CloudWatch Eventsのルール作成

1.①側:Cron式を記載する

スクリーンショット 2021-06-20 11.32.51.png

2.1.1 Cron式の構文の基本的な書き方
名称 Wildcards
0-59 , – * /
0-23 , – * /
1-31 , – * ? / L W
1-12 or JAN-DEC , – * /
曜日 1-12 or SUN-SAT , – * ? L #`
1970-2199 , – * /

 と 曜日 の両方に値 ( * 含む) を指定することはできない。どちらかに値を指定したら、もう片方には ? を記述する。

※AWS Cron式のタイムゾーンはグリニッジ標準時(GMT)での設定になるため、作成したい時間から値を設定してください(日本(JST)であれば、-9時間すればOK)

時差計算を確認したい人用のリンクです

例1)日本(JST)で毎年月曜から金曜の毎月毎日 18:00(18-9=9) に実行
0 9 ? * MON-FRI *
例2)日本(JST)で毎年毎週毎月毎日 9:00(9-9=0) に実行
0 0 * * ? *
例3)日本(JST)で今年土曜から日曜日の毎月毎日(?)22:00(22-9=13)に実行
0 13 ? 6-12 1,7 2021

2.②側:ターゲット(今回の場合は、停止させたいEC2)のインスタンスIDを記述する

EC2インスタンスに付与されているIDを入力します

3.②側:ロールの作成

CloudWatch Eventsから、EC2 インスタンスに対してアクションを実行するために権限(ロール)が必要になってくるため、作成していない場合はロールを作成して許可を付与していきます。

3.CloudWatch Eventsのルールの詳細を設定する

1.名前と説明、状態(有効化するか)を記述して、ルールの作成を押下

スクリーンショット 2021-06-20 11.45.59.png

4.CloudWatch Eventsのルールの詳細を確認する

1.作成したルールが表示されていることを確認する

スクリーンショット 2021-06-20 11.48.45.png

選択することでルールの詳細の確認もすることが出来ます
スクリーンショット 2021-06-20 11.49.39.png


おわりに

前回きっかけにも記載しましたが、今後もAWSを学習したい人は増えていくのかなと勝手に想像しています。
学ぶためにハンズオンは必要になってきますが、『見様見真似で作ったはいいけど放置してXXX万円』など笑い事ではいられない話が、あなたの挑戦する心をへし折るキッカケにならないようにと思って、無駄なコストを抑える!を記載させていただきました。


参考

・Cronの詳しい説明について
AWS公式HPリンク Schedule Expressions for Rules
AWS公式HPリンク Rate または Cron を使用したスケジュール式

・学習のきっかけとなったもの
この記事はAWS初学者を導く体系的な動画学習サービス
AWS Cloud Techでの学びをベースにして作成しております。

Last modified: 2021-06-21

Author