2023-09-23
指定インスタンスを決まったスケジュールで自動起動または自動停止したい。そのメモ。
インスタンス一覧から、操作したいインスタンスのIDを把握しておく。
https://ap-northeast-1.console.aws.amazon.com/ec2/v2/home?region=ap-northeast-1#Instances:
IAMを開く。
https://us-east-1.console.aws.amazon.com/iamv2/home?region=ap-northeast-1#/home
左タブのアクセス管理→「ロール」をクリック。「ロールを作成」する。
・信頼されたエンティティタイプは「AWSのサービス」
・ユースケースは「他のAWSのサービスのユースケース」→「CloudWatch Events」を選択、
CloudWatch Eventsラジオボタンを選択する。
「次へ」
・CloudWatchEventsBuiltInTargetExecutionAccess
・CloudWatchEventsInvocationAccess
がデフォルトで存在することを確認して「次へ」
ロールの詳細は「ロール名」だけ入力すればOK。ここでは「cloudwatch_events_for_auto_start_stop」と入力。
「ロールの作成」でロールの作成一旦完了。ロール一覧にcloudwatch_events_for_auto_start_stopが出現するのでクリックして選択。
ポリシーを追加するので「許可を追加」プルダウン「ポリシーをアタッチ」を選択。
「その他の許可ポリシー」で「AmazonSSMAutomationRole」と入力し一覧表示させ左チェックボックスをチェックし「ポリシーをアタッチ」する。
そうすると許可ポリシー一覧にAmazonSSMAutomationRoleが追加される。これが追加されれば、元々あった許可ポリシー
・CloudWatchEventsBuiltInTargetExecutionAccess
・CloudWatchEventsInvocationAccess
は不要となるので、左チェックボックスで選択して「削除」してしまってOK。以上でIAMの操作は完了。
<インスタンスの自動起動>
Amazon EventBridgeを開く。
https://ap-northeast-1.console.aws.amazon.com/events/home?region=ap-northeast-1#/
「ルールを作成」をクリック。まずはインスタンス自動起動のセットアップをする。
・名前(例):auto_start_instance
・ルールタイプ:「スケジュール」を選択して「次へ」
「スケジュールパターン」は「特定の時刻に実行されるきめ細かいスケジュール」を選択しcronの式を設定する。この設定スケジュールでルールが呼ばれることになる。
「毎週月~金曜日の朝9:00に起動」させたい場合、
年:*、曜日:MON-FRI、月:*、日付:?、時間:0、分:0とする。0はJSTでは9時であるからである。「次へ」。
「ターゲット」は「AWSのサービス」→「System Manager オートメーション」を選択、ドキュメントは「AWS-StartEC2Instance」を選択。
「自動化パラメータを設定」→「定数」InstanceIdに該当のインスタンスIDを貼り付ける。
「実行ロール」は「既存のロールを使用」でさきほどIAMで作成した「cloudwatch_events_for_auto_start_stop」を選択して「次へ」
タグは不要なのでそのまま「次へ」。最終確認して「ルールの作成」で完了。これで月~金の9:00にインスタンスが自動起動されるようになった。
<インスタンスの自動停止>
Amazon EventBridgeを開く。
https://ap-northeast-1.console.aws.amazon.com/events/home?region=ap-northeast-1#/
「ルールを作成」をクリック。自動起動と全く同じようにインスタンス自動停止のセットアップをする。
・名前(例):auto_stop_instance
・ルールタイプ:「スケジュール」を選択して「次へ」
「スケジュールパターン」は「特定の時刻に実行されるきめ細かいスケジュール」を選択しcronの式を設定する。この設定スケジュールでルールが呼ばれることになる。
「毎週月~金曜日の夜18:00に停止」させたい場合、
年:*、曜日:MON-FRI、月:*、日付:?、時間:9、分:0とする。9はJSTでは18時であるからである。「次へ」。
「ターゲット」は「AWSのサービス」→「System Manager オートメーション」を選択、ドキュメントは「AWS-StopEC2Instance」を選択。
「自動化パラメータを設定」→「定数」InstanceIdに該当のインスタンスIDを貼り付ける。
「実行ロール」は「既存のロールを使用」でさきほどIAMで作成した「cloudwatch_events_for_auto_start_stop」を選択して「次へ」
タグは不要なのでそのまま「次へ」。最終確認して「ルールの作成」で完了。これで月~金の18:00にインスタンスが自動停止されるようになった。
※本記事内容の無断転載を禁じます。
ご連絡は以下アドレスまでお願いします★
さくらインターネットでPython MecabをCGIから使う
さくらインターネットのPHPでAnalytics-G4 APIを使う
インクルードパスの調べ方
【Git】特定ファイルを除外する.gitignore
【Ubuntu/Debian】NVIDIA関係のドライバを自動アップデートさせない
【Python】Spacyを使用して文章から出発地と目的地を抜き出す
HomeBrewでApache2を入れて自動起動つきで動かしPHPモジュールと連携する
macOSに標準付属のApacheを自動起動つきで動かす
HomeBrewでPostgreSQLを入れて自動起動つきで動かす
【Windows10】リモートデスクトップ間のコピー&ペーストができなくなった場合の対処法
【C/C++】小数点以下の切り捨て・切り上げ・四捨五入
Windows版Google Driveが使用中と言われアンインストールできない場合
【Apache】サーバーに同時接続可能なクライアント数を調整する
Windows11+WSL2でUbuntuを使う【2】ブリッジ接続+固定IPの設定
【Linux】iconv/libiconvをソースコードからインストール
Googleファミリーリンクで子供の端末の現在地がエラーで取得できない場合
【ウマ娘】デイリーレースに雨の状態で出走するには
最新版のOpenSSH Serverにしたら公開鍵ログインできなくなった場合