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 作為最後一道監控防線
相關概念¶
- CloudWatch Container Insights Addon Configuration 與成本優化
- eks-node-group----dangling---
- fluent-bit-eks----dangling---
來源 Sessions¶
| 日期 | Session | 貢獻摘要 |
|---|---|---|
| 2026-03-17 | 423fd9da-802c-452a-8e2f-03de575f2126 | 完整記錄針對 EKS 叢集降低 CloudWatch 費用的三層操作:Log Retention、停用 Fluent Bit、關閉細粒度 Metrics |