我的 AWS Elastic Beanstalk 环境无法像我预期的那样扩展。
解决方法
先决条件:
- 您的 Amazon Elastic Compute Cloud (Amazon EC2) 实例有足够的容量,可以在 AWS 区域进行扩展。此容量基于您在 AWS Auto Scaling 组配置中定义的最大实例数。
- 您的冷却时间取决于应用程序的安装和配置要求。
- 您使用默认的 Amazon CloudWatch 指标或 Locust 进行负载测试,并确定了启动扩展的最佳指标。
要配置扩展触发,请使用 Elastic Beanstalk 控制台或选项设置。
在 Elastic Beanstalk 控制台中配置扩展触发
- 打开 Elastic Beanstalk 控制台,然后选择您的环境。
- 在环境的导航窗格中,选择 Configuration(配置)。
- 在 Instance traffic and scaling(实例流量和扩缩)下,选择 Edit(编辑)。
- 在 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 环境的自动扩缩触发