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

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

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

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

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

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

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
{
"Version": "2012-10-17",
"Statement": [
{
"Sid": "PolicyForStopEC2Instance",
"Effect": "Allow",
"Action": "ec2:StopInstances",
"Resource": "*"
}
]
}
{ "Version": "2012-10-17", "Statement": [ { "Sid": "PolicyForStopEC2Instance", "Effect": "Allow", "Action": "ec2:StopInstances", "Resource": "*" } ] }
{
  "Version": "2012-10-17",
  "Statement": [
      {
          "Sid": "PolicyForStopEC2Instance",
          "Effect": "Allow",
          "Action": "ec2:StopInstances",
          "Resource": "*"
      }
  ]
}

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

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

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

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
EventBridge SchedulerからEC2を操作(停止・起動)するためのIAMロールが必要です。
1),検索入力欄で「IAM」と入力し、表示されたサービス「IAM」をクリックします。
2).「ロール」->「ロールを作成」をクリックします。
3).「信頼されたエンティティを選択」の画面が表示されます。
 「カスタム信頼ポリシー」を選択します。
EventBridge SchedulerからEC2を操作(停止・起動)するためのIAMロールが必要です。 1),検索入力欄で「IAM」と入力し、表示されたサービス「IAM」をクリックします。 2).「ロール」->「ロールを作成」をクリックします。 3).「信頼されたエンティティを選択」の画面が表示されます。  「カスタム信頼ポリシー」を選択します。
EventBridge SchedulerからEC2を操作(停止・起動)するためのIAMロールが必要です。
1),検索入力欄で「IAM」と入力し、表示されたサービス「IAM」をクリックします。

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

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

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

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Principal": {
"Service": "scheduler.amazonaws.com"
},
"Action": "sts:AssumeRole"
}
]
}
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "Service": "scheduler.amazonaws.com" }, "Action": "sts:AssumeRole" } ] }
{
  "Version": "2012-10-17",
  "Statement": [
      {
          "Effect": "Allow",
          "Principal": {
              "Service": "scheduler.amazonaws.com"
          },
          "Action": "sts:AssumeRole"
      }
   ]
}

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

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

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
 ロール名: 例EventBridgeSchedulerEC2Stop
 ロール名: 例EventBridgeSchedulerEC2Stop
 ロール名: 例EventBridgeSchedulerEC2Stop

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

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

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

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
  スケジュール名:EC2Stop
  スケジュールのパターン: 定期的なスケジュール
  cron式
  分: 00 時間: 02 日付: ? 月: * 曜日: MON-FRI 年:*
  フレックスタイムウィンドウ オフ
  タイムゾーン : (UTC+09:00)Asia/Tokyo
  スケジュール名:EC2Stop   スケジュールのパターン: 定期的なスケジュール   cron式   分: 00 時間: 02 日付: ? 月: * 曜日: MON-FRI 年:*   フレックスタイムウィンドウ オフ   タイムゾーン : (UTC+09:00)Asia/Tokyo
  スケジュール名:EC2Stop
  スケジュールのパターン: 定期的なスケジュール
  cron式
  分: 00 時間: 02 日付: ? 月: * 曜日: MON-FRI 年:*
  フレックスタイムウィンドウ オフ
  タイムゾーン : (UTC+09:00)Asia/Tokyo

4).ターゲットの詳細

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
 ターゲットAPIにて「すべてのAPI」を選択し、サービスを検索欄にEC2と入力します。
 [Amazon EC2]を選択します。
 「StopInstance」を選択します。
 ターゲットAPIにて「すべてのAPI」を選択し、サービスを検索欄にEC2と入力します。  [Amazon EC2]を選択します。  「StopInstance」を選択します。
 ターゲットAPIにて「すべてのAPI」を選択し、サービスを検索欄にEC2と入力します。
 [Amazon EC2]を選択します。
 「StopInstance」を選択します。

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

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
{
"InstanceIds": [
"i-xxx"
]
}
{ "InstanceIds": [ "i-xxx" ] }
{
  "InstanceIds": [
    "i-xxx"
  ]
}

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

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

AWS

Posted by arkgame