ハマログ

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

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日


関連記事

CentOS Stream 8でSSH鍵認証ログインできない(暗号化形式が古かった)

CentOS Streamでサーバー構築をしています。ユーザーアカウントを作成し…

AWS Lambda/API GatewayのIP制限が解除されなくて困った話

AWSで環境構築・開発をするにあたって(AWSに限りませんがまあその)、 当然な…

AWS大規模障害とインフラ設計について

2019年8月23日(金)AWSの大規模障害が発生し、大手サイトやクラウドサービ…


← 前の投稿

次の投稿 →