AWS EventBridge SchedulerでEC2を定期的な停止する方法

環境
AWS EventBridge
EC2
東京リージョン

概要
指定時間帯にEC2を停止状態にする

操作方法
1.停止実行用IAMポリシーの作成
1),検索入力欄で「IAM」と入力し、表示されたサービス「IAM」をクリックします。

2).「ポリシー」->「ポリシーを作成」をクリックします。

3).アクセス許可を指定画面が表示されます。
JSONタブを選択します。
ポリシーエディタに以下の内容を記載します

{
  "Version": "2012-10-17",
  "Statement": [
      {
          "Sid": "PolicyForStopEC2Instance",
          "Effect": "Allow",
          "Action": "ec2:StopInstances",
          "Resource": "*"
      }
  ]
}

「次へ」をクリックします。

4).ポリシー名(例EC2InstanceStopPolicy)を入力し、「ポリシーの作成」をクリックします。

2.停止実行用のIAMロールの作成

EventBridge SchedulerからEC2を操作(停止・起動)するためのIAMロールが必要です。
1),検索入力欄で「IAM」と入力し、表示されたサービス「IAM」をクリックします。

2).「ロール」->「ロールを作成」をクリックします。

3).「信頼されたエンティティを選択」の画面が表示されます。
 「カスタム信頼ポリシー」を選択します。

4).以下のポリシーを設定します。

{
  "Version": "2012-10-17",
  "Statement": [
      {
          "Effect": "Allow",
          "Principal": {
              "Service": "scheduler.amazonaws.com"
          },
          "Action": "sts:AssumeRole"
      }
   ]
}

「次へ」をクリックします。
4).許可ポリシーに手順1のポリシー「EC2InstanceStopPolicy」を選択します。

5).ロール名を入力し、「ロールを作成」をクリックします。

 ロール名: 例EventBridgeSchedulerEC2Stop

3.EventBridge Schedulerの設定
1),検索入力欄で「EventBridge」と入力し、表示されたサービス「Amazon EventBridge」をクリックします。

2).左側に「スケジュールを作成」をクリックします。

3).右側に「スケジュールを作成」をクリックします。

  スケジュール名:EC2Stop
  スケジュールのパターン: 定期的なスケジュール
  cron式
  分: 00 時間: 02 日付: ? 月: * 曜日: MON-FRI 年:*
  フレックスタイムウィンドウ オフ
  タイムゾーン : (UTC+09:00)Asia/Tokyo

4).ターゲットの詳細

 ターゲットAPIにて「すべてのAPI」を選択し、サービスを検索欄にEC2と入力します。
 [Amazon EC2]を選択します。
 「StopInstance」を選択します。

5).起動したいEC2のインスタンスIDを指定します

{
  "InstanceIds": [
    "i-xxx"
  ]
}

「次へ」をクリックします。

6).EC2停止の設定が完了です。

AWS

Posted by arkgame