AWSのCloudWatchのイベントルールを利用してcronでEC2の停止や開始を行う

AWSのCloudWatchのイベントルールを利用してcronでEC2の停止や開始を行う

CloudWatchのルールで「EC2 StopInstances呼び出し」というターゲットが用意されているので、これを選択し、EC2のインスタンスIDを指定して、停止されるか確かめます。(運用ではcron式で設定だと思いますが今回は確認だけのため)

AWSのCloudWatchのイベントルールを利用してcronでEC2の停止や開始を行う

「設定の詳細」をクリックします。

AWSのCloudWatchのイベントルールを利用してcronでEC2の停止や開始を行う

「ルールの作成」をクリックします。これで設定完了です。

3分後にEC2が停止されたのが確認できます。

AWSのCloudWatchのイベントルールを利用してcronでEC2の停止や開始を行う

CloudWatchのイベントでEC2の開始を行う

2018/04/17現時点では「EC2 RebootInstances API呼び出し」でリブートはできるようですが、EC2の開始は行えません。

ただし、SSMエージェントを利用するとどうもできるようです。

AWSのCloudWatchのイベントルールを利用してcronでEC2の停止や開始を行う

AWSのCloudWatchのイベントルールを利用してcronでEC2の停止や開始を行う

IAMの設定などが必要みたいです。続きは後日記述します。

参考サイト

SSM Automationで自動起動する

CloudWatchのルール作成します。

AWSのCloudWatchのイベントルールを利用してcronでEC2の停止や開始を行う

SSM Automationを選択すると、ドキュメントに「AWS-StartEC2Instance」が出てきますので選択します。

AWSのCloudWatchのイベントルールを利用してcronでEC2の停止や開始を行う

ロールには「AmazonSSMAutomationRole」をアタッチします。

信頼関係の編集で以下のように設定します。


{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Principal": {
"Service": [
"events.amazonaws.com",
"ec2.amazonaws.com"
]
},
"Action": "sts:AssumeRole"
}
]
}
view raw

gistfile1.txt

hosted with ❤ by GitHub

これで設定は完了です。cron式の時間はGMTなので、日本時間より-9時間して計算してください。

コメント

タイトルとURLをコピーしました