Configuración de una comprobación de estado personalizada para el grupo de escalado automático
Describe cómo integrar las comprobaciones de estado personalizadas con las opciones de comprobación de estado existentes que ofrece Amazon EC2 Auto Scaling. Al combinar las comprobaciones de estado personalizadas con otros tipos de comprobaciones de estado, puede crear un sistema integral de supervisión del estado adaptado a las necesidades de su aplicación.
Para empezar, cree pruebas personalizadas para comprobar que las instancias de su grupo de escalado automático funcionan correctamente y pueden gestionar el tráfico entrante. Si la comprobación de estado que configuró detecta que una instancia no responde, márquela como Unhealthy, lo que hará que Amazon EC2 Auto Scaling la sustituya de inmediato.
Puede enviar la información del estado de la instancia directamente a Amazon EC2 Auto Scaling mediante la AWS CLI o un SDK. En los siguientes ejemplos se muestra cómo utilizar la AWS CLI para configurar el estado de una instancia y, a continuación, comprobar su estado.
Utilice el siguiente comando set-instance-health.Unhealthy
aws autoscaling set-instance-health --instance-idi-1234567890abcdef0--health-statusUnhealthy
De forma predeterminada, este comando respeta el período de gracia de la comprobación de estado. Sin embargo, puede anular este comportamiento y no respetar el periodo de gracia al incluir la opción --no-should-respect-grace-period.
Utilice el comando describe-auto-scaling-groupsUnhealthy.
aws autoscaling describe-auto-scaling-groups --auto-scaling-group-namesmy-asg
A continuación se incluye una respuesta de ejemplo que muestra que el estado de la instancia es Unhealthy y que la instancia está terminando.
{
"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"
},
...
]
}
]
}