EC2 自動起動停止
概要
- EC2のインスタンスをcronで自動で起動、停止するように設定する。
- 備忘録としてAWSのコンソールの新UIで設定する方法を残すもの。
- EC2のインスタンスを必要ないときに停止して節約する。
前提
- EC2インスタンスを起動できる。
手順
-
IAM
でSystems Manager
を操作できるサービスロールを作成する。 -
Amazon EventBridge
でEC2
を自動起動するように設定する。 -
Amazon EventBridge
でEC2
を自動停止するように設定する。
IAM
でSystems Manager
を操作できるサービスロールを作成する。
-
①のプルダウンを押し、
Systems Manager
を検索ボックスに入れ検索する。
②のチェックボックスを選択して、次へ
を押す
-
①の検索ボックスに
AmazonSSMAutomationRole
を入れてEnterを押して絞り込む。
絞り込んだら、②の部分のチェックボックスを押す。
③を押して次へ
を押す。
-
①の部分にわかりやすいロール名を入れる。(例:ssm-automation-role など)
その後、右下のロール作成
ボタンを押す。
-
ロール一覧から作成したロールの名前を押し、詳細画面へ移動する。
詳細から①の信頼関係
のタブを押し、②の信頼ポリシーを編集
を押して編集する。
-
①の部分を
ssm.amazonaws.com
をevents.amazonaws.com
に変更する。
変更後②のポリシー更新
を押して更新する。
Amazon EventBridge
でEC2
を自動起動するように設定する。
-
①にわかりやすい名前を付ける。
②にわかりやすい説明を入れる。
③の部分のチェックボックスを押し、ルールタイプ
をスケジュールにする。
④を押し、次へ。
- ①の部分にcronの形式で自動で起動する日時を設定する。※UTCで設定なので、日本時間から-9時間で設定する(例: 平日の10時に起動する)
②の部分を押し、次へ。
- ①のプルダウンの検索ボックスに
System Manager オートメーション
を入れ、System Manager オートメーション
を選択する。
②のプルダウンの検索ボックスにAWS-StartEC2Instance
を入れ、AWS-StartEC2Instance
を選択する。
③のテキストボックスに自動起動したいEC2のインスタンスIDを入れる。
④のラジオボタンを押し、⑤のプルダウンから前手順で設定したサービスロールを選択する。(今回の場合はssm-automation-role
)
⑥を押し、次へ。
- タグ設定は特にせずに、
次へ
を押し、次の画面の右下のルールを作成
を押す。
Amazon EventBridge
でEC2
を自動停止するように設定する。
- 「
Amazon EventBridge
でEC2
を自動起動するように設定する。」で行った手順とほぼ同じ。 - 「
Amazon EventBridge
でEC2
を自動起動するように設定する。」の4
の②の部分をAWS-StopEC2Instance
にする。 - その後の手順も同じ。
あとがき
- クラウド系のUIはコロコロ変わるので、CLIのやり方についても調べて時間があったらこのページへ追記しようと思う。
参考サイト