亚马逊AWS官方博客

新增 – EC2 Auto Scaling 的目标跟踪策略

最近我介绍过 DynamoDB Auto Scaling,并演示了它如何使用多个 CloudWatch 警报来实现 DynamoDB 表的自动容量管理。此功能在后台使用了一种更为通用的 Application Auto Scaling 模型,我们计划以后逐渐在多项不同 AWS 服务中投入使用该模型。

这一新的 Auto Scaling 模型包括一项重要的新功能,我们称之为目标跟踪。在创建使用目标跟踪的 Auto Scaling 策略时,需要为特定 CloudWatch 指标选择一个目标值。然后,Auto Scaling 旋转相应的旋钮 (打个比方) 推动指标趋向于目标,同时调整相关的 CloudWatch 警报。比起使用初始步进扩展策略类型来手动设置范围和阈值而言,采用对应用程序有意义的任何指标驱动的单元来指定期望的目标,通常来说要更简单,也更为直接。不过,您可以结合使用目标跟踪和步进扩展来实现高级扩展策略。例如,您可以使用目标跟踪实现扩展操作,使用步进扩展实现缩减操作。

现在面向 EC2

现在我们为 EC2 Auto Scaling 增加了目标跟踪支持。您现在可以创建应用程序负载均衡器请求计数、CPU 负载、网络流量或自定义指标 (Request Count per Target 是新指标,也是在今天发布) 驱动的扩展策略:

这些指标都具有同一个重要的特性:添加额外的 EC2 实例会推动指标下降 (但不会改变总体负载),反之亦然。

要创建使用目标跟踪的 Auto Scaling 组,只需输入策略名称、选择一个指标,然后设置所需的目标值:

您可以选择禁用策略的缩减功能。如果禁用,您可以手动缩减,也可以使用独立的策略。您可以使用 AWS Management ConsoleAWS Command Line Interface (CLI),或 AWS SDKs 来创建目标跟踪策略。如果要使用目标跟踪,请注意以下事项:

  • 只要每个目标引用不同的指标,您可以在单个 Auto Scaling 组中跟踪多个目标。扩展始终选择能推动实现最高容量的策略。
  • 如果指标数据不足,则不会扩展。
  • Auto Scaling 会补偿指标快速、瞬时的波动,尽力将相应的容量波动减到最小。
  • 您可以通过 Auto Scaling APIAWS Command Line Interface (CLI)为自定义指标设置目标跟踪。
  • 大多数情况下,您应该选择根据基于 1 分钟频率 (也称为详细监控) 发布的指标进行扩展。根据基于 5 分钟的指标进行扩展,将导致响应时间变慢。

现已推出

这项新功能现已推出,您可以立即开始使用,无需额外费用。要了解更多信息,请阅读《Auto Scaling 用户指南》中的目标跟踪扩展

-Jeff