计划的 Auto Scaling 操作 - Amazon Elastic Beanstalk
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 中国的 Amazon Web Services 服务入门 (PDF)

本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。

计划的 Auto Scaling 操作

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

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

配置计划的操作

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

在 Elastic Beanstalk 控制台中配置计划的操作
  1. 打开 Elastic Beanstalk 控制台,然后在 Regions(区域)列表中选择您的 Amazon Web Services 区域。

  2. 在导航窗格中,选择 Environments(环境),然后从列表中选择环境的名称。

    注意

    如果您有多个环境,请使用搜索栏筛选环境列表。

  3. 在导航窗格中,选择 Configuration (配置)

  4. Capacity (容量) 配置类别中,选择 Edit (编辑)

  5. Time-based scaling (基于时间的扩展) 部分中,选择 Add scheduled action (添加计划的操作)

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

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

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

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

    • Occurrence (出现) - 选择 Recurring (定期) 以在计划中重复扩展操作。

    • Start time (开始时间) - 对于一次性操作,请选择运行操作的日期和时间。

      对于重复操作,开始时间是可选的。指定它以选择执行操作的最早时间。在此时间之后,操作将根据循环表达式重复发生。

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

    • End time (结束时间)(可选)- 对于重复性操作是可选的。如果指定此项,操作将根据循环表达式重新进行,并且在此时间之后不再执行。

      当计划的操作结束时,Auto Scaling 不会自动恢复为其以前的设置。配置第二个计划操作,以根据需要将 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: ScheduledPeriodicScaleUp.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: ScheduledPeriodicScaleDown.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