Acerca de las comprobaciones de estado para el grupo de escalado automático - Amazon EC2 Auto Scaling

Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.

Acerca de las comprobaciones de estado para el grupo de escalado automático

En este tema se proporciona una descripción general de los tipos de comprobaciones de estado disponibles y se describen las consideraciones clave para integrar las comprobaciones de estado de Amazon EC2 Auto Scaling en sus aplicaciones.

Tipos de comprobación de estado

Amazon EC2 Auto Scaling puede determinar el estado de salud de una InService instancia mediante una o más de las siguientes comprobaciones de estado:

Tipo de comprobación de estado ¿Qué comprueba?

Comprobaciones de estado y eventos programados de Amazon EC2

  • Comprueba que la instancia se esté ejecutando.

  • Comprueba si hay problemas de hardware o software subyacentes que puedan afectar a la instancia.

Este es el tipo de comprobación de estado predeterminado para un grupo de escalado automático.

Comprobaciones de estado Elastic Load Balancing

  • Comprueba si el balanceador de cargas informa que la instancia está en buen estado y confirma si la instancia está disponible para gestionar las solicitudes.

Para ejecutar este tipo de comprobación de estado, debe activarla para su grupo de Auto Scaling.

Comprobaciones de estado de VPC Lattice

  • Comprueba si VPC Lattice informa que la instancia está en buen estado y confirma si la instancia está disponible para gestionar las solicitudes.

Para ejecutar este tipo de comprobación de estado, debe activarla para su grupo de Auto Scaling.

Comprobaciones de estado personalizadas

  • Comprueba si hay algún otro problema que pueda indicar problemas de estado de la instancia, de acuerdo con las comprobaciones de estado personalizadas.

Comprobaciones de estado de Amazon EC2

Cuando se lanza una instancia, se adjunta al grupo de escalado automático e ingresa en el estado InService. Para obtener información sobre los distintos estados del ciclo de vida de las instancias de un grupo de escalado automático, consulte Ciclo de vida de instancias de Amazon EC2 Auto Scaling.

Amazon EC2 Auto Scaling comprueba periódicamente el estado de todas las instancias dentro del grupo de escalado automático para asegurarse de que se ejecuten y estén en buenas condiciones.

Las comprobaciones de estado

Amazon EC2 Auto Scaling utiliza los resultados de las comprobaciones de estado de instancias de Amazon EC2 Auto Scaling y las comprobaciones de estado del sistema para determinar el estado de una instancia. Si la instancia se encuentra en cualquier estado de Amazon EC2 distinto de running o si el estado de las comprobaciones de estado se vuelve impaired, Amazon EC2 Auto Scaling considera que la instancia está en mal estado y la reemplaza. Esto ocurre cuando la instancia tiene alguno de los estados siguientes:

  • stopping

  • stopped

  • shutting-down

  • terminated

Las comprobaciones de estado de Amazon EC2 no requieren ninguna configuración especial y siempre están habilitadas. Para obtener más información, consulte Tipos de comprobaciones de estado en la Guía del usuario de Amazon EC2.

importante

Amazon EC2 Auto Scaling permite que las comprobaciones de estado fallen ocasionalmente, sin realizar ninguna acción. Cuando se produce un error en una comprobación de estado, Amazon EC2 Auto Scaling espera unos minutos AWS para solucionar el problema. No marca de inmediato una instancia como Unhealthy cuando el estado de las comprobaciones de estado se vuelve impaired.

Sin embargo, si Amazon EC2 Auto Scaling detecta que una instancia ya no se encuentra en el estado running, esta situación se trata como un error inmediato. En este caso, marca inmediatamente la instancia como tal Unhealthy y la reemplaza.

Eventos programados

Amazon EC2 puede programar ocasionalmente los eventos de las instancias para que se ejecuten después de una marca temporal determinada. Para obtener más información, consulte Eventos programados para sus instancias en la Guía del usuario de Amazon EC2.

Si una de las instancias se ve afectada por un evento programado, Amazon EC2 Auto Scaling considera que la instancia está en mal estado y la reemplaza. La instancia no comienza a cerrarse hasta que se alcanza la fecha y la hora especificadas en la marca de tiempo.

Comprobaciones de estado Elastic Load Balancing

Al activar las comprobaciones de estado de Elastic Load Balancing para su grupo de Auto Scaling, Amazon EC2 Auto Scaling puede utilizar los resultados de esas comprobaciones de estado para determinar el estado de una instancia.

Antes de poder activar las comprobaciones de estado de Elastic Load Balancing para su grupo de Auto Scaling, debe configurar un balanceador de cargas de Elastic Load Balancing y configurar una comprobación de estado para determinar si las instancias están en buen estado. Para obtener más información, consulte Prepárese para conectar un balanceador de cargas de Elastic Load Balancing.

