LoginSignup
13
13

More than 1 year has passed since last update.

【コスト削減】AWS EC2インスタンス 夜間休日自動停止方法 (2) AWS Systems Manager Automation + Amazon EventBridge

Posted at

1. はじめに

  • AWS環境のコスト削減に取り組んでいる。コスト削減の一番ベーシックな対策である、EC2インスタンスの夜間休日の自動停止方法について、いくつかやり方があるようなので、それぞれ試してみて、難易度やメリット・デメリットを比較する。
  • 本記事ではシンプルかつノーコードで設定できる方法(Systems Manager Automation + EventBridge)の動作確認を行う。

2. やったこと

  • 自動起動・停止対象とするインスタンスを1台用意する。
  • 以下のスケジュール設定により、夜間休日のインスタンス自動停止を実現する。
    • EventBridgeルールで、月~金の9:00AMに、インスタンスを起動するSystems Manager Automation ドキュメント(以下 SSM Automationドキュメント)を設定する。
    • EventBridgeルールで、月~金の21:00PMに、インスタンスを停止するSSM Automation ドキュメントを設定する。

3. 構成図

ins構成図2.png

4. 手順

4.1 事前準備

  • 自動起動・停止の対象とするEC2インスタンスを作成する。このインスタンスのインスタンスIDを指定して自動起動・停止の操作を行う。

4.2 IAMロールの作成

  • EventBridgeに対し、SSM Automationを呼び出すことを許可する権限を付与する必要があり、そのためのIAMロールを作成する。
  • IAM -> ロール -> ロールを作成 ->「信頼されたエンティティタイプを選択」にて、「一般的なユースケース」-> 「EC2」を選択する。

ins11.png

このロールの作成時、最初から信頼されたエンティティを「EventBridge」にしたいが、2023/5現在、その指定ができないので、いったんEC2などの別のエンティティを選択し後で変更する。

  • 許可ポリシーとして、「AmazonSSMAutomationRoleを選択する。

ins12.png

  • ロール名(mksamba-AmazonSSMAutomationRole)を付けて、いったんロールを作成する。

ins13.png

  • 作成したロールを開き、「信頼関係」のところの「信頼されたエンティティ」内のJSONにて、「ec2.amazonaws.com」を「events.amazonaws.com」(EventBridgeサービス)に変更する。

ins14.png

4.3 EventBridgeからのSSM Automation ドキュメントの呼び出し

  • インスタンス停止を行うSSM Automation ドキュメントを呼び出すEventBridgeルールを作成する。
  • Amazon EventBridge > ルール > ルールを作成にて、ルール名「mksamba-instance-stop-SSM
    」とし、ルールタイプは「スケジュール」を選択し、「続行してルールを作成する」に進む。

ins15.png

  • 月~金の21:00PMに動作するよう、cron式を設定する。今回は「0 12 ? * MON-FRI *」で設定。動作スケジュールの確認はJSTで可能だが、CRON式はUTCで入力する必要がある。

ins16.png

  • ターゲット(時間になったら実行する内容)として、「AWSのサービス」->「Systems Manager オートメーション」-> 「AWS-StopE2Instance」を選択し、対象のInstanceIdを入力し、実行ロールとして前の手順で作成した「mksambaSSMAutomationRole」を選択し、ルールを作成する。

ins17.png
ins18.png

  • 同様に、インスタンス開始を行うSSM Automation ドキュメントを呼び出すルール「mksamba-instance-start-SSM」を作成する(画面は省略)。開始は月~金の9:00AMとするため、CRON式は「0 0 ? * MON-FRI *」となる。また、実行するSSMオートメーションドキュメントは「AWS-StartEC2Instance」となる。

4.4 停止・起動の動作確認

  • 検証用に、13:59に起動、14:02に停止するようにEventBridgeの時刻設定を変更する。

  • SSM Automation の実行ログは以下のようになる。

ins19.png
ins20.png

  • Cloudtrailのログは以下のようになる。

ins21a.png

5. 参考

6. 所感

  • SSM Automation を初めて使った。今回は既定(出来合い)のドキュメントを使用したが、ドキュメントを修正することで動作のカスタマイズが可能であり、SSM Automation に慣れている人にマッチする方法かなと思った。
13
13
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
13
13