ハマログ

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

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日


関連記事

VagrantとAnsibleで仮想環境のCentOS6.5にWordPress環境構築!WebサーバーはNginxですか?(後編)

遂に後編を書くときが来ました。 てるおです。 はいどーも! やることはもう決まっ…

GCPのプロジェクトを削除できない(プロジェクトには、誤って削除されるのを防ぐために 1 つ以上リーエンが含まれています)

年末なのでGCPのプロジェクトを整理しました。無制限に作成できる状態にしていたの…

bitvise SSH Client × windows update

bitvise SSH Client × windows update つい最近…


← 前の投稿

次の投稿 →