Japan
サイト内の現在位置を表示しています。
AWS利用時のインスタンスの停止忘れによる無駄コスト削減
JobCenter Lab vol.1こんにちは。WebSAM JobCenter ブログ担当の荒尾です。
今回は、AWS利用時にありがちな、インスタンスの停止忘れにより発生する無駄なコストを抑える方法をご紹介します。
例えば開発環境など、稼働日の日中しか使わないようなインスタンスの場合、夜間は停止にすれば、インスタンスを使用していない時間分のコストが削減できます。
しかし、いざ運用していると、停止することを忘れて、作成したインスタンスが停止されずに放置されていたりすることが多々あります。
そこで、私たちも実際に行っているWebSAM JobCenterの「拡張カスタムジョブ部品」の中の「AWS連携部品」を利用した解決方法をご紹介します。
インスタンスの開始/停止を自動化する
インスタンスの停止忘れをなくすには、仕組化&自動化するのが一番です。
これをWebSAM JobCenterを活用して実施します。
実現するためのポイントは以下の3つです。
実際の手順は以下になります。
1.インスタンスへのタグ付け
開発環境ではインスタンスの作成や削除が頻繁に行われるので、インスタンスIDを指定しての開始/停止を行う運用は煩雑になるため、タグを活用しています。
私たちの例では以下のルールにしています。
- 自動開始するインスタンス:「AutoOn」というタグに「1」をつける
- 自動停止するインスタンス:「AutoOff」というタグに「1」をつける

タグの設定例
2.AWS連携部品でインスタンスを開始/停止させるジョブ定義作成
WebSAM JobCenterの「拡張カスタムジョブ部品」には、AWSの操作を自動化する「AWS連携部品」があるので、これを利用して開始/停止を自動化します。
以下は、「AutoOff」タグに「1」がセットされている全インスタンスを停止するジョブ定義例です。
ジョブ定義の作成は、以下のように、実行したい機能の部品をジョブフロー内に配置し、パラメータを設定します。


インスタンスの起動/停止に利用する拡張カスタムジョブ部品と、実現に必要な設定パラメータはそれぞれ以下になります。
- 格納パス
/Root/System/AmazonWebService/ElasticComputeCloud - Amazon Web Services (AWS) 連携部品
定義名 機能 StartInstances インスタンス起動 StopInstances インスタンス停止
- カスタムパラメータ設定タブ
変数 設定値 説明 tag AutoOFF=1 タグ「AutoOFF」の値が1のインスタンスを停止 AutoOn=1 タグ「AutoON」の値が1のインスタンスを起動 - 実行設定タブ
項目 設定値 説明 投入キュー カスタムジョブ用のキュー 予め作成した、カスタムジョブ専用のキューを指定します(必須)
3.スケジュールで自動運用
最後にスケジュールで、インスタンスの開始/停止を自動運用にします。
以下は、インスタンス停止のスケジュールの表示例です。
稼働日の20時にジョブを実行するスケジュール(「AWS停止」)を、インスタンス停止のジョブ定義(「管理_EC2インスタンス停止」)と関連付けて、タグ「AutoOff」が「1」の全インスタンスを20時に自動停止するようにしています。

スケジュールされたジョブ定義例
おわりに
インスタンスの開始についても同様にジョブ定義とスケジュールを作成することで、稼働日でのインスタンスの開始も自動化できます。
上記で紹介した方法により、インスタンスの開始/停止が漏れなく自動化できるため、AWSを利用していない夜間の無駄なコストを削減できるようになります。