Auto Scaling 运行状况检查设置 - AWS Elastic Beanstalk

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

Auto Scaling 运行状况检查设置

Amazon EC2 Auto Scaling 监控其启动的每个 Amazon Elastic Compute Cloud (Amazon EC2) 实例的运行状况。如果任何实例出现意外终止,Auto Scaling 会检测该终止,并启动替代实例。默认情况下,为您的环境创建的 Auto Scaling 组使用 Amazon EC2 状态检查。如果环境中的某个实例未通过 Amazon EC2 状态检查,Auto Scaling 将中断该实例并替换它。

Amazon EC2 状态检查只包括实例的运行状况,而不包括应用程序的运行状况或者实例上运行的任意 Docker。如果应用程序崩溃,但它运行所在的实例仍然运行状况良好,则可能会从负载均衡器中逐出该实例,但 Auto Scaling 不会自动替换它。默认行为适合用于故障排除。如果 Auto Scaling 在应用程序崩溃之后立即替换该实例,您可能不会意识到有任何问题,即使它在启动之后快速崩溃。

如果您希望 Auto Scaling 替换其应用程序停止响应的实例,可以使用配置文件配置 Auto Scaling 组来使用 Elastic Load Balancing 运行状况检查。以下示例将组设置为使用负载均衡器的运行状况检查以及 Amazon EC2 状态检查,以确定实例的运行状况。

例 .ebextensions/autoscaling.config
Resources: AWSEBAutoScalingGroup: Type: "AWS::AutoScaling::AutoScalingGroup" Properties: HealthCheckType: ELB HealthCheckGracePeriod: 300

有关 HealthCheckTypeHealthCheckGracePeriod 属性的更多信息,请参阅《AWS CloudFormation 用户指南》中的 AWS::AutoScaling::AutoScalingGroup 和《Amazon EC2 Auto Scaling 用户指南》中的 Health Checks for Auto Scaling Instances

默认情况下,Elastic Load Balancing 运行状况检查配置为尝试通过端口 80 与您的实例进行 TCP 连接。这可以确认运行在实例上的 Web 服务器接受连接。但您可能希望自定义负载均衡器运行状况检查以确保应用程序处于良好状态,而不仅仅是 Web 服务器处于良好状态。宽限期设置可设置实例在不终止和替换的情况下无法通过运行状况检查的秒数。实例在从负载均衡器中被逐出后仍然能够恢复,因此请为实例指定适合于您的应用程序的时间量。