查看运行状况检查状态以及运行状况检查失败的原因 - Amazon EC2 Auto Scaling
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅中国的 Amazon Web Services 服务入门

查看运行状况检查状态以及运行状况检查失败的原因

运行健康状况检查允许 Amazon EC2 Auto Scaling 确定实例何时运行状况不佳并应终止。对于保持在 Stopped 状态的暖池实例,它采用了 Amazon EBS 拥有的 Stopped 实例的可用性知识来识别运行状况不佳的实例。它通过调用 DescribeVolumeStatus API 以确定附加到实例的 EBS 卷的状态来执行此操作。对于保存在 Running 状态的暖池实例,它依赖 EC2 状态检查来确定实例运行状况。虽然暖池实例没有运行状况检查宽限期,但 Amazon EC2 Auto Scaling 在生命周期钩子结束之前不会开始检查实例运行状况。

当发现实例运行状况不佳时,Amazon EC2 Auto Scaling 会自动删除运行状况不佳的实例,并创建一个新实例来替换它。实例通常在运行状况检查失败后几分钟内终止。有关更多信息,请参阅替换运行不正常的实例

还支持自定义运行状况检查。如果您拥有自己的运行状况检查系统,该系统可以检测实例的运行状况并将此信息发送到 Amazon EC2 Auto Scaling,则这将非常有用。有关更多信息,请参阅自定义运行状况检测

在 Amazon EC2 Auto Scaling 控制台中,您可以查看暖池实例的状态(运行状况良好或运行状况不佳)。您也可以使用 Amazon CLI 或其中一个 SDK 来查看其运行状况。

查看暖池实例的状态(控制台)

  1. 打开 Amazon EC2 Auto Scaling 控制台:https://console.aws.amazon.com/ec2autoscaling/

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

    这时将在 Auto Scaling groups(Auto Scaling 组)页面底部打开一个拆分窗格。

  3. 实例管理选项卡的暖池实例下,生命周期列显示实例的状态。

    运行状况列显示了 Amazon EC2 Auto Scaling 对实例运行状况所做的评估。

    注意

    新实例开始运行状况良好。在生命周期钩子完成之前,不会检查实例的运行状况。

查看运行状况检查失败原因(控制台)

  1. 打开 Amazon EC2 Auto Scaling 控制台:https://console.aws.amazon.com/ec2autoscaling/

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

    这时将在 Auto Scaling groups(Auto Scaling 组)页面底部打开一个拆分窗格。

  3. 活动选项卡的活动历史记录下,状态列显示您的 Auto Scaling 组是否已成功启动或终止实例。

    如果它终止了任何运行状况不佳的实例,原因列显示终止的日期和时间以及运行状况检查失败的原因。例如,“在 2021-04-01T21:48:35Z 时,实例因 EBS 卷运行状况检查失败而停止服务”。

查看暖池实例的状态 (Amazon CLI)

通过使用以下 describe-warm-pool 命令查看 Auto Scaling 组的暖池。

aws autoscaling describe-warm-pool --auto-scaling-group-name my-asg

输出示例。

{ "WarmPoolConfiguration": { "MinSize": 0, "PoolState": "Stopped" }, "Instances": [ { "InstanceId": "i-0b5e5e7521cfaa46c", "InstanceType": "t2.micro", "AvailabilityZone": "us-west-2a", "LifecycleState": "Warmed:Stopped", "HealthStatus": "Healthy", "LaunchTemplate": { "LaunchTemplateId": "lt-08c4cd42f320d5dcd", "LaunchTemplateName": "my-template-for-auto-scaling", "Version": "1" } }, { "InstanceId": "i-0e21af9dcfb7aa6bf", "InstanceType": "t2.micro", "AvailabilityZone": "us-west-2a", "LifecycleState": "Warmed:Stopped", "HealthStatus": "Healthy", "LaunchTemplate": { "LaunchTemplateId": "lt-08c4cd42f320d5dcd", "LaunchTemplateName": "my-template-for-auto-scaling", "Version": "1" } } ] }

查看运行状况检查失败原因 (Amazon CLI)

使用以下 describe-scaling-activities 命令。

aws autoscaling describe-scaling-activities --auto-scaling-group-name my-asg

以下为示例响应,其中 Description 表示您的 Auto Scaling 组已终止实例,Cause 指示运行状况检查失败的原因。

扩展活动按开始时间排序。首先描述仍在进行的活动。

{ "Activities": [ { "ActivityId": "4c65e23d-a35a-4e7d-b6e4-2eaa8753dc12", "AutoScalingGroupName": "my-asg", "Description": "Terminating EC2 instance: i-04925c838b6438f14", "Cause": "At 2021-04-01T21:48:35Z an instance was taken out of service in response to EBS volume health check failure.", "StartTime": "2021-04-01T21:48:35.859Z", "EndTime": "2021-04-01T21:49:18Z", "StatusCode": "Successful", "Progress": 100, "Details": "{\"Subnet ID\":\"subnet-5ea0c127\",\"Availability Zone\":\"us-west-2a\"...}", "AutoScalingGroupARN": "arn:aws:autoscaling:us-west-2:123456789012:autoScalingGroup:283179a2-f3ce-423d-93f6-66bb518232f7:autoScalingGroupName/my-asg" }, ... ] }