AWS EC2インスタンスの自動起動と自動停止を設定
自動起動の設定
IAMの作成
起動はSSM Automationの機能を利用するため、CloudWatch EventsがSSMを呼び出すためのIAMロールを作成。
- マネジメントコンソールから「IAM」→「ロール」→「ロール作成」をクリック
- 「このロールを使用するサービスを選択」から「EC2」を選択し、「次のステップ:」をクリック
- 「AmazonSSMAutomationRole」を選択し、「次のステップ:」をクリック
- タグ・ロール名・ロールの説明を入力し、ロールの作成を完了させる
- ロールの作成完了後、ロールの一覧から作成したロールを選択し、「信頼関係」タブ→「信頼関係の編集」をクリック。「信頼関係」タブから、信頼されたエンティティにevents.amazonaws.comとec2.amazonaws.comを以下のように追加。ここでevents.amazonaws.comを追加していないと、CloudWatchの選択肢にでてこなくなる。
信頼関係の編集後、信頼関係タブの信頼されたエンティティにevents.amazonaws.comとec2.amazonaws.comが追加されていれば、IAMの作成は完了となる。
CloudWatchの設定
※現在,ルールはCloudWatchはAmazon EventBridgeのから確認することができます.
イベントソースのスケジュールにチェックを入れ、Cron式を設定し、呼び出しのタイミングを設定。時刻は日本時間(JST)ではないく、UTC(またはGMT)で設定。私の場合、日本時間の23時に起動したかったので、Cron式には9時間前の時刻、0 14 ? * * *
を入力。Cron式を入力すると、下の方にいつ起動するかがリストアップされるので、間違えていないかを確認する。
Cron式設定後、画面右側の「ターゲットの追加」をクリックし、「SSM Automation」を選択し、ドキュメントに、「AWS-StartEC2Instance」を選択する。
次に、InstanceIdに該当のインスタンスIDを入力(下の画像ではxxxと入力している)
最後に、「既存のロールを使用」にチェックを入れ、先ほど作成したロール「AmazonSSMAutomationRole」を選択する。なお、正常に手順が進んでいるのであれば、ロールはプルダウンメニューにリストアップされているはずなので、それをクリックするだけで良い。
ここまでできたら、右下の「設定の詳細」を押して、任意に決めた名前を入力し、「ルールの作成」を押すと自動起動の設定は完了。
自動停止の設定
自動停止の設定も、自動起動とほぼ同じだが、IAMロールの設定を行う必要はない。
まずはイベントソースのCron式を設定。私は、24:00に自動停止したかったので、以下のように入力。
そして、ターゲットには、「EC2 StopInstances API呼び出し」を選択し、インスタンスIDを入力、次に「新しいロールを作成」をクリックし、表示されるロールを設定。
ここまでの設定を済ませると、自動起動と停止ができるようになっているはずだ。
参考
https://qiita.com/t-toyota/items/5d7455568f1856fd2f4e
https://qiita.com/hayao_k/items/9a347d61b5b09a4e7755
https://dev.classmethod.jp/articles/iam-role-for-ssm-automation/
ディスカッション
コメント一覧
まだ、コメントがありません