步骤 5:配置您的服务使用服务 Auto Scaling - Amazon Elastic Container Service
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 中国的 Amazon Web Services 服务入门 (PDF)

步骤 5:配置您的服务使用服务 Auto Scaling

可以将 Amazon ECS 服务配置为使用 Auto Scaling 根据 CloudWatch 警报上调或下调 Amazon ECS 服务中所需的任务数。

Amazon ECS Service Auto Scaling支持以下类型的扩展策略:

  • 目标跟踪扩展策略(推荐)——根据特定指标的目标值,增加或减少服务运行的任务数。这与恒温器保持家里温度的方式类似。您选择一个温度,恒温器将完成所有其他工作。

  • 分步扩展策略 - 根据一组扩展调整,增加或减少服务运行的任务数,这些调整称为步进调整,将根据警报严重程度发生变化。

有关更多信息,请参阅服务自动扩展

配置基本 Service Auto Scaling 参数
  1. 如果您尚未这样做,请按照步骤 1:配置基本服务参数中的基本服务配置过程操作。

  2. 设置 Auto Scaling 页面上,选择配置服务 Auto Scaling 以调整您的服务的预期计数

  3. 对于 Minimum number of tasks(最小任务数),输入供 Service Auto Scaling 使用的任务数的下限。您的服务的预期数量不会自动调整到低于此数量。

  4. 对于 Desired number of tasks (预期任务数),此字段是使用您之前输入的值预先填充的。此时您可更改服务的预期数量,但此值必须介于此页面上指定的最小任务数和最大任务数之间。

  5. 对于 Maximum number of tasks(最大任务数),输入供 Service Auto Scaling 使用的任务数的上限。您的服务的预期数量不会自动调整到高于此数量。

  6. 对于 IAM role for Service Auto Scaling (Auto Scaling 服务的 IAM 角色),请选择 ecsAutoscaleRole。如果此角色不存在,请选择 Create new role (创建新角色) 以让控制台为您创建此角色。

  7. 以下过程提供了用于为您的服务创建目标跟踪或分步扩展策略的步骤。选择您需要的扩展策略类型。

以下步骤将帮助您创建可用于为服务触发扩缩活动的目标跟踪扩缩策略和 CloudWatch 警报。

为服务配置目标跟踪扩展策略
  1. 对于 Scaling policy type (扩展策略类型) 选择 Target tracking (目标跟踪)。

  2. 对于 Policy name (策略名称),请键入策略的描述性名称。

  3. 对于 ECS service metric (ECS 服务指标),请选择要跟踪的指标。可供使用的指标如下:

    • ECSServiceAverageCPUUtilization -服务的平均 CPU 使用率。

    • ECSServiceAverageMemoryUtilization -服务的平均内存使用率。

    • ALBRequestCountPerTarget - Application Load Balancer 目标组中每个目标完成的请求数。

  4. 对于 Target value (目标值),请输入策略应保持的指标值。例如,对 ALBRequestCountPerTarget 使用目标值 1000,或对 ECSServiceAverageCPUUtilization 使用目标值 75(%)。

  5. 对于 Scale-out cooldown period (扩展冷却时间),请输入在一个扩展活动完成后、另一个扩展活动开始之前的时间量 (秒)。虽然扩展冷却时间有效,但启动冷却的上一扩展活动所添加的容量将计算为下一扩展所需容量的一部分。旨在持续 (但不过度) 扩大。

  6. 对于 Scale-in cooldown period (缩减冷却时间),请输入在一个缩减活动完成之后、另一个缩减活动开始之前的时间量(秒)。缩减冷却时间用于阻止后续缩减请求,直至冷却时间到期。旨在谨慎地缩小以保护您的应用程序的可用性。但是,如果在缩减后,另一个警报在冷却时间内触发了扩大策略,Service Auto Scaling 将立即扩大您的可扩展目标。

  7. (可选)要为此策略关闭横向缩减操作,请选择 Disable scale-in(禁用横向、缩减)。这样,您稍后就可以为缩减创建单独的扩展策略。

  8. 选择 Next step(下一步)

以下步骤将帮助您创建可用于为您的服务触发扩展活动的分步扩缩策略和 CloudWatch 警报。您可以创建 Scale out 警报来增加服务的预期数量,并创建 Scale in 警报来减少服务的预期数量。

为您的服务配置分步扩展策略
  1. 对于 Scaling policy type (扩展策略类型) 选择 Step scaling (分步扩展)。

  2. 对于 Policy name (策略名称),请键入策略的描述性名称。

  3. 对于 Execute policy when (执行策略的时间),选择要用于扩展或缩减您的服务的 CloudWatch 警报。

    您可使用之前创建的现有 CloudWatch 警报,也可选择创建新警报。Create new alarm (创建新警报) 工作流程可让您创建基于要创建的服务的 CPUUtilizationMemoryUtilization CloudWatch 警报。要使用其他指标,您可在 CloudWatch 控制台中创建一个警报,然后返回本向导以选择该警报。

  4. (可选)如果您选择创建新警报,请完成以下步骤。

    1. 对于 Alarm name,为您的警报输入一个描述性名称。例如,如果您的警报应在服务 CPU 使用率超过 75% 时触发,则可将该警报称为 service_name-cpu-gt-75

    2. 对于 ECS service metric,选择要用于警报的服务指标。有关更多信息,请参阅服务自动扩展

    3. 对于 Alarm threshold,输入以下信息以配置您的警报:

      • 为警报选择 CloudWatch 统计数据(原定设置值 Average (平均值) 适用于很多情况)。有关更多信息,请参阅 Amazon CloudWatch 用户指南 中的统计信息

      • 为您的警报选择比较运算符并输入比较运算符检查所针对的值(例如,>75)。

      • 输入触发警报前的连续时间段的数量和总长度。例如,2 个连续的 5 分钟时间段需要 10 分钟才会触发警报。由于您的 Amazon ECS 任务可快速扩展和缩减,所以应考虑使用少量的连续时间段和较短的时间段长度以尽快响应警报。

    4. 选择 Save(保存)。

  5. 对于 Scaling action,输入以下信息以配置您的服务对警报的响应方式:

    • 选择为您的服务增加预期数量、减少预期数量还是设置具体预期数量。

    • 如果您选择增加或减少任务,请输入触发扩展操作后要增加或减少的任务数(或现有任务的百分比)。如果您选择设置预期数量,请输入在触发扩展操作时应为您的服务设置的预期数量。

    • (可选)如果您选择增加或减少任务,请选择将之前的值用作整数还是现有预期数量的百分比值。

    • 输入您的步进扩展调整的下限。默认情况下,对于您的第一次扩展操作,此值是触发您的警报的指标数量。例如,以下扩展操作将在 CPU 使用率高于 75% 时增加 100% 的现有预期数量。

  6. (可选) 您可重复 步骤 5 以便为单个警报配置多个扩展操作 (例如,在 CPU 使用率介于 75% 和 85% 之间时增加 1 个任务,在 CPU 使用率超过 85% 时增加 2 个任务)。

  7. (可选)如果您选择增大或减小现有预期数量的百分比,请在 Add tasks in increments of N task(s) 中输入最小增量值。

  8. 对于 Cooldown period,输入两次扩展操作之间的秒数。

  9. Scale in 策略重复至 步骤 1步骤 8,然后选择 Save(保存)。

  10. 选择 Next step (下一步) 来继续导航到步骤 6:查看并创建您的服务