今回は、大手クラウドサービスであるAWSのコンピューティングサービスの一つであるEC2の自動起動・停止する方法についてお話していきたいと思います。
この記事を書くきっかけとしては、EC2をマネジメントコンソールなどで手動で停止させたりするのではなく、夜間や休日など使わない時間は自動で停止させ、平日は自動で仕事開始時間に起動してほしかったからです。
EC2の自動起動・停止方法について
では、さっそくEC2を自動起動・停止するための設定方法について見ていきましょう。実は、AWSのEC2を自動起動・停止するための方法は1個だけではなく、何個かあるようです。ですので、今回は私が実際に試したやり方を紹介したいと思います。個人的にはこの方法がとっても簡単そうなので、ぜひ試してみてください。
設定の詳細
画面キャプチャを見ながら、起動設定を見ていきます。
まずは、マネジメントコンソールでCloudWatchを選択します。
CloudWatchのメニューから「ルール」を選択します。
開いた画面より、「ルールの作成」ボタンを押下します。
遷移した画面で実際の細かい設定をしていきます。
以下のキャプチャに表示されている通り、まずはイベントソースの設定を行います。
イベントソースとは、簡単に言うと何をトリガーにして処理を実行するかを定義しているもののようです。
実際に発生する様々なイベントをトリガーとして選択できますが、今回は時間によってトリガーを発生させたいので、スケジュールを選択します。時間についてはCron式で記載します。
以下のキャプチャでは、Cron式を「30 23 ? * SUN-THU *」として指定しています。話が逸れてしまいますので、今回はCron式について細かい説明は省きますが、このような特定の記載方法でトリガーとしたい時間を指定することができます。
注意していただきたいのですが、実はこの時間はGMT(日本時間-9時間)なのでそれを考慮して指定する必要があります。
※キャプチャで指定したCron式では、平日(月~金)の日本時間の8:30を指定しています。
先ほど設定した時間に何のイベントを発生させたいのかをターゲットとして設定します。以下では、「SSM Automation」を選択し、EC2を起動したいのでドキュメントは「AWS-StartEC2Instance」を指定します。あとは、自動起動したいEC2のInstanceIdを記載します。記載できたら、画面下の「設定の詳細」ボタンを押下して次に進みます。
ルールの詳細画面になりますが、説明欄にこのルールがどのような用途か記載するだけで終わりです。右下のボタンを押してルールの作成は完了です。
※キャプチャはルールを更新する場面なので、「ルールの更新」となっていますが、実際は「ルールの作成」などになっているはずです
自動停止
停止設定については画面キャプチャは省略しますが、起動設定として異なる箇所は「SSM Automation」の設定のところで、ドキュメントは「AWS-StopEC2Instance」を指定するところくらいです。Cron式の時間は停止したい時間を指定してください。