ハマログ

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

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日


関連記事

Google Compute EngineのVM CPU使用率のモニタリングとアラート

GCPのCPU使用率をモニタリングする設定のメモはじめに通知先チャンネルを設定し…

リザーブドインスタンスの期限が近づいたら通知する

AWSのリザーブドインスタンス(RI)を購入し、運用を続けていましたが、期限切れ…

Amazon Simple Queue Service をPHPで使ってみる

皆様、お疲れ様です。 uminchuです 今回は前回軽く触れたAWSの機能の一つ…


← 前の投稿

次の投稿 →