为您的 Auto Scaling 群组设置自定义运行状况检查 - Amazon A EC2 uto Scaling

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

为您的 Auto Scaling 群组设置自定义运行状况检查

您可以使用自定义运行状况检查来补充 Amazon A EC2 uto Scaling 提供的现有运行状况检查选项。通过将自定义运行状况检查与其他运行状况检查类型相结合,您可以创建针对应用程序需求量身定制的全面运行状况监控系统。

首先,请创建自定义测试,以验证 Auto Scaling 组中的实例是否正常运行并且可以处理传入流量。如果您配置的运行状况检查检测到某个实例没有响应,请将该特定实例标记为Unhealthy,这会导致 Amazon A EC2 uto Scaling 立即将其替换。

您可以使用 AWS CLI 或将实例的运行状况直接发送到 Amazon A EC2 uto Scaling SDK。以下示例向您展示了如何使用 AWS CLI 来配置实例的运行状况,然后验证实例的运行状况。

使用以下set-instance-health命令将指定实例的运行状况设置为Unhealthy

aws autoscaling set-instance-health --instance-id i-1234567890abcdef0 --health-status Unhealthy

默认情况下,此命令会执行运行状况检查宽限期。不过,您可以通过包括 --no-should-respect-grace-period 选项来覆盖此行为,不执行此宽限期。

使用以下describe-auto-scaling-groups命令验证实例的运行状况是否为Unhealthy

aws autoscaling describe-auto-scaling-groups --auto-scaling-group-names my-asg

以下是一个示例响应,向您显示实例的运行状况为Unhealthy,并且实例正在终止。

{ "AutoScalingGroups": [ { .... "Instances": [ { "ProtectedFromScaleIn": false, "AvailabilityZone": "us-west-2a", "LaunchTemplate": { "LaunchTemplateName": "my-launch-template", "Version": "1", "LaunchTemplateId": "lt-1234567890abcdef0" }, "InstanceId": "i-1234567890abcdef0", "InstanceType": "t2.micro", "HealthStatus": "Unhealthy", "LifecycleState": "Terminating" }, ... ] } ] }