AWS Elastic Beanstalk
开发人员指南
AWS 文档中描述的 AWS 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 Amazon AWS 入门

计划的 Auto Scaling 操作

要通过可预测的峰值流量期间来优化环境对 Amazon EC2 实例的使用,请配置 Auto Scaling 组以更改计划中的实例计数。您可以用重复操作配置您的环境,以便在上午扩展,在夜间流量低时缩减。例如,如果您的营销活动会在有限时间段内使网站的流量增加,则可计划一个一次性事件以便在活动开始时扩展,而计划另一个事件以便在活动结束时缩减。

每个环境最多可以定义 120 个活跃的计划操作。Elastic Beanstalk 还会保留最多 150 个过期的计划操作,可以通过更新设置来重用这些操作。

配置计划的操作

您可以在 Elastic Beanstalk 控制台中为环境的 Auto Scaling 组创建计划的操作。

在 Elastic Beanstalk 控制台中配置计划的操作

  1. 打开 Elastic Beanstalk 控制台

  2. 导航到您的环境的管理页

  3. 选择 Configuration

  4. 容量配置卡上,选择修改

  5. 基于时间的扩展部分中,选择添加计划的操作

     Elastic Beanstalk Auto Scaling 计划操作配置窗口
  6. 填写以下计划操作设置:

    • 名称 – 指定一个唯一的名称,最多包含 255 个字母数字字符且不带空格。

    • Instances – 选择要应用于 Auto Scaling 组的最小和最大实例计数。

    • Desired capacity (可选) – 为 Auto Scaling 组设置所需的初始容量。在应用计划的操作后,触发器将根据其设置调整所需容量。

    • 出现 – 选择定期以在计划中重复扩展操作。

    • Start time – 对于一次性操作,请选择运行操作的日期和时间。对于重复操作,开始时间是可选的。指定此项以选择何时激活操作。如果未指定,则将立即激活操作,并根据循环表达式重复发生。

    • Recurrence – 使用 Cron 表达式指定您希望计划操作发生的频率。例如,30 6 * * 2 在 UTC 时间每周二的早上 6:30 运行操作。

    • End time (可选) – 对于重复操作,请选择停用操作的时间。如果不指定结束时间,操作将根据循环表达式重复发生。

      当计划的操作结束时,Amazon EC2 Auto Scaling 不会自动恢复为其以前的设置。配置第二个计划操作,以根据需要将 Amazon EC2 Auto Scaling 返回原始设置。

  7. 选择 Add

  8. 选择 Apply

    注意

    计划的操作在应用之前不保存。

aws:autoscaling:scheduledaction 命名空间

如果您需要配置大量的计划操作,则可以使用配置文件Elastic Beanstalk API 应用来自 YAML 或 JSON 文件的配置选项更改。通过这些方法还可以访问 Suspend 选项,以临时停用某个重复的计划操作。

注意

在控制台之外使用计划操作配置选项时,请使用 ISO 8601 时间格式指定开始时间和结束时间 (采用 UTC)。例如,2015-04-28T04:07:02Z。有关 ISO 8601 时间格式的更多信息,请参阅日期和时间格式。日期在所有计划操作中都必须是唯一的。

Elastic Beanstalk 在 aws:autoscaling:scheduledaction 命名空间中提供了用于计划操作设置的配置选项。使用 resource_name 字段可指定计划操作的名称。

例 scheduled-scale-up-specific-time-long.config

此配置文件指示 Elastic Beanstalk 在 2015-12-12T00:00:00Z 从 5 个实例扩展到 10 个实例。

option_settings: - namespace: aws:autoscaling:scheduledaction resource_name: ScheduledScaleUpSpecificTime option_name: MinSize value: '5' - namespace: aws:autoscaling:scheduledaction resource_name: ScheduledScaleUpSpecificTime option_name: MaxSize value: '10' - namespace: aws:autoscaling:scheduledaction resource_name: ScheduledScaleUpSpecificTime option_name: DesiredCapacity value: '5' - namespace: aws:autoscaling:scheduledaction resource_name: ScheduledScaleUpSpecificTime option_name: StartTime value: '2015-12-12T00:00:00Z'

例 scheduled-scale-up-specific-time.config

要在 EB CLI 或配置文件中使用简写语法,请将资源名称添加到命名空间。

option_settings: ScheduledScaleUpSpecificTime.aws:autoscaling:scheduledaction: MinSize: '5' MaxSize: '10' DesiredCapacity: '5' StartTime: '2015-12-12T00:00:00Z'

例 scheduled-scale-down-specific-time.config

此配置文件指示 Elastic Beanstalk 在 2015-12-12T07:00:00Z 进行缩减。

option_settings: ScheduledScaleDownSpecificTime.aws:autoscaling:scheduledaction: MinSize: '1' MaxSize: '1' DesiredCapacity: '1' StartTime: '2015-12-12T07:00:00Z'

例 scheduled-periodic-scale-up.config

此配置文件指示 Elastic Beanstalk 在每天上午 9 点进行横向扩展。计划该操作从 2015 年 5 月 14 日开始并于 2016 年 1 月 12 日结束。

option_settings: ScheduledPeriodicScaleDown.aws:autoscaling:scheduledaction: MinSize: '5' MaxSize: '10' DesiredCapacity: '5' StartTime: '2015-05-14T07:00:00Z' EndTime: '2016-01-12T07:00:00Z' Recurrence: 0 9 * * *

例 scheduled-periodic-scale-down.config

此配置文件指示 Elastic Beanstalk 在每天下午 6 点进行缩减以便不运行实例。如果您知道应用程序在工作时间之外的大多数时间闲置,则可以创建一个类似的计划操作。如果您的应用程序必须在工作时间之外停止运行,请将 MaxSize 更改为 0

option_settings: ScheduledPeriodicScaleUp.aws:autoscaling:scheduledaction: MinSize: '0' MaxSize: '1' DesiredCapacity: '0' StartTime: '2015-05-14T07:00:00Z' EndTime: '2016-01-12T07:00:00Z' Recurrence: 0 18 * * *

例 scheduled-weekend-scale-down.config

此配置文件指示 Elastic Beanstalk 在每周五下午 6 点进行缩减。如果您获知应用程序在周末并未接收到足够多的流量,则可创建一个类似的计划操作。

option_settings: ScheduledWeekendScaleDown.aws:autoscaling:scheduledaction: MinSize: '1' MaxSize: '4' DesiredCapacity: '1' StartTime: '2015-12-12T07:00:00Z' EndTime: '2016-01-12T07:00:00Z' Recurrence: 0 18 * * 5