使用 Auto Scaling 功能自动扩缩 Elastic Beanstalk 环境实例
本主题将介绍如何自定义 Auto Scaling 功能以管理 Elastic Beanstalk 环境的工作负载。您可以使用 Elastic Beanstalk 控制台、命名空间配置选项、AWS CLI 或 EB CLI 为环境配置 Auto Scaling 功能。
负载均衡环境或单实例环境
您的 AWS Elastic Beanstalk 环境包含一个 Auto Scaling 组,该组管理您环境中的 Amazon EC2 实例。在单实例环境中,Auto Scaling 组可确保始终有一个正在运行的实例。在负载均衡的环境中,您将为组配置一系列要运行的实例,Auto Scaling 将根据负载按需添加或删除实例。
EC2 实例配置
自动扩缩组还会应用您的配置选择来预置和管理环境中的 EC2 实例。您可以修改 EC2 配置来更改实例类型、密钥对、Amazon Elastic Block Store(Amazon EBS)存储以及只能在启动实例时配置的其他设置。
按需型实例与竞价型实例
作为一种选择,Elastic Beanstalk 可以在环境加入竞价型实例,并结合按需型实例来对它们进行管理。您可以配置 Amazon EC2 Auto Scaling,以通过启用容量再平衡监控和自动响应影响 Spot 实例可用性的更改。您还可以配置 Auto Scaling 服务用于为环境预置竞价型实例的 竞价型分配策略。
启用竞价型实例所需的权限
启用 Spot 实例请求需要使用 Amazon EC2 启动模板。在创建或更新环境过程中配置此功能时,Elastic Beanstalk 尝试将环境配置为使用 Amazon EC2 启动模板(如果环境尚未使用启动模板)。在这种情况下,如果您的用户策略缺乏必要的权限,则创建或更新环境可能会失败。因此,我们建议您使用托管用户策略,或者将所需的权限添加到自定义策略中。有关所需权限的详细信息,请参阅 启动模板要求的权限。
Auto Scaling 触发
Auto Scaling 组使用两个 Amazon CloudWatch 警报来触发扩展操作。当每个实例的平均出站网络流量在 5 分钟时间段内高于 6 MiB 或低于 2 MiB 时,默认触发器将扩展。要高效使用 Auto Scaling,请根据您的应用程序、实例类型和服务要求配置触发器。您可以基于若干个统计数据 (包括延迟、磁盘 I/O、CPU 使用率和请求计数) 来进行扩展。
计划的 Auto Scaling 操作
要通过可预测的峰值流量期间来优化环境对 Amazon EC2 实例的使用,请配置 Auto Scaling 组以更改计划中的实例计数。您可以安排每天或每周重复一次的组配置更改,或安排一次性更改,以便为可为网站带来大量流量的营销活动做好准备。
Auto Scaling 运行状况检查
Auto Scaling 监控它启动的每个 Amazon EC2 实例的运行状况。如果任何实例出现意外终止,Auto Scaling 会检测该终止,并启动替代实例。要配置组以使用负载均衡器的运行状况检查机制,请参阅Elastic Beanstalk 环境的 Auto Scaling 运行状况检查设置。