跳至内容

如何解决 Elastic Beanstalk 中与扩展触发器有关的问题?

1 分钟阅读
0

我的 AWS Elastic Beanstalk 环境无法像我预期的那样扩展。

解决方法

先决条件:

  • 您的 Amazon Elastic Compute Cloud (Amazon EC2) 实例有足够的容量,可以在 AWS 区域进行扩展。此容量基于您在 AWS Auto Scaling 组配置中定义的最大实例数。
  • 您的冷却时间取决于应用程序的安装和配置要求。
  • 您使用默认的 Amazon CloudWatch 指标或 Locust 进行负载测试,并确定了启动扩展的最佳指标。

要配置扩展触发,请使用 Elastic Beanstalk 控制台或选项设置。

在 Elastic Beanstalk 控制台中配置扩展触发

  1. 打开 Elastic Beanstalk 控制台,然后选择您的环境。
  2. 在环境的导航窗格中,选择 Configuration(配置)。
  3. Instance traffic and scaling(实例流量和扩缩)下,选择 Edit(编辑)。
  4. Capacity(容量)下,对于 Scaling Triggers(扩展触发),选择您的触发选项,然后选择 Apply(应用)。

**注意:**Elastic Beanstalk 为 aws:autoscaling:trigger 命名空间中的自动扩缩设置提供配置选项。某项设置所适用的资源会在此命名空间中组织该资源对应的设置。

使用选项设置配置扩展触发

使用选项设置中的 .ebextensions 修改您的扩展配置。要访问用于配置扩展触发的配置文件,请参阅 GitHub 网站上的 autoscaling-triggers-customize.config

以下示例配置文件会修改基于 CPU 利用率的扩展触发。如果实例的 CPU 利用率在三个连续的两分钟周期内均超过 80%,则自动扩缩会向自动扩缩组添加一个实例。如果同一周期内实例的 CPU 利用率均低于 20%,则自动扩缩会从自动扩缩组中移除一个实例。

option_settings:
  aws:autoscaling:trigger:
    MeasureName: CPUUtilization
    Statistic: Average
    Unit: Percent
    Period: '2'
    EvaluationPeriods: '3'
    UpperThreshold: '80'
    UpperBreachScaleIncrement: '1'
    LowerThreshold: '20'
    LowerBreachScaleIncrement: '-1'

以下示例显示了应用程序 zip 文件中 .ebextensions 目录和 autoscaling-triggers-customize.config 文件的结构:

~/my-app/
|-- .ebextensions/
|   |-- autoscaling-triggers-customize.config
|   `-- other.config
|-- other application files

相关信息

适用于您的 Elastic Beanstalk 环境的自动扩缩触发

AWS 官方已更新 3 个月前