はじめに
EC2インスタンスとRDSデータベースをEventBridgeSchedulerを使用し、自動停止・自動起動させる方法です
IAMの作成
ポリシーの作成
- IAM>アクセス管理>ポリシーから「ポリシーを作成」をクリック
ステップ1:アクセス許可を指定
- 「ポリシーエディタ」はビジュアルを選択
- サービスを選択
- RDSの場合
-
「サービスを選択」からRDSを選択
-
アクション許可から下記二つを選択
StartDBInstance StopDBInstance
-
リソースから「特定」を選択し、右にある「このアカウント内のいずれか」にチェック
-
- EC2の場合
-
「サービスを選択」からEC2を選択
-
アクション許可から下記二つを選択
StartInstance StopInstance
-
アクション許可からStartInstances、StopInstancesを選択
-
リソースから「特定」を選択し、右にある「このアカウント内のいずれか」にチェック(instance,license-configurationどちらも)
-
- RDSの場合
- 「次へ」をクリック
ステップ2:確認して作成
- 「ポリシーの詳細」からポリシー名を入力
- 「ポリシーの作成」をクリック
ロールの作成
- IAM>アクセス管理>ロールから「ロールを作成」をクリック
ステップ1:信頼されたエンティティを選択
-
信頼されたエンティティタイプから「カスタム信頼ポリシー」を選択
-
scheduler.amazonaws.com
を許可する{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "Service": "scheduler.amazonaws.com" }, "Action": "sts:AssumeRole" } ] }
-
「次へ」をクリック
ステップ2:許可を追加
- 検索欄から先ほど作成したポリシーをチェック
ステップ3:名前、確認、および作成
- 「ロールの詳細」からロール名を入力
- 「ロールを作成」をクリック
EventBridgeSchedulerの設定
- Amazon EventBridge>Scheduler>スケジュールから「スケジュールを作成」をクリック
ステップ1:スケジュールの詳細と指定
- 「スケジュール名と説明」からスケジュール名を入力
- 「スケジュールのパターン」から以下を設定する
-
頻度:定期的なスケジュール
-
スケジュールの種類:cronベースのスケジュール
-
cron式:設定したい時間
例:EC2を止めてからRDSを止める、RDSを開始してからEC2を開始するように設定した場合 EC2ストップ:cron(45,18,?,*,FRI,*) -> 毎週金曜18:45 RDSストップ:cron(50,18,?,*,FRI,*) -> 毎週金曜18:50 RDSスタート:cron(50,8,?,*,MON,*) -> 毎週月曜8:50 EC2スタート:cron(55,8,?,*,MON,*) -> 毎週月曜 8:55
-
フレックスタイムウィンドウ:オフ
-
- 「次へ」をクリック
ステップ2:ターゲットの選択
-
「ターゲットの詳細」から全てのAPIを選択
-
サービスを選択
- RDSの場合
- 開始の設定:全てのAWSのサービス>AmazonRDS>StartDBInstanceを選択
- 停止の設定:全てのAWSのサービス>AmazonRDS>StopDBInstanceを選択
- EC2の場合
- 開始の設定:全てのAWSのサービス>AmazonEC2>StartInstancesを選択
- 停止の設定:全てのAWSのサービス>AmazonEC2>StopInstancesを選択
- RDSの場合
-
それぞれのサービスに渡すパラメータの設定
{ "InstanceIds": [ "DBインスタンスIDを入力" ] }
-
「次へ」をクリック
ステップ3:設定
- 「アクセス許可」から既存のロールを選択
- 先ほど作成したロールを選択
- 「次へ」をクリック
ステップ4:スケジュールの確認と作成
- 「スケジュールを作成」をクリック