为 Amazon ECS 服务自动扩缩创建计划操作 - Amazon Elastic Container Service
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 中国的 Amazon Web Services 服务入门 (PDF)

为 Amazon ECS 服务自动扩缩创建计划操作

创建计划操作,可让 Amazon ECS 根据日期和时间增加或减少服务运行的任务数。

  1. https://console.aws.amazon.com/ecs/v2 打开控制台。

  2. Clusters(集群)页面上,选择集群。

  3. 在“集群详细信息”页面,找到服务部分,然后选择服务。

    此时系统会显示服务详细信息页面。

  4. 选择服务自动扩缩

    此时将显示“服务自动扩缩”页面。

  5. 如果您尚未配置服务自动扩缩,请选择设置任务数

    此时将显示 Amazon ECS 服务任务数部分。

    Amazon ECS 服务任务数下,选择使用服务自动扩缩来调整服务所需的任务数

    此时将显示任务计数部分

    1. 对于最小任务数,输入供服务自动扩缩使用的任务数的下限。所需计数不会低于此计数。

    2. 对于最大值,输入供服务自动扩缩使用的任务数的上限。所需计数不会高于此计数。

    3. 选择选择“保存”

      此时将显示策略页面。

  6. 选择计划操作,然后选择创建

    此时将显示创建计划操作页面。

  7. 对于 操作名称,输入唯一的名称。

  8. 对于时区,请选择时区。

    列出的所有时区均来自 IANA 时区数据库。有关详细信息,请参阅 List of tz database time zones

  9. 对于启动时间,输入操作启动的日期时间

    如果您选择了循环计划,则开始时间将定义循环系列中第一个计划操作的运行时间。

  10. 对于 Recurrence(循环),请选择下列可用选项之一。

    • 要按重复性计划进行扩展,请选择 Amazon ECS 运行计划操作的频率。

      • 如果您选择以 Rate 开头的选项,则将为您创建 Cron 表达式。

      • 如果您选择 Cron,请输入 Cron 表达式,此表达式指定了执行操作的时间。

    • 如果只想扩展一次,请选择一次

  11. 任务调整下,执行以下操作:

    • 最小值中,输入服务应运行的最小任务数。

    • 最大值中,输入服务应运行的最大任务数。

  12. 选择创建计划操作

按如下所示,使用 Amazon CLI 为服务配置计划扩缩策略。将每个用户输入占位符替换为您自己的信息。

示例:仅扩展一次

使用以下 put-scheduled-action 命令和 --start-time "YYYY-MM-DDThh:mm:ssZ",以及 --MinCapacity 和(或)--MaxCapacity 选项。

aws application-autoscaling put-scheduled-action --service-namespace ecs \ --resource-id service/my-cluster/my-service \ --scheduled-action-name my-one-time-schedule \ --start-time 2021-01-30T12:00:00 \ --scalable-target-action MinCapacity=3,MaxCapacity=10
示例:根据周期性计划来计划扩缩

使用以下 put-scheduled-action 命令。将 user input 替换为您的值。

aws application-autoscaling put-scheduled-action --service-namespace ecs \ --resource-id service/my-cluster/my-service \ --scheduled-action-name my-recurring-action \ --schedule "rate(5 hours)" \ --start-time 2021-01-30T12:00:00 \ --end-time 2021-01-31T22:00:00 \ --scalable-target-action MinCapacity=3,MaxCapacity=10

指定的周期性计划会基于 UTC 时区运行。要指定不同的时区,请包含 --time-zone 选项和 IANA 时区的名称,如下例所示。

--time-zone "America/New_York"

有关详细信息,请参阅 List of tz database time zones