はじめに
「しまった!、EC2インスタンス(使わないのに)夜間つけっぱなしにしてたああああ😭💰 」ってこと、AWSをお使いの方であれば、1度や2度に限らずあるのではないでしょうか。
EC2インスタンスは起動時間による従量課金があるため、使わない時間帯はできるだけ停止しておくことで、余分な利用料の発生は防ぎたいものです。
今回は、そのような事態を防ぐ方法を当社が提供しているCloud AutomatorというAWS運用自動化サービスを使って防ぐ方法をご紹介します。
ちなみに、8月3日@東京、8月24日@大阪にて、そのようなCloud Automatorを活用したコスト削減等のセミナーを開催しますので、ご興味があれば是非ご参加ください。
方針
今回は「EC2インスタンスに特定のタグをつけておけば、自動でインスタンスが定時に停止するようにしておく」仕組みを構築しようと思います。
タグを使うことで、以下のメリットがあります。
- インスタンスによって停止する・しないを制御できる
- インスタンスによって停止する時間を指定できる
実現方法として、定期実行の実現に、Cloud Automatorのタイマートリガー、タグによる制御の実現に、タグ指定機能を用います。
タイマートリガーにより、毎日定時に特定のアクション(今回はインスタンスの停止)の実行が可能となり、タグの指定によりジョブを一度作成しておけば後から作成されるインスタンスもCloud Automatorのジョブの対象にすることができます。
設定の流れ
Cloud Automatorのジョブの作成
まずは、Cloud Automatorのジョブを作成します。
- タイマートリガー
- インスタンスのタグ指定
がポイントです。
ジョブ作成全体の流れはクイックスタートガイドをご覧ください。
EC2インスタンスへのタグの付与
構築するEC2インスタンスにも先ほどと同様のタグを付与します。
例えば、AWSマネジメントコンソールのインスタンスの新規作成画面では、以下の画面でタグを追加できます。
EC2インスタンス作成の全体の手順は以下のリンクなどをご確認ください。
動作確認
あとはジョブが実行されるのを待つだけです。
特にジョブの設定変更なしでEC2インスタンスが指定の時間に停止されれば成功です!
おわりに
今回、Cloud Automatorを使って、EC2インスタンスの自動停止を仕込む方法をご紹介しました。
次回は、インスタンスの停止忘れの別の防止方法をご紹介できればと思います。