【AWS】AWS のコスト節約を考える ~ EC2編 / 業務外でのEC2停止 ~

 ■ はじめに

https://dk521123.hatenablog.com/entry/2017/07/26/115400

で言った
「開発環境など必ずしも24時間起動する必要がないインスタンスは
時間帯/祝日に応じて停止する」
をもう少し深掘りする

 ■ シミュレーション

 * どれ位お得になるのかシミュレーションをする

「一ヶ月間無停止」vs「平日:07:30-22:30起動 / 土日停止」

一ヶ月間無停止
 => 30日 × 24時間 = 720時間

平日:07:30-22:30起動 / 土日停止 
 => 20日 × 15時間 = 300時間

 t2.smallの場合

料金表 

https://aws.amazon.com/jp/ec2/pricing/on-demand/

2017/12/07現在
 * $0.0304 /1 時間
 * $1 = \112.73


一ヶ月間無停止 
 => 720時間 × $0.0304
    = $21.888
    = \2467.43424

平日:07:30-22:30起動 / 土日停止 
 => 300時間 × $0.0304
    = $9.12
    = \1028.0976

結論

\2467.43424 - \1028.0976 = \1439.33664 (58.33%) お得 

 ■ 注意事項

 * 本番環境に影響しないようにする

 ■ 実行方法

【1】CloudWatch Events / Lambda による実行
【2】AWS CLI / シェル / クローンによる実行
【3】AWS OpsWorks(Time-Based) を使った方法

【1】CloudWatch Events / Lambda による実行

大きく分けて以下の3ステップを行う。

Step1: Lambda関数の作成
Step2: IAM Roleの作成
Step3: CloudWatch Eventsの設定

補足: Lambda の料金について

でも記載したが、
1 か月に 1,000,000 件の無料リクエストおよび
400,000 GB-秒のコンピューティング時間が無料利用枠なるので
ほぼ考えなくていい

 【2】AWS CLI / シェル / クローンによる実行

 * 個人的に比較的シンプルでいいなっと思った方法。
 * AWS CLI でのEC2開始・停止については、以下の関連記事を参照のこと。

欠点

* 必ずシェルを実行するEC2が必要で、
 そのEC2は24時間起動させておく必要がある

【3】AWS OpsWorks(Time-Based) を使った方法

欠点 (というか制限)

 * インターネットとの接続が必要

 参考文献

 全般
https://qiita.com/toshihirock/items/83c15c35562bed170fe4
 【1】CloudWatch Events / Lambda による実行
https://techblog.recochoku.jp/2429
https://coatiblog.sios.jp/coati-blog_171012/
https://geeknavi.net/aws/ec2%E3%82%A4%E3%83%B3%E3%82%B9%E3%82%BF%E3%83%B3%E3%82%B9%E3%82%92%E3%82%B9%E3%82%B1%E3%82%B8%E3%83%A5%E3%83%BC%E3%83%AB%E3%81%A7%E8%87%AA%E5%8B%95%E8%B5%B7%E5%8B%95%E3%83%BB%E8%87%AA%E5%8B%95
https://qiita.com/Arata_kr/items/1b6dca99d4eb6980f9ae
https://dev.classmethod.jp/cloud/aws/aws-answers-try-ec2-scheduler/
http://www.yokoyan.net/entry/2017/10/14/080000
https://dev.classmethod.jp/cloud/aws/ec2-lambda-auto-startstop-java/
 【2】AWS CLI / シェル / クローンによる実行
https://aimless.jp/blog/archives/2429/
https://qiita.com/gitya107/items/d303c25699ab88815190
補足:AWS CLI
https://qiita.com/tri-comma/items/271d3917899dc2993a00
【3】AWS OpsWorks を使った方法
http://recipe.kc-cloud.jp/archives/4146

 関連記事

運用中、気を付けること
https://dk521123.hatenablog.com/entry/2017/05/10/235544
AWS のコスト節約を考える ~ EC2編 / リザーブド・スポットインスタンス etc ~
https://dk521123.hatenablog.com/entry/2017/07/26/115400
AWS のコスト節約を考える ~ S3編 ~
https://dk521123.hatenablog.com/entry/2020/07/22/195336