ITエンジニアの成長ブログ

ITエンジニアとして行う勉強の発信&日々の生活で体験した楽しいことをゆるく発信

AWS EC2を自動起動・停止する方法

今回は、大手クラウドサービスであるAWSのコンピューティングサービスの一つであるEC2の自動起動・停止する方法についてお話していきたいと思います。
この記事を書くきっかけとしては、EC2をマネジメントコンソールなどで手動で停止させたりするのではなく、夜間や休日など使わない時間は自動で停止させ、平日は自動で仕事開始時間に起動してほしかったからです。

EC2の自動起動・停止方法について

では、さっそくEC2を自動起動・停止するための設定方法について見ていきましょう。実は、AWSのEC2を自動起動・停止するための方法は1個だけではなく、何個かあるようです。ですので、今回は私が実際に試したやり方を紹介したいと思います。個人的にはこの方法がとっても簡単そうなので、ぜひ試してみてください。

設定の詳細

画面キャプチャを見ながら、起動設定を見ていきます。

まずは、マネジメントコンソールでCloudWatchを選択します。

f:id:mr_star:20210111134421p:plain
EC2自動起動・停止設定①

CloudWatchのメニューから「ルール」を選択します。

f:id:mr_star:20210111134753p:plain
EC2自動起動・停止設定②

開いた画面より、「ルールの作成」ボタンを押下します。
遷移した画面で実際の細かい設定をしていきます。

f:id:mr_star:20210111134939p:plain
EC2自動起動・停止設定③


以下のキャプチャに表示されている通り、まずはイベントソースの設定を行います。
イベントソースとは、簡単に言うと何をトリガーにして処理を実行するかを定義しているもののようです。
実際に発生する様々なイベントをトリガーとして選択できますが、今回は時間によってトリガーを発生させたいので、スケジュールを選択します。時間についてはCron式で記載します。

以下のキャプチャでは、Cron式を「30 23 ? * SUN-THU *」として指定しています。話が逸れてしまいますので、今回はCron式について細かい説明は省きますが、このような特定の記載方法でトリガーとしたい時間を指定することができます。

注意していただきたいのですが、実はこの時間はGMT(日本時間-9時間)なのでそれを考慮して指定する必要があります。
※キャプチャで指定したCron式では、平日(月~金)の日本時間の8:30を指定しています。

f:id:mr_star:20210617192356p:plain
EC2自動起動・停止設定④

先ほど設定した時間に何のイベントを発生させたいのかをターゲットとして設定します。以下では、「SSM Automation」を選択し、EC2を起動したいのでドキュメントは「AWS-StartEC2Instance」を指定します。あとは、自動起動したいEC2のInstanceIdを記載します。記載できたら、画面下の「設定の詳細」ボタンを押下して次に進みます。

f:id:mr_star:20210617192958p:plain
EC2自動起動・停止設定⑤

ルールの詳細画面になりますが、説明欄にこのルールがどのような用途か記載するだけで終わりです。右下のボタンを押してルールの作成は完了です。
※キャプチャはルールを更新する場面なので、「ルールの更新」となっていますが、実際は「ルールの作成」などになっているはずです

f:id:mr_star:20210617193436p:plain
EC2自動起動・停止設定⑥
自動停止

停止設定については画面キャプチャは省略しますが、起動設定として異なる箇所は「SSM Automation」の設定のところで、ドキュメントは「AWS-StopEC2Instance」を指定するところくらいです。Cron式の時間は停止したい時間を指定してください。

おわりに

これで終わりです!
いかがでしたでしょうか。とても簡単に自動起動・停止の実現ができたと思います。私自身調査に少し時間がかかりましたが、意外とあっさりできるものだなととても驚きました。
AWSは続々と新しい機能が増えるので、仕事で使ったりしていく場合は常に最新情報をキャッチして、さらなる業務効率を目指していきたいなと思いました(それも結構大変なコストですが・・・)
それでは今回はこの辺で失礼いたします。最後までお読みいただきありがとうございました。