Amazon EC2 Auto Scaling
用户指南
AWS 文档中描述的 AWS 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 Amazon AWS 入门

保持 Auto Scaling 组中的实例数量

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

为了保持相同数量的实例,Amazon EC2 Auto Scaling 为 Auto Scaling 组中运行的实例执行定期运行状况检查。如果发现实例未正常运行,它将终止该实例,并启动新实例。

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

确定实例运行状况

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

如果已将 Auto Scaling 组与一个负载均衡器或目标组相关联,并且选择使用 Elastic Load Balancing 运行状况检查,Amazon EC2 Auto Scaling 将执行实例状态检查和 Elastic Load Balancing 运行状况检查以确定实例运行状态。如果实例处于 running 以外的状态,系统状态为 impaired 或者 Elastic Load Balancing 报告实例未通过运行状况检查,则 Amazon EC2 Auto Scaling 将实例标记为未正常运行。

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

替换运行状况不佳的实例

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

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

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