$ aws ce get-cost-and-usage --time-period Start=2025-01-01,End=2025-05-01 --metrics UnblendedCost --group-by Type=TAG,Key=ResourceType
根据 Gartner 和 Flexera 的报告,平均 15-32% 的云支出是浪费——也就是说,你可能每花 100 块钱就有 15-32 块打了水漂。今天我们整理了一份完整的云资源浪费检测清单,帮助你系统性地识别和消除浪费。
为什么云浪费如此普遍?
- DevOps 自助服务 —— 开发者可以秒级创建资源,但没有人关注成本
- 测试环境遗留 —— 项目结束后测试环境仍然运行
- "保险"心态 —— 为了保险而申请过大的资源
- 缺乏可见性 —— 没有统一的成本监控
- 快速迭代 —— 业务快速变化,资源来不及清理
一、Compute(计算资源)浪费
EC2/VM 相关
- Idle Instances —— 运行但 CPU < 5% 的实例
- Underutilized Instances —— CPU 长期 < 20%
- Large Reserved Instances 未被充分利用 —— 买了 m5.24xlarge 但只用 10%
- 测试环境 24/7 运行 —— 非工作时间应该关闭
- 未关联的 Elastic IPs —— 已停止实例但 IP 仍分配
检查脚本
# AWS:识别低利用率实例 aws ce get-cost-and-usage \ --time-period Start=2025-01-01,End=2025-05-01 \ --granularity DAILY \ --metrics "UnblendedCost" "UsageQuantity" \ --filter file://filter.json
Auto Scaling 问题
- ASG 最大容量设置过高,长期达不到
- 最小容量设置过高,夜间/周末浪费
- ASG Health Check 设置错误,实例被反复终止和创建
二、Storage(存储资源)浪费
EBS / Managed Disks
- 空闲 Volumes —— 已停止实例但卷仍挂载
- Empty Volumes —— 没有任何 I/O 的卷
- 过大的卷 —— 100GB 卷只用了 5GB
- Old Snapshots —— 超过 90 天的快照
S3 / Blob Storage
- 未启用生命周期策略 —— 冷数据仍在 Standard 层
- 重复数据 —— 同一文件在不同 bucket 存储多次
- Versioning 过度 —— 版本过多且无清理策略
- 空 Bucket —— 创建后从未使用
- MFA Delete 未启用 —— 意外删除风险
Database 存储
- 数据库实例存储空间过大
- 只读副本从未被使用
- 备份保留期设置过长
三、Network(网络资源)浪费
- Idle Elastic Load Balancers —— 没有流量的 ELB
- 空闲 NAT Gateways —— 关联的实例已删除
- 未使用的 Elastic IPs —— 解绑后未释放
- 过度配置的 VPC Peering —— 实际只用到 10%
- VPN 连接长期闲置 —— 远程办公后不再使用
- 过度的 Cross-AZ 流量 —— 数据传输费用高
四、Database 服务浪费
- RDS Multi-AZ 过度 —— 开发环境也需要 Multi-AZ?
- Database 实例过大 —— 类似 Right-Sizing
- Read Replicas 未被使用 —— 只为"保险"创建
- 备份窗口设置不合理 —— 高峰期跑备份
五、安全和合规浪费
- 过度的安全组规则 —— 0.0.0.0/0 开放所有端口
- 未使用的 IAM Users —— 员工离职后账号未禁用
- 过度的 KMS Keys —— 每人一个 Key?
自动检测工具推荐
AWS 原生工具
- AWS Compute Optimizer —— 推荐 Right-Sizing
- AWS Cost Explorer —— 成本可视化
- AWS Trusted Advisor —— 部分检查免费
第三方工具
- Kubecost —— Kubernetes 成本监控
- CloudHealth —— 企业级多云管理
- Spot.io (Cloud Analyzer) —— 自动检测浪费
- Densify —— AI 驱动的 Right-Sizing
浪费检测行动清单
- 每周:检查 Cost Explorer 中的异常费用
- 每月:运行闲置资源扫描脚本
- 每季度:Full FinOps Review,识别 Right-Sizing 机会
- 每半年:Review Reserved Instance 覆盖率和利用率
- 建立资源生命周期管理制度:新资源创建有流程,废弃资源有清理机制
- 自动化:使用 Lambda/Cloud Functions 自动清理闲置资源
- 告警:设置预算告警,在浪费发生前发现
ROI 计算
假设你每月云支出 $100,000:
- 当前浪费率:25%
- 每月浪费金额:$25,000
- 消除 50% 的浪费:节省 $12,500/月
- 年度节省:$150,000
云成本优化是最快看到 ROI 的技术投资——只需要系统性地运行这份清单,就能发现并消除大量浪费!