跳轉到

EKS CloudWatch Cost Optimization

概念概覽

三層成本優化策略

核心知識

三層成本優化策略

Layer 1 — Log Retention 設定 - 對所有 log groups 設定 7 天 retention(預設無 retention = 永久保留 = 持續計費) - Log group 命名規則:/aws/containerinsights/{cluster-name}/{application|dataplane|host|performance} - 驗證指令:aws logs describe-log-groups --query 快速確認所有 group 的 retentionInDays

Layer 2 — 停用 Fluent Bit DaemonSet - 正確做法:透過 EKS addon 設定 containerLogs.enabled=false,**不要**手動刪除 DaemonSet - 手動刪除會被 addon reconciler 重新拉起;透過 addon 設定才是持久性停用 - 驗證:kubectl get ds -n amazon-cloudwatch,確認 fluent-bit DaemonSet 消失

Layer 3 — 關閉 container/pod 層級 Metrics - 使用 disable_metric_extraction 設定,僅關閉最細粒度的 container/pod metrics - 保留 node/cluster/namespace/service 層級監控,維持基本可觀測性

自動化工具設計原則

  • 腳本應支援 --dry-run 模式,先預覽再實際執行(尤其生產環境)
  • addon 更新追蹤:aws eks describe-addon --query addon.status

適用場景判斷

  • 非生產環境(dev/staging):可全部停用
  • 生產環境:謹慎評估 Fluent Bit,確認有替代 log 方案(Datadog、Prometheus + Grafana)才停用

經驗教訓

  • 停用 Fluent Bit 必須透過 addon 設定,手動刪除 DaemonSet 無效(會被 reconciler 重建)

  • 生產環境停用前必須確認已有替代的 log/metrics 方案

  • cost optimization 腳本應先 --dry-run,特別是跨多個叢集批次操作時

  • Log Retention 是最低風險、最高回報的第一步,不影響任何功能

常見陷阱

  • 手動刪除 Fluent Bit DaemonSet 無效,addon reconciler 會重建

  • 生產環境貿然停用 Fluent Bit 且無替代方案,將導致 container logs 完全消失

  • 未設定 retention 的 log group 預設永久保留,是隱性費用黑洞

最佳實踐

  • 按層次推進:先設定 retention(無風險)→ 再關閉細粒度 metrics → 最後評估停用 Fluent Bit

  • 停用後觀察 7-14 天確認費用曲線符合預期

  • 保留 node/cluster 層級 metrics 作為最後一道監控防線

相關概念

來源 Sessions

日期 Session 貢獻摘要

| 2026-03-17 | 423fd9da-802c-452a-8e2f-03de575f2126 | 完整記錄針對 EKS 叢集降低 CloudWatch 費用的三層操作:Log Retention、停用 Fluent Bit、關閉細粒度 Metrics |


本概念頁面由 Semi-Brain Wiki 系統自動維護

最後更新: 2026-03-17