AWSの EC2 サーバを夜間停止して月額費用を安くする(AWS Lambda不要)

● AWSの EC2 サーバを夜間停止して月額費用を安くする(AWS Lambda不要)

CloudWatch Manager を使用して次の3つのオペレーションだけで
「EC2サーバの自動停止・自動起動」が行えます

・IAMから「自動停止・起動用ロールの作成」
・CloudWatchから「自動停止イベントルールの作成」
・CloudWatchから「自動起動イベントルールの作成」


● 1. IAMから「自動停止・起動用ロールの作成」する

・AWS Console へログインする
・IAM へアクセスする
・左メニューの「アクセス管理」の下の「ロール」をクリックする
・「ロールの作成」ボタンをクリックする

・(ロール設定 1)「ユースケースの選択」のところ「System Manager」を選択する
・(ロール設定 1)「次のステップ」ボタンをクリックする

・(ロール設定 2)「ポリシーのフィルター」のところ「AmazonSSMAutomationRole」を入力する
・(ロール設定 2)一覧リストに「AmazonSSMAutomationRole」が絞り込まれて表示されるので左のチェックをつける
・(ロール設定 2)「次のステップ」ボタンをクリックする。

・(ロール設定 3)「次のステップ」ボタンをそのままクリックする。(この画面では何も登録しない)

・(ロール設定 4)「ロール名と」「ロールの説明」に入力して「ロールの作成」ボタンをクリックする


・(信頼関係の追加)ロールの追加が完了し、完了画面に遷移した後で「信頼関係タブ」をクリックして「信頼関係の編集」ボタンをクリックする
・(信頼関係の追加)jsonを次のように変更する
        "Service": "ssm.amazonaws.com"

  ↓

        "Service": [
          "events.amazonaws.com",
          "ssm.amazonaws.com"
        ]

これを設定しないとCloudWatchルールイベント作成時「既存のロールを使用」の選択一覧リストに表示されません


● 2. CloudWatchから「自動停止イベントルールを作成」する

・AWS Console へログインする
・CloudWatch へアクセスする
・右上のメニューから現在のリージョンを確認し、違う場合は使用したいリージョンに変更する
・左メニューの「イベント」の下の「ルール」をクリック
・「ルールの作成」ボタンをクリックする
・(ルール設定)「イベントソース」のところ(イベントパターン、スケジュール)から「スケジュール」を選択する
・(ルール設定)「Cron式」を選択して、スケジュールをUTCのCron式で入力する
・(ルール設定)「ターゲット」のところ「ターゲット追加ボタン」をクリックする
・(ルール設定)「EC2 StopInstances API 呼び出し」を選択する
・(ルール設定)「インスタンス ID」のところ「i-xxxxxxxxxxxxxxxxx」形式のインスタンスIDを入力する
・(ルール設定)もしロールがなければ 「この特定のリソースに対して新しいロールを作成する」を選択する
・「設定の詳細」ボタンをクリックする
・次の画面で「名前」「説明」を入力して「ルールの作成」ボタンをクリックする

Amazon CloudWatch のCron式

毎日 日本時間で 11:30 に実行する場合-9時間 して 次のように指定します

分 時 日 月 曜日 年
30 2 * * ? *

月曜 〜 金曜日 毎日 日本時間で 09:00 に実行する場合-9時間 して 次のように指定します

分 時 日 月 曜日 年
0 0 ? * MON-FRI *

月曜 〜 金曜日 毎日 日本時間で夜 24:00 に実行する場合-9時間 して 次のように指定します

分 時 日 月 曜日 年
0 15 ? * MON-FRI *

UTC時間確認方法

日本のタイムゾーンがセットされている UNIX マシンで UTC 時刻を表示させるコマンド

date -u -R

● 3. CloudWatchから「自動起動イベントルールを作成」する

自動停止設定の仕方と全く同じです。

違うのは次の設定のところです

「ターゲット」を SSM Automation を選択する
「ドキュメント」を AWS-StartEc2Instance

● 4. linux マシンの起動時間を調べる

last reboot

● 5. CloudWatch の 自動実行がうまくいっていない時は

・停止や起動には 2〜3分かかることがあるので 2〜3分待ってみましょう
・EC2マシンの時刻がずれていないかチェックしましょう。
ずれている場合は修正しましょう

● 6. Amazon Time Sync Service を使って時刻を合わせる(手動)

sudo ntpdate 169.254.169.123
添付ファイル1
No.1906
02/15 21:12

edit

添付ファイル