Auto Scaling
用户指南
AWS 服务或AWS文档中描述的功能,可能因地区/位置而异。点 击 Getting Started with Amazon AWS to see specific differences applicable to the China (Beijing) Region.

保持 Auto Scaling 组中的实例数量

创建启动配置和 Auto Scaling 组后,Auto Scaling 组首先启动最小数量(或指定的所需容量)的 EC2 实例。如果 Auto Scaling 组没有附加其他扩展条件,Auto Scaling 组始终保持这一最小数量的运行实例。

为了保持相同数量的实例,Auto Scaling 对 Auto Scaling 组内运行的实例执行定期运行状况检查。如果发现实例运行状况不佳,它将终止该实例,并启动新实例。

Auto Scaling 组中所有实例在开始启动时都处于良好运行状态。除非 Auto Scaling 收到实例运行状况不佳的通知,否则将认为它们运行状况良好。此通知可能来自以下一个或多个来源:Amazon EC2、Elastic Load Balancing 或自定义运行状况检查。

确定实例运行状况

默认情况下,Auto Scaling 组通过定期检查 EC2 实例状态检查结果来确定每个实例的运行状况。如果实例状态是除 running 以外的其他任何状态,或者系统状态为 impaired,则 Auto Scaling 认为实例运行状况不佳并启动替换实例。有关 EC2 实例状态检查的更多信息,请参阅 Amazon EC2 用户指南(适用于 Linux 实例) 中的监控实例状态

如果您已将 Auto Scaling 组与负载均衡器或目标组相关联,并已选择使用 ELB 运行状况检查,Auto Scaling 将通过查看实例状态检查和 ELB 运行状况检查的结果来确定实例的运行状况。如果实例处于除 running 之外的其他状态、系统状态为 impaired,或者 Elastic Load Balancing 报告实例未能通过运行状况检查,则 Auto Scaling 将实例标记为运行状况不佳。

您可以通过指定额外检查来自定义 Auto Scaling 组进行的运行状况检查。或者,如果您有自己的运行状况检查系统,可以直接将实例的运行状况信息从系统发送到 Auto Scaling。

替换运行状况不佳的实例

在 Amazon EC2 或 Elastic Load Balancing 运行状况检查中将实例标记为运行状况不佳之后,将立即安排对它进行替换。它不会自动恢复良好的运行状况。您可以通过调用 SetInstanceHealth 操作 (或 as-set-instance-health 命令) 进行手动干预,将该实例重新设置为良好的运行状况。但是如果该实例已终止,将导致错误。因为将实例标记为运行状况不佳和实际终止该实例之间的间隔非常短,尝试使用 SetInstanceHealth 操作(或 as-set-instance-health 命令)将该实例重新设置为良好运行状况可能仅适用于已暂停的组。有关更多信息,请参阅 暂停和恢复 Auto Scaling 流程

Auto Scaling 将创建用于终止运行状况不佳的实例的新扩展活动,然后终止该实例。随后,另一个扩展活动将启动新实例以替代终止的实例。

实例终止后,任何关联的弹性 IP 地址都会取消关联,并且不会自动与新实例关联。必须手动将这些弹性 IP 地址与新实例关联。同样,实例终止后,其附加的 EBS 卷也会分离。必须手动将这些 EBS 卷附加到新实例。