设置自动扩缩组的运行状况检查宽限期 - Amazon EC2 Auto Scaling
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 中国的 Amazon Web Services 服务入门 (PDF)

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

设置自动扩缩组的运行状况检查宽限期

如果 Amazon EC2 Auto Scaling 运行状况检查确定某个 InService 实例运行不正常,则会将其终止并启动一个新的替换实例。运行状况检查宽限期指定了因新实例运行状况不正常而将其终止之前继续运行的最短时间(以秒为单位)。

一个示例用例可能是要求 Amazon EC2 Auto Scaling 避免在 Elastic Load Balancing 运行状况检查失败且原因是实例仍在初始化时采取行动。Elastic Load Balancing 运行状况检查并行运行,从实例向负载均衡器注册时开始。宽限期可防止 Amazon EC2 Auto Scaling 标记您新启动的实例,如果这些实例Unhealthy在进入状态后没有立即通过这些运行状况检查,则不必要地将其终止。InService

在控制台中,创建自动扩缩组时的运行状况检查宽限期默认为 300 秒。使用 Amazon CLI 或 SDK 创建 Auto Scaling 组时,其默认值为 0 秒。值为 0 将关闭运行状况检查宽限期。

如果将该值设置过高,会降低 Amazon EC2 Auto Scaling 运行状况检查的效果。如果您为实例启动使用了生命周期挂钩,则可以将运行状况检查宽限期设置为 0。借助生命周期挂钩,Amazon EC2 Auto Scaling 提供了一种方法,可确保实例始终在完成初始化之后才会进入 InService 状态。有关更多信息,请参阅 Amazon EC2 Auto Scaling 生命周期钩子

宽限期适用于以下实例:

  • 新启动的实例

  • 处于待机状态后重新投入运行的实例

  • 您手动附加到组的实例

重要

在运行状况检查宽限期内,如果 Amazon EC2 Auto Scaling 检测到某个实例不再处于 Amazon EC2 running 状态,则会立即将该实例标记为Unhealthy并予以替换。例如,假设您停止了自动扩缩组中的某个实例,则该实例会被标记为Unhealthy并被替换。

设置组的运行状况检查宽限期

您可以为新的和现有的自动扩缩组设置运行状况检查宽限期。

Console
修改新组的运行状况检查宽限期

创建 Auto Scaling 组时,在 “配置高级选项” 页面、“运行状况检查”、“健康检查宽限期” 上输入时间(以秒为单位)。这是 Amazon EC2 Auto Scaling 在实例进入状态后必须等待多长时间才能检查其运行InService状况。

Amazon CLI
修改新组的运行状况检查宽限期

--health-check-grace-period 选项添加到 create-auto-scaling-group 命令。以下示例将为一个名为 my-asg 的新自动扩缩组配置运行状况检查宽限期,其值为 60 秒。

aws autoscaling create-auto-scaling-group --auto-scaling-group-name my-asg \ --health-check-grace-period 60 ...
Console
修改现有群组的运行状况检查宽限期
  1. 访问 https://console.aws.amazon.com/ec2/,打开 Amazon EC2 控制台,然后从导航窗格中选择 Auto Scaling Groups(Auto Scaling 组)。

  2. 在屏幕顶部的导航栏中,选择您在其中创建了自动扩缩组的 Amazon Web Services 区域 。

  3. 选中 Auto Scaling 组旁边的复选框。

    这时将在页面底部打开一个拆分窗格。

  4. Details (详细信息) 选项卡上,选择 Health checks (运行状况检查)Edit (编辑)

  5. Health check grace period(运行状况检查宽限期)下,输入时间长短,单位为秒。这是 Amazon EC2 Auto Scaling 在实例进入状态后必须等待多长时间才能检查其运行InService状况。

  6. 选择更新

Amazon CLI
修改现有群组的运行状况检查宽限期

--health-check-grace-period 选项添加到 update-auto-scaling-group 命令。以下示例将为一个名为 my-asg 的现有自动扩缩组配置运行状况检查宽限期,其值为 120 秒。

aws autoscaling update-auto-scaling-group --auto-scaling-group-name my-asg \ --health-check-grace-period 120
注意

我们强烈建议同时为您的自动扩缩组设置默认实例预热时间。有关更多信息,请参阅 为 Auto Scaling 组设置原定设置实例预热