Amazon EC2 Auto Scaling
用户指南
AWS 文档中描述的 AWS 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 Amazon AWS 入门

扩展 Auto Scaling 组的大小

扩展是增加或减少应用程序的计算容量的能力。扩展从一个事件或扩展操作开始,以指示 Auto Scaling 组启动或终止 Amazon EC2 实例。

Amazon EC2 Auto Scaling 为满足您的应用程序需求提供了多种调整扩展的方式。因此,您需要很好地了解您的应用程序,这十分重要。请注意以下事项:

  • Amazon EC2 Auto Scaling 应该在您的应用程序架构中发挥什么作用? 通常可以将自动扩展视为一种增加和减少容量的方法,但自动扩展在保持稳定数量的服务器方面也是非常有用的。

  • 哪些成本约束对您比较重要? 由于 Amazon EC2 Auto Scaling 使用 EC2 实例,您只需为使用的资源付费。了解成本约束可以帮助您确定何时扩展应用程序以及扩展量。

  • 哪些指标对应用程序比较重要?Amazon CloudWatch 支持一些可用于 Auto Scaling 组的不同指标。我们建议您查看这些指标,以了解其中哪些与您的应用程序最有意义。

扩展选项

Amazon EC2 Auto Scaling 提供了多种扩展 Auto Scaling 组的方式。

始终保持当前实例级别

您可以配置 Auto Scaling 组,使其始终保持最小数量或指定的所需数量的运行实例。为了保持当前实例等级,Amazon EC2 Auto Scaling 将对 Auto Scaling 组内运行的实例执行定期运行状况检查。如果 Amazon EC2 Auto Scaling 发现运行状况不佳的实例,它将终止该实例,并启动新实例。有关配置 Auto Scaling 组以保持当前实例等级的信息,请参阅保持 Auto Scaling 组中的实例数量

手动扩展

手动扩展是扩展资源的最基本方法。只指定 Auto Scaling 组的最大容量、最小容量或所需容量的变化。Amazon EC2 Auto Scaling 可以管理创建或终止实例的流程来维护更新的容量。有关更多信息,请参阅手动扩展

按计划扩展

有时候,您确切地知道何时要增加或减少组中的实例数量,因为该需求遵循可预测的计划。按计划扩展意味着扩展操作作为时间和日期的函数自动执行。有关更多信息,请参阅 适用于 Amazon EC2 Auto Scaling 的计划扩展

根据需求进行扩展

按策略扩展是一种更高级的资源扩展方法,您可以定义参数以控制扩展过程。例如,您可以创建策略,要求在平均 CPU 使用率连续 15 分钟保持在 90% 以上时扩展 EC2 实例。在根据条件变化进行扩展,但却不知道条件何时改变时,可以使用这种方法。您可以通过设置 Amazon EC2 Auto Scaling 来进行响应。有关更多信息,请参阅 适用于 Amazon EC2 Auto Scaling 的动态扩展

多个扩展策略

一个 Auto Scaling 组可附加多个扩展策略。有时您可以合并扩展策略以发挥 Auto Scaling 组的最大性能。

为了说明多个策略如何协同工作,请考虑使用一个 Auto Scaling 组和一个 Amazon SQS 队列的应用程序,该队列用于向组中的 EC2 实例发送请求。为了帮助确保应用程序性能达到最佳级别,有两个策略用于控制何时扩展 Auto Scaling 组。一个策略使用 Amazon CloudWatch CPUUtilization 指标检测实例何时达到 90% 的容量。另一个策略使用自定义指标检测 SQS 队列何时填满消息。有关基于 SQS 队列中的消息活动进行扩展的更多信息,请参阅基于 Amazon SQS 进行扩展

如果将多个策略附加到某个 Auto Scaling 组,两个策略可能会同时指示扩大 (或缩小) 该组。在上一个示例中,有可能 EC2 实例触发 CPUUtilization 指标的 CloudWatch 警报,而 SQS 队列同时触发自定义指标的警报。

如果发生这些情况,Amazon EC2 Auto Scaling 选择对 Auto Scaling 组影响最大的策略。例如,假定 CPU 使用率策略启动一个实例,而 SQS 队列策略启动两个实例。如果同时满足两个策略的扩大条件,则 Amazon EC2 Auto Scaling 优先选择 SQS 队列策略,因为它对 Auto Scaling 组影响最大。这会导致 Auto Scaling 组启动两个实例。即使策略对扩展使用不同的条件,此优先顺序也适用。例如,如果一个策略启动三个实例,另一个策略将容量增加 25%,Amazon EC2 Auto Scaling 优先使用此时对该组影响最大的策略。