AWS Event bridgeでEC2のSTOP・STARTを設定する

EC2をSTOP、STARTしたいタイミングは色々とあります。そこでこれらを時間に沿って自動でやってもらう設定を確認していきます。


概要

 通常EC2インスタンスのSTOP、STARTであればLambdaで実装するパターンが多いと思いますが、今回は

 SSM Automationを使用してスケジュールした時間にEC2インスタンスの開始と停止を実装します。


やること

 1.EC2インスタンスをSTARTするためのロール作成

 2.EC2インスタンスをSTOPするためのルール作成

 3.EC2インスタンスをSTARTするためのルール作成


1. EC2インスタンスをSTARTさせるためのロール作成

 インスタンスの開始を実行させるためには権限が必要になります。以下手順にて作成してしまいましょう。

 ①「IAM」にてサービスを検索し、IAM内ロールを選択します。

 ②ロール作成を選択し、「AWSのサービス」「EC2」にチェックを入れて「次へ」を選択します。

 ③許可ポリシーに「AmazonSSMAutomationRole」をアタッチして「次へ」を選択します。

 ④ロール名、説明は任意で記述して「ロールを作成」を選択します。

 ⑤作成が完了したら、作ったロールを選択し「信頼されたエンティティ」を編集します。
  「信頼関係」タブを選択「信頼ポリシーを編集」を選択して、以下の通りに編集します。

 これでロールの作成は完了です。後ほどARNが必要になるのでコピーしておきましょう。


2. EC2インスタンスをSTOPするためのルール作成

 EC2インスタンスをSTOPするためのEvent Bridgeルールを作成します。

 ①サービスから「Event Bridge」を検索し、「ルール」を選択します。

 ②画面から「ルールを作成」を選択し、以下の通り設定を実施し「次へ」を選択します。

  ・名前:任意
  ・説明:任意
  ・イベントパス:default
  ・スケジュールにチェック

  ③EC2インスタンスをSTOPするためのスケジュールを設定します。

  以下設定の場合、毎日午前0時にEC2インスタンスをSTOPする設定となります。
  (ドロップダウンからローカルタイムゾーンを選択したほうが分かり易いです)

  設定が終わったら「次へ」を選択します。

   0 15 * * ? *

 ④ターゲットの選択は以下のように設定し、「次へ」を選択します。

 ・AWSのサービスにチェックを入れる
 ・「EC2 StopInstances API呼び出し」を選択する
 ・停止させたいインスタンスIDを入力する

 ⑤タグの設定は任意で

 以下タグの設定は任意で実施し、「次へ」を選択します。

 最後に設定した内容の確認画面となりますので、問題なければ一番したにある

 「ルールの作成」を選択して完了です。

注意:設定が完了した時点でスケジュール通りに動作します。最初に検証環境もしくは
   検証を実施してから設定しましょう。(いきなり本番環境へは基本NGです)


3. EC2インスタンスをSTARTするためのルール作成

 「ターゲットの選択」まではEC2インスタンス停止のルール作成と手順は同じです。

 スケジュールを以下の通り設定して先に進めます。(毎日0時3分にEC2インスタンスを起動)

  3 15 * * ? *

 「ターゲットを選択」より「System Manager オートメーション」を選択します。

 後は以下設定を実施して「次へ」を選択します。

  ・ドキュメント:AWS-StartEC2Instance
  ・InstanceId:該当EC2インスタンスのID
  ・AutomationAssumeRole:作成したロールのARN

 あとはタグの設定と内容確認にて完了です。

 動作確認としてCloudTrailのログもしくは該当サーバのログを確認してみましょう。

 またはCloudWatchでロググループを作成してもよいでしょう。

 以上で全ての設定は終了です。

注意:設定が完了した時点でスケジュール通りに動作します。最初に検証環境もしくは
   検証を実施してから設定しましょう。(いきなり本番環境へは基本NGです)


返信を残す

メールアドレスが公開されることはありません。

CAPTCHA