EventBridgeでEC2インスタンスを自動起動する - skydum

skydum

個人的な作業記録とか備忘録代わりのメモ

EventBridgeでEC2インスタンスを自動起動する

EventBridge経由でEC2を自動起動する

開発環境を整えるために最近AWSをよく使っています。個々の作業はそれほど時間がかからないものの、毎回実施するのが面倒です。そこで、少しずつ自動化を進めていきたいと思います。 同じような記事はたくさん見つかりますが、毎回検索するのが面倒なので、備忘録としてここに記録しておきます。

見づらいので修正するかも…。

前提条件

作業概要

  1. EC2を起動するためのIAMポリシーの作成
  2. EventBridge用のIAMロールの作成
  3. EventBridgeを使ってスケジュールを設定

設定作業を実施

1. EC2を起動するためのIAMポリシーの作成

  1. IAMからポリシーを選択して、「ポリシーの作成」をクリック
  2. サービスからEC2を選択し、検索窓にStartInstancesを入力してチェックを入れる
  3. 特定のインスタンスのみ対象としたい場合は「ARNを追加」をクリックしてEC2のARNを追加。アカウント内の任意のインスタンスを対象とする場合は「このアカウント内のいずれか」にチェックを入れて、「次へ」をクリック。今回は特定のEC2を対象とします。
  4. 「このポリシーで定義されている許可」には以下のように入っているはずですので、問題がなかったら「ポリシーの作成」を押下

2. EventBridge用のIAMロールの作成

  1. IAMロールからロールを作成を押下
  2. カスタム信頼ポリシーを選択して以下のように入力し、次へを押下

     {
         "Version": "2012-10-17",
         "Statement": [
             {
                 "Effect": "Allow",
                 "Principal": {
                     "Service": "scheduler.amazonaws.com"
                 },
                 "Action": "sts:AssumeRole"
             }
         ]
     }
    
  3. 次の画面はそのまま次へを押下
  4. ロール名を入力、許可を追加するの右にある編集を押下して、先程作成したIAMポリシーを割り当ててロールを作成を押下

3. EventBridgeを使ってスケジュールを設定

  1. EventBridgeを開いてスケジュールの作成を開く
  2. 以下の項目を埋める
    1. スケジュール名を入力
    2. スケジュールのパターンから定期的なスケジュールを選択
    3. スケジュールの種類からcronベースのスケジュールを選択
    4. cron( 00 09 ? * 2-6 * ) と入力
      設定方法の詳細はこちら: Cron-based schedules
  3. すべてのAPIを選択し、検索ボックスにstartと入力してStartInstancesを選択
  4. StartInstancesに起動したいEC2のインスタンIDを列挙するして「次へ」を押下
  5. スケジュールの状態から有効化にし、スケジュール完了後のアクションはNONEを指定する 6.アクセス許可から既存のロールを使用を選択して、作成済みのIAMロールを選択し、「次へ」を押下
  6. 問題がなかったら「スケジュールを作成」で完了