AWSコスト最適化
AWSのコストを継続的に最適化するための実践手法を学びます。料金モデルの理論ではなく、「何をどの順番で見て、どう判断するか」に焦点を当てます。
所要時間
約45分
前提知識
- AWS基礎(料金モデル)
- EC2(購入オプション)
- RDS・データベース(Aurora料金体系)
コスト最適化の基本方針
コスト最適化は「安くすること」ではなく、同じ成果をより少ないコストで達成することです。
優先順位:
- 不要なものを止める — 効果最大、リスク最小
- サイズを適正化する — Right Sizing
- 料金モデルを最適化する — RI / Savings Plans
- アーキテクチャを改善する — Graviton移行、キャッシュ活用等
上から順に取り組みます。1を飛ばして3に行くのはアンチパターンです。使っていないリソースにRIを買っても意味がありません。
ステップ1: 不要リソースの特定と停止
確認すべきもの
| 対象 | 確認方法 | よくある無駄 |
|---|---|---|
| EC2インスタンス | Cost Explorer → サービス別 | 開発/検証用が常時起動 |
| EBS ボリューム | EC2コンソール → ボリューム → available | 削除したEC2のボリュームが残存 |
| Elastic IP | VPCコンソール → 未関連付け | 確保したまま未使用(課金対象) |
| RDSスナップショット | RDSコンソール → スナップショット | 古い手動スナップショットの蓄積 |
| NAT Gateway | VPC Flow Logs → トラフィック量 | 不要なAZに配置 |
| ロードバランサー | ターゲットグループのヘルシーホスト数 | ターゲットが0のALB |
開発/検証環境のスケジュール運用
開発・検証環境を営業時間外に停止するだけで、コンピュートコストを約65%削減できます。
# EventBridge + Lambda で平日9-19時のみ起動するスケジュール例
# 開始: cron(0 0 ? * MON-FRI *) # UTC 0:00 = JST 9:00
# 停止: cron(0 10 ? * MON-FRI *) # UTC 10:00 = JST 19:00
EKSの場合は、Karpenter または Cluster Autoscaler でノード数を0まで縮小可能です。