如何使用 Amazon EC2 Auto Scaling 计划操作积极提升特定事件的容量并对它们进行故障排查?

上次更新时间:2020 年 8 月 19 日

我如何使用 Amazon Elastic Compute Cloud (Amazon EC2) Auto Scaling 计划操作积极提升特定事件的容量并对它们进行故障排查?

解决方法

您可以使用计划操作根据流量模式或预期的未来流量扩展容量。例如,您可能有一个应用程序每天在相同的两小时时间段内遇到流量增加的情况。或者,您可能正在计划即将举行的一次性活动,期望在几分钟内使流量显著提高。计划的操作在您指定的时间(以 UTC 表示)运行。根据您为最小容量、最大容量和所需容量设置的值进行扩展。

为 Auto Scaling 组创建计划操作

  1. 打开 Amazon EC2 控制台
  2. 从导航窗格中选择 Auto Scaling
  3. 选择将要在其中配置计划操作的 Auto Scaling 组。
  4. 在 Automatic scaling(自动扩展)选项卡上的 Scheduled actions(计划操作)下,选择 Create scheduled action(创建计划操作)。
  5. 为计划操作指定名称
  6. 根据您的使用案例指定 Auto Scaling 组的大小。您必须至少指定以下参数之一:
    对于最小值,指定组中所需的最小实例数。
    对于最大值,指定组中可存在的最大实例数。
    注意:除了计划操作之外,在扩展策略时,设置最小值和最大值参数也非常有用。实例数必须在最小/最大范围内,即使在计划操作触发后触发扩展策略(横向扩展或缩减)也是如此。
    对于所需数量,指定事件所需的实例数量。
  7. 根据您的使用案例指定触发计划操作的时间表。
    对于一次性事件:Recurrence(再次发生)选择 Once(一次)。对于 Start time(开始时间),为您的事件指定时间戳(日期和时间)。
    对于重复发生事件:选择再次发生时间间隔(例如 5 分钟或 1 天)。对于Start time(开始时间),指定第一次运行计划操作的时间戳(日期和时间)。如果指定 Recurrence(再次发生)和 Start time(开始时间),服务将在开始时间执行操作,然后基于指定的再次发生执行操作。(可选)指定 End time(结束时间)设置重复发生计划操作的结束日期。
    注意:如果所需的再次发生时间间隔选项不可用,则为 Recurrence(再次发生)选择 cron。然后,使用 Unix cron 语法格式为所需的时间表编写自定义 cron 表达式。
  8. 选择 Create(创建)。

排查计划操作的问题

如果未按预期触发计划的操作:

  • 检查 Auto Scaling 组的活动历史记录,了解预计将触发计划操作的时间段。如果没有相关活动,请查看计划操作的配置。确认按预期配置了再次发生模式和开始时间。
  • 对于重复发生操作:如果指定了结束时间,则在结束时间过后会自动删除计划的操作。要确认是否指定了结束时间,请检查 AWS CloudTrail API 日志以了解配置计划操作的时间。在 CloudTrail 中检查 PutScheduledUpdateGroupAction API 调用。如果您在日志中看到了 API,则必须创建新的计划操作以恢复计划扩展。
  • 请注意,在配置的开始时间与实际开始时间之间可能会有几秒钟的延迟。

如果已触发计划的操作,但未进行所需的更改:

  • 检查是否存在已暂停的进程(如启动或终止)。如果存在任何暂停的进程,您可以恢复这些进程。
  • 如果配置了动态扩展策略:检查活动历史记录是否存在由动态扩展策略引起的任何扩展事件。检查计划操作开始时间之前和之后几分钟的历史记录。如果存在此类活动,则可能会覆盖计划的操作。
  • 检查计划操作的开始时间左右的活动历史记录。如果配置了另一个计划操作以在类似的时间段内触发,请确认它不会影响或覆盖新的计划操作。如有必要,请更新计划的操作以解决这些冲突。
  • 检查活动历史记录中是否有任何失败或取消的启动或终止活动。如果找到此类活动,请展开失败/取消事件,并查看描述以了解更多详细信息。有关排查这些错误的更多信息,请参阅排查 Amazon EC2 Auto Scaling 问题

注意:当您知道一次性事件或重复性事件的时间范围时,使用计划操作主动扩展 Auto Scaling 组非常有用。当您没有提前知道事件的时间范围时,您可以使用预测扩展功能。


这篇文章对您有帮助吗?


您是否需要账单或技术支持?