AWS 基礎 18

AWS Cost Cutter
消し忘れを仕組みでなくす

料金表を眺めるだけではコストは下がりません。EC2・RDS・ECSの停止単位を理解し、必要時の手動起動と定時の自動停止を組み合わせます。

TL;DR

  1. Cost Cutterは複数リソースをまとめて操作するローカルスクリプト。
  2. EC2・RDS・ECSでは、止める対象とAPIが異なる。
  3. 起動は必要時、停止はSchedulerで強制する非対称設計が実用的。

01費用は稼働時間から生まれる

学習していない時間の常時稼働を減らす。

AWS学習環境の停止対象を示す図
節約の中心は、使わない時間に計算資源を動かし続けないこと。

Cost CutterはAWSの製品名ではない。リポジトリ内のシェルスクリプトが、環境とup/downを受け取り、複数のAWS API呼び出しをまとめて実行する。

MODE=down ENV=stg ./scripts/aws_cost_cutter/main.sh
MODE=up   ENV=stg ./scripts/aws_cost_cutter/main.sh

02止め方はリソースごとに違う

見えている実行体ではなく、再生成する管理元を止める。

AWSリソースごとの停止方法の図
ECS Taskだけを止めてもServiceが復元するため、desired countを0にする。
対象止める単位注意点
EC2InstanceをStopNAT・踏み台など対象IDを管理
RDSDB InstanceをStop停止継続期間の制約を考慮
ECSServiceのdesired countを0Task単体停止ではServiceが再作成

注意:停止はアプリの利用不能を伴う。stg学習環境の対象と時間帯を明示して実行する。

03人間とSchedulerの役割分担

使う時は人が起動し、消し忘れは仕組みが止める。

手動起動と自動停止の時間軸
起動を固定時刻にせず、停止だけを自動化すると無駄な稼働を抑えやすい。

最初は数分後に一度だけ実行して対象・権限・結果を確認してから、本番のcron式へ切り替える。

結論

  1. Cost Cutterは手動操作を一つに束ねる道具、Schedulerは停止忘れを防ぐ安全網。
  2. EC2・RDS・ECSは停止の意味が違うため、対象リソースの管理責任を理解する。
  3. 必要時だけ起動し、使わない時間は自動で止める運用が学習環境に合う。