计划的 Auto Scaling 操作 - AWS Elastic Beanstalk

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

计划的 Auto Scaling 操作

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

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

配置计划的操作

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

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

  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