LoginSignup
2
0

More than 1 year has passed since last update.

複数のEC2を指定された時間に自動的に停止及び起動

Posted at

要件

複数のEC2を指定された時間に自動的に停止及び起動をさせる。実行が失敗した際に、SNSでメールを送信する必要があるとする。

STEP1:IAMロールの作成

■ IAMのロール作成の画面を開く
■ ユースケース⇒「他のAWSのサービスのユースケース」に「Systems Manager」を選択する
image.png

■ 許可ポリシーを追加:
AWSの管理ポリシー:AmazonSSMAutomationRoleをアタッチする
image.png

■ ロール名と説明部分を入力する
image.png

■ ロールを作成する
image.png

■ 信頼関係のポリシーを編集する
image.png

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

STEP2:CloudWatch イベントのルールの作成

■ CloudWatch⇒ルール⇒CloudWatch Eventに戻るを順にクリックする
image.png

■左側:
・イベントソース:スケジュールを選択する
・Cron式:今回は「15 11 * * ? *」を入力し、毎日 11:15 UTC 時間 にイベントを発火させる。
 Cron式の参考ページ:https://docs.aws.amazon.com/ja_jp/AmazonCloudWatch/latest/events/ScheduledEvents.html#CronExpressions

右側:
・ターゲット:SSM Automation
・ドキュメント:
    ⇒インスタンス停止:AWS-StopEC2Instance
    ⇒インスタンス起動:AWS-StartEC2Instance
・定数⇒InstanceId:
※1つのインスタンスの場合:

i-06fbf5xxxxxxxxxxxxxx

 ※複数インスタンスの場合:

["i-0155xxxxxxxxxx", "i-05f477cb8xxxxxxxx", "i-0aeb0be818xxxxxxxx"]

・既存のルールを使用:今回作成したIAMロールを選択する

test-auto-stop-and-start-ec2

image.png

Step3: イベントの実施が失敗したときのSNS通信対応

左側:
イベントソース:
・イベントパターン:
 ⇒サービス名:Systems Manager
 ⇒イベントタイプ:Automation
・特定の詳細タイプ:EC2 Automation Execution Status-change Notification
・特定のステータス:Failed、TimeOut、Cancelled

右側:
SNSのトピックを選択:(別途作成必要)
image.png

Step4: テスト

指定されているお時間になると、EC2は自動停止 or 起動ができました。(今回の例は停止)
image.png

失敗したSNSの通信テストも成功した。

image.png

2
0
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
2
0