ハマログ

株式会社イーツー・インフォの社員ブログ

EC2インスタンスの自動起動をAmazon EventBridgeで実現する

はじめに

EventBridgeを利用してEC2インスタンスの自動停止を設定していましたが、以前は自動起動ができませんでした。
いつからか、EventBridgeを利用した自動起動ができるようになっていたので設定していました。

検証環境を平日営業時間のみ起動するような利用ができるようになりました。

やってみる

EventBridgeがEC2インスタンスを操作できるようにするための権限を与える必要があります。まずはIAMロール・ポリシーを作成します。

IAM→ポリシー→ポリシーの作成
サービスでEC2を選択後、EC2StartInstancesを指定します。
リソースは、「このアカウント内のいずれか」を選択しました。
※できれば、もう少し厳密に設定したほうがいいです。
続いてロールの作成です。
IAM→ロール→ロールを作成。カスタム信頼ポリシーを選択
アクセスレベルはAssumeRoleを選択、プリンシパルを追加で、プリンシパルタイムにAWS Services、ARNにscheduler.amazonaws.comを指定します。
JSONを直接編集すると以下のようになります。
{
	"Version": "2012-10-17",
	"Statement": [
		{
			"Effect": "Allow",
			"Principal": {
				"Service": "scheduler.amazonaws.com"
			},
			"Action": "sts:AssumeRole"
		}
	]
}
許可を追加では、先ほど作成したポリシーを選択します。
ポリシー、ロールの作成はこれで完了です。

続いてスケジュールを登録します。
EventBridge→スケジュール→スケジュールを作成
スケジュール名を入力します(ここでは、ec2-instance-autostart)
スケジュールは以下のようにしました。曜日はMON-FRIで月~金を指定。
ターゲットの選択で、すべてのAPIを選択した後、Amazon EC2を選択します。
続いて、Amazon EC2のStartInstancesを指定します。
入力欄が表示されるので、対象のインスタンスIDを入力します。
{
  "InstanceIds": [
    "i-999999999999999999"
  ]
}
アクセス許可のロールに、事前に作成しておいたロールを指定します。
起動成功しました
手軽に設定できるようになってよかったです
AmazonAmazon EventBridgeautostartAWSEventBridgeインスタンススケジュールタスク停止自動停止自動起動起動

  kaneko tomo   2023年7月9日


関連記事

Amazon Linux2でLocaleを変更してみた

  はじめに どうも!T-utsuです。 最近なにかとAWSをいじるこ…

AWS CloudWatch LogsをLambdaにストリーミングするときのサブスクリプションフィルタパターンの書き方

はじめに AWS上で動いているアプリケーション監視の際に、CloudWatch …

AWS Systems Managerを利用して複数のEC2インスタンスで一括コマンド実行する

AWS Systems Managerの管理下にEC2を置くと、複数のインスタン…


← 前の投稿

次の投稿 →