Después de adjuntar el balanceador de carga a su grupo de Auto Scaling, ocurre lo siguiente:

  • Amazon EC2 Auto Scaling registra las instancias del grupo de escalado automático con el equilibrador de carga.

  • Una vez que se termina de registrar una instancia, ingresa al estado InService y estará disponible para su uso con el equilibrador de carga.

De forma predeterminada, Amazon EC2 Auto Scaling ignora los resultados de las comprobaciones de estado de Elastic Load Balancing. Después de activar estas comprobaciones de estado para su grupo de Auto Scaling, cuando Elastic Load Balancing indica que una instancia está registrada como talUnhealthy, Amazon EC2 Auto Scaling marca la instancia Unhealthy en su siguiente comprobación de estado periódica y la reemplaza.

Si el drenaje de conexiones (retardo de anulación del registro) está habilitado para su equilibrador de carga, Amazon EC2 Auto Scaling espera a que se completen las solicitudes en curso o que expire el tiempo de espera máximo antes de terminar las instancias en mal estado.

nota

Para obtener instrucciones sobre cómo conectar el balanceador de carga y activar las comprobaciones de estado de Elastic Load Balancing para su grupo de Auto Scaling, consulteAdjunta un balanceador de cargas de Elastic Load Balancing a tu grupo de Auto Scaling.

Al activar las comprobaciones de estado de Elastic Load Balancing para un grupo, Amazon EC2 Auto Scaling puede reemplazar las instancias que Elastic Load Balancing notifique como en mal estado, pero solo después de que el balanceador de carga esté en ese estado. InService Para obtener más información, consulte Verificación del estado de asociación del equilibrador de carga.

Comprobaciones de estado de VPC Lattice

De forma predeterminada, Amazon EC2 Auto Scaling ignora los resultados de las comprobaciones de estado de VPC Lattice. Si lo desea, puede activar estas comprobaciones de estado para su grupo de Auto Scaling. Después de hacer esto, cuando VPC Lattice informa de una instancia registrada como Unhealthy, Amazon EC2 Auto Scaling marca la instancia como Unhealthy en su próxima comprobación de estado periódica y la reemplaza. El proceso de registro de las instancias y, a continuación, comprobar su estado es el mismo que el de las comprobaciones de estado de Elastic Load Balancing.

nota

Para obtener instrucciones sobre cómo conectar el grupo objetivo de VPC Lattice y activar las comprobaciones de estado de VPC Lattice para su grupo de Auto Scaling, consulte. Asociación de un grupo de destino de VPC Lattice a su grupo de escalado automático

Al activar las comprobaciones de estado de VPC Lattice para un grupo, Amazon EC2 Auto Scaling puede reemplazar las instancias que VPC Lattice notifique como en mal estado, pero solo después de que el grupo objetivo esté en ese estado. InService Para obtener más información, consulte Verificación del estado de asociación de su grupo de destino de VPC Lattice.

Cómo Amazon EC2 Auto Scaling minimiza el tiempo de inactividad

De forma predeterminada, las instancias nuevas se aprovisionan al mismo tiempo que se cierran las instancias existentes, lo que podría impedir que se acepten nuevas solicitudes hasta que las nuevas instancias estén en pleno funcionamiento.

Si Amazon EC2 Auto Scaling determina que alguna instancia ya no se está ejecutando (o se ha marcado Unhealthy con el comando set-instance-health), la reemplaza inmediatamente. Sin embargo, si se detecta que otras instancias no están en buen estado, Amazon EC2 Auto Scaling utiliza el siguiente enfoque para recuperarse de errores. Este enfoque minimiza cualquier tiempo de inactividad que pueda producirse debido a problemas temporales o comprobaciones de estado mal configuradas.

  • Si hay una actividad de escalado en curso y su grupo de Auto Scaling tiene una capacidad inferior a la deseada en un 10 por ciento o más, Amazon EC2 Auto Scaling espera a que se realice la actividad de escalado en curso antes de sustituir las instancias en mal estado.

  • Cuando se escala horizontalmente, Amazon EC2 Auto Scaling espera a que las instancias pasen una comprobación de estado inicial. También espera a que finalice el calentamiento de instancias predeterminado para asegurarse de que las nuevas instancias estén listas.

  • Cuando las instancias terminen de calentarse y el grupo haya alcanzado más del 90 por ciento de su capacidad deseada, Amazon EC2 Auto Scaling sustituirá las instancias en mal estado de la siguiente manera:

    • Amazon EC2 Auto Scaling solo reemplaza hasta el 10 % de la capacidad deseada del grupo a la vez. Lo hace hasta que se sustituyan todas las instancias en mal estado.

    • Al reemplazar instancias, espera a que las nuevas instancias pasen una comprobación de estado inicial. También espera a que finalice el calentamiento de instancias predeterminado antes de continuar.

