EC2インスタンスの自動起動をAmazon EventBridgeで実現する
はじめに
EventBridgeを利用してEC2インスタンスの自動停止を設定していましたが、以前は自動起動ができませんでした。
いつからか、EventBridgeを利用した自動起動ができるようになっていたので設定していました。
検証環境を平日営業時間のみ起動するような利用ができるようになりました。
いつからか、EventBridgeを利用した自動起動ができるようになっていたので設定していました。
検証環境を平日営業時間のみ起動するような利用ができるようになりました。
やってみる
EventBridgeがEC2インスタンスを操作できるようにするための権限を与える必要があります。まずはIAMロール・ポリシーを作成します。
IAM→ポリシー→ポリシーの作成
サービスでEC2を選択後、EC2StartInstancesを指定します。
IAM→ポリシー→ポリシーの作成
サービスでEC2を選択後、EC2StartInstancesを指定します。
リソースは、「このアカウント内のいずれか」を選択しました。
※できれば、もう少し厳密に設定したほうがいいです。
※できれば、もう少し厳密に設定したほうがいいです。
続いてロールの作成です。
IAM→ロール→ロールを作成。カスタム信頼ポリシーを選択
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)
続いてスケジュールを登録します。
EventBridge→スケジュール→スケジュールを作成
スケジュール名を入力します(ここでは、ec2-instance-autostart)
スケジュールは以下のようにしました。曜日はMON-FRIで月~金を指定。
ターゲットの選択で、すべてのAPIを選択した後、Amazon EC2を選択します。
続いて、Amazon EC2のStartInstancesを指定します。
入力欄が表示されるので、対象のインスタンスIDを入力します。
{ "InstanceIds": [ "i-999999999999999999" ] }
アクセス許可のロールに、事前に作成しておいたロールを指定します。
起動成功しました
手軽に設定できるようになってよかったです
kaneko tomo 2023年7月9日
関連記事
VagrantとAnsibleで仮想環境のCentOS6.5にWordPress環境構築!WebサーバーはNginxですか?(後編)
遂に後編を書くときが来ました。 てるおです。 はいどーも! やることはもう決まっ…
GCPのプロジェクトを削除できない(プロジェクトには、誤って削除されるのを防ぐために 1 つ以上リーエンが含まれています)
年末なのでGCPのプロジェクトを整理しました。無制限に作成できる状態にしていたの…