AWS Compute Optimizer

通过机器学习分析 CloudWatch 指标,为 EC2、EBS、Lambda、ECS 提供资源规格优化建议的服务

概述

AWS Compute Optimizer 通过机器学习模型分析从 CloudWatch 收集的 CPU 使用率、内存使用率和网络 I/O 等指标,为 EC2 实例、EBS 卷、Lambda 函数和 ECS 任务提供合理化建议。不仅检测过度配置的资源以显示成本节约机会,还警告因资源不足导致的性能下降风险。此外还提供 Savings Plans 和预留实例的购买建议,以具体金额试算从按需价格的折扣率。

ML 模型从历史指标推导最优解的机制

Compute Optimizer 建议精度的支撑是以 CloudWatch 指标时序数据为输入的机器学习模型。默认分析过去 14 天的指标,启用增强基础设施指标后可参考最长 93 天的数据,将月末批处理或季度结算高峰等长期负载模式纳入考量。对于 EC2 实例,综合评估 CPU 使用率、内存使用率(通过 CloudWatch Agent)、磁盘 I/O 和网络带宽,建议在保持同等或更好性能的同时成本更低的实例类型。例如 m5.xlarge 的 CPU 使用率持续低于 15% 时,会建议缩减到 m5.large 并显示年度节省金额。建议附带 Over-provisioned(过度)、Under-provisioned(不足)、Optimized(最优)三级标签,便于直观判断处理优先级。

Lambda 和 ECS 合理化中容易忽视的要点

Compute Optimizer 不仅针对 EC2,还为 Lambda 函数的内存设置和 ECS on Fargate 的任务规格提供建议。Lambda 增加内存时 CPU 算力也按比例增加,因此即使内存使用量不大,CPU 密集型处理增加内存可能同时改善延迟和降低成本。Compute Optimizer 考虑这一特性,从执行时间和内存使用量两方面建议最优内存大小。ECS 任务方面,如果 Fargate 设置的 vCPU 和内存组合实际使用率较低,会建议更小的任务规格。Azure 也有类似的资源优化功能 Azure Advisor 的成本建议,但 Compute Optimizer 通过 ML 模型分析长期指标的机制是 Azure Advisor 所不具备的,后者仅限于基于阈值的简单判定。云成本管理书籍(Amazon)系统性整理了合理化的判断标准。

Savings Plans 建议与组织级推广

Compute Optimizer 不仅提供单个资源的规格建议,还提供 Savings Plans 购买建议。根据过去的使用模式,按 1 年或 3 年承诺期试算最优 Savings Plans 金额,并显示与按需价格的折扣率。与 Organizations 联动后,可从管理账户一次性查看组织内所有成员账户的建议,省去逐个账户启用的麻烦。实际注意事项是,Compute Optimizer 的建议仅基于过去指标的预测,不考虑未来工作负载变化(新功能发布带来的流量增加、服务下线带来的资源减少等)。应用建议前应确认近期路线图和计划中的架构变更,建立团队判断建议是否合理的流程。此外,应用建议后应在 CloudWatch 仪表板监控性能指标 1-2 周,确认无问题后再处理下一个资源,采取渐进式方法更为安全。

共有するXB!