『k8s コスト』は何もしないと簡単に倍増する
k8s は便利な反面、適切な最適化なしでは想定の2〜3倍のコストになるケースが多発しています。本記事では編集部の視点で、コスト最適化を公開情報をもとに整理します。Kubernetes 本番運用 もご参考に。
FinOps の3原則
(1) Inform:可視化・チーム共有。(2) Optimize:継続的削減。(3) Operate:定例業務化。(4) SRE と CFO の連携。(5) 月次レビュー。
コスト可視化ツール
(1) OpenCost:OSS の k8s コスト計測。(2) Kubecost:商用 + コミュニティ版。(3) クラウド請求書 + ラベル。(4) Datadog Cloud Cost。(5) FOCUS 仕様:標準化進行(公開情報をもとに)。
Right-sizing
(1) VPA レポート:実使用量分析。(2) requests/limits 調整。(3) 過大リソース予約の削減。(4) マルチコンテナの最適化。(5) 定期見直し:四半期に1回。
スポットインスタンス
(1) 50〜90% 割引(公開情報をもとに)。(2) 中断耐性:ステートレスサービス向け。(3) Karpenter:スポットファースト。(4) マルチAZ/インスタンスタイプ:在庫リスク分散。(5) テスト・バッチに最適。
コミット割引
(1) Reserved Instances:1〜3年契約。(2) Savings Plans (AWS):柔軟性高。(3) Committed Use (GCP)。(4) ベースライン分のみに適用。(5) 30〜50% 割引。
クラスタオートスケーラ
(1) Cluster Autoscaler:標準。(2) Karpenter:高速・柔軟。(3) 過剰プロビジョニング回避。(4) cool-down 設定。(5) スケジュールベースのスケーリング。
ネットワークとストレージ
(1) egress コスト注意。(2) クロスAZ通信削減。(3) S3 lifecycle:低頻度アクセスへ。(4) EBS 最適化:gp3 > gp2。(5) 未使用 PV削除。CDN/Edge 実践 もご参考に。
失敗しがちなパターン
(1) requests 大盛り:常時無駄。(2) Reserved 過剰購入。(3) 未使用リソース放置。(4) cost allocation 不在:誰の責任か不明。(5) 定期見直しなし。対策は、(1)VPA、(2)ベースライン分のみ、(3)月次クリーンアップ、(4)label/namespace 単位、(5)四半期 FinOps レビュー、です。