nota

Si el tamaño de un grupo de Auto Scaling es lo suficientemente pequeño como para que el valor resultante del 10 por ciento sea inferior a uno, Amazon EC2 Auto Scaling reemplaza las instancias en mal estado de una en una. Esto podría provocar tiempo de inactividad para el grupo.

Además, si las comprobaciones de estado de Elastic Load Balancing informan de que todas las instancias de un grupo de escalado automático están en mal estado y el equilibrador de carga se encuentra en el estado InService, Amazon EC2 Auto Scaling puede marcar menos instancias en mal estado a la vez. Esto puede dar lugar a que se reemplacen muchas menos instancias a la vez que el 10 % aplicado en otros escenarios. Esto le da tiempo para solucionar el problema sin que Amazon EC2 Auto Scaling cancele automáticamente todo el grupo.

Health checks (por ejemplo, en una piscina caliente)

Amazon EC2 Auto Scaling también realiza comprobaciones de estado en las instancias de una piscina caliente. Para obtener más información, consulte Visualización del estado de la comprobación de estado y el motivo de los errores de la comprobación de estado.

Consideraciones acerca de las comprobaciones de estado

Las siguientes son consideraciones al utilizar las comprobaciones de estado de Auto Scaling de Amazon EC2.

  • Si necesita que suceda algo en la instancia que está terminando o en la instancia que se está iniciando, puede usar enlaces de ciclo de vida. Estos enlaces permiten realizar una acción personalizada a medida que Amazon EC2 Auto Scaling lanza o termina instancias. Para obtener más información, consulte Enlaces de ciclo de vida de Amazon EC2 Auto Scaling.

  • Amazon EC2 Auto Scaling no ofrece una forma de eliminar las comprobaciones de estado de Amazon EC2 y los eventos programados de sus comprobaciones de estado. Si no desea que se reemplacen las instancias, le recomendamos suspender el proceso ReplaceUnhealthy y HealthCheck para los grupos de Auto Scaling individuales. Para obtener más información, consulte Suspender y reanudar los procesos de Auto Scaling de Amazon EC2.

  • Puede intentar utilizar el comando set-instance-health para establecer manualmente el estado de la instancia en un mal estado de vuelta como Healthy. Si recibe un error, probablemente se deba a que la instancia ya está terminando. En general, volver a establecer el estado de una instancia en Healthy con el comando set-instance-health solo es útil en los casos en que el proceso ReplaceUnhealthy o el proceso Terminate está suspendido.

  • Si necesita solucionar un problema de una instancia sin que las comprobaciones de estado interfieran, puede poner la instancia en Standby estado. Amazon EC2 Auto Scaling no realiza comprobaciones de estado en las instancias que se encuentran en ese Standby estado hasta que las vuelva a poner en servicio. Para obtener más información, consulte Eliminación temporal de las instancias de un grupo de escalado automático.

  • Cuando se termina la instancia, todas las direcciones IP elásticas asociadas se desasocian y no se asocian automáticamente a la nueva instancia. Tiene que asociar las direcciones IP elásticas a la instancia nueva, o hacerlo automáticamente mediante una solución basada en un enlace de ciclo de vida. Para obtener más información, consulte Direcciones IP elásticas en la Guía del usuario de Amazon EC2.

  • Del mismo modo, cuando se termina la instancia, los volúmenes de EBS adjuntos se desconectan (o eliminan, según el atributo DeleteOnTermination del volumen). Tiene que adjuntar estos volúmenes de EBS a la nueva instancia, o hacerlo automáticamente con una solución basada en un enlace de ciclo de vida. Para obtener más información, consulte Adjunte un volumen de Amazon EBS a una instancia en la Guía del usuario de Amazon EBS.

Comprobaciones de estado personalizadas

Como opción, quizás desee poner en marcha tareas personalizadas de detección de estado en las instancias del grupo de escalado automático y establecer el estado de una instancia como Unhealthy si la tarea tiene errores. Esto amplía las comprobaciones de estado mediante una combinación de comprobaciones de estado personalizadas, comprobaciones de estado de Amazon EC2 y comprobaciones de estado de Elastic Load Balancing, si están habilitadas.

Puede enviar la información de estado de la instancia directamente a Amazon EC2 Auto Scaling mediante la AWS CLI o un SDK. Los siguientes ejemplos muestran cómo usarlo AWS CLI para configurar el estado de salud de una instancia y, a continuación, verificar el estado de salud de la instancia.

Utilice el siguiente comando set-instance-health para establecer el estado de la instancia especificada en Unhealthy.

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

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-groups para verificar que el estado de la instancia sea Unhealthy.

aws autoscaling describe-auto-scaling-groups --auto-scaling-group-names my-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" }, ... ] } ] }