Enlaces de ciclo de vida de Amazon EC2 Auto Scaling - 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.

Enlaces de ciclo de vida de Amazon EC2 Auto Scaling

Amazon EC2 Auto Scaling ofrece la posibilidad de agregar enlaces de ciclo de vida a los grupos de Auto Scaling. Estos enlaces le permiten crear soluciones que tengan en cuenta los eventos del ciclo de vida de la instancia de Auto Scaling y que, a continuación, realicen una acción personalizada en las instancias cuando se produzca el evento del ciclo de vida correspondiente. Un enlace de ciclo de vida proporciona una cantidad de tiempo especificada (una hora de forma predeterminada) para esperar a que se complete la acción antes de que la instancia pase al siguiente estado.

Como ejemplo del uso de enlaces de ciclo de vida con instancias de Auto Scaling:

  • Cuando ocurre un evento de escalado horizontal, la instancia que se acaba de lanzar completa la secuencia de arranque y pasa a un estado de espera. Mientras la instancia se encuentra en un estado de espera, ejecuta un script para descargar e instalar los paquetes de software necesarios para la aplicación, asegurándose de que la instancia esté completamente lista antes de que comience a recibir tráfico. Cuando el script ha terminado de instalar el software, envía el comando complete-lifecycle-action para continuar.

  • Cuando se produce un evento de escalamiento, un enlace de ciclo de vida detiene la instancia antes de que finalice y te envía una notificación a través de Amazon. EventBridge Mientras la instancia esté en estado de espera, puedes invocar una AWS Lambda función o conectarte a la instancia para descargar registros u otros datos antes de que la instancia finalice por completo.

Un uso popular de los enlaces de ciclo de vida es controlar cuándo se registran instancias en Elastic Load Balancing. Si agrega un enlace de ciclo de vida de lanzamiento al grupo de Auto Scaling, puede asegurarse de que los scripts de arranque se hayan completado correctamente y que las aplicaciones de las instancias estén listas para aceptar tráfico antes de que se registren en el balanceador de carga al final del enlace de ciclo de vida.

Disponibilidad de los enlaces de ciclo de vida

En la tabla siguiente se enumeran los enlaces de ciclo de vida disponibles para varias situaciones.

Evento Inicio o terminación de la instancia¹ Duración máxima de instancia: instancias de reemplazo Actualización de instancia: instancias de reemplazo Reequilibrio de capacidad: instancias de reemplazo Grupos de calentamiento: instancias que entran y salen del grupo de calentamiento
Lanzamiento de la instancia
Terminación de la instancia

¹ Se aplica a todos los lanzamientos y terminaciones, ya sea que se inicien de forma automática o manual, como cuando se llama a las operaciones SetDesiredCapacity o TerminateInstanceInAutoScalingGroup. No se aplica al adjuntar o desconectar instancias, al poner o sacar instancias del modo de espera, o al eliminar el grupo con la opción para forzar la eliminación.

Consideraciones y limitaciones de enlaces de ciclo de vida

Cuando trabaje con enlaces de ciclo de vida, tenga en cuenta las siguientes notas y limitaciones:

  • Amazon EC2 Auto Scaling proporciona su propio ciclo de vida para ayudar con la administración de grupos de Auto Scaling. Este ciclo de vida difiere del de otras instancias EC2. Para obtener más información, consulte Ciclo de vida de instancias de Amazon EC2 Auto Scaling. Las instancias de un grupo de calentamiento también tienen su propio ciclo de vida, como se describe en Transiciones de estado del ciclo de vida para las instancias de un grupo de calentamiento.

  • Puede utilizar enlaces de ciclo de vida con instancias de spot, pero un enlace de ciclo de vida no impide que se termine una instancia si esa capacidad ya no está disponible, lo que puede suceder en cualquier momento con un aviso de interrupción de dos minutos. Para obtener más información, consulte Interrupciones de instancias de spot en la Guía del usuario de Amazon EC2 para instancias de Linux. Sin embargo, puede habilitar el reequilibrio de la capacidad para reemplazar de forma proactiva las instancias de spot que han recibido una recomendación de reequilibrio del servicio de spot de Amazon EC2, una señal que se envía cuando una instancia de spot tiene un riesgo elevado de interrupción. Para obtener más información, consulte Utilizar el reequilibrio de capacidad para gestionar las interrupciones de spot de Amazon EC2.

  • Las instancias pueden permanecer en un estado de espera durante un periodo de tiempo limitado. El tiempo de espera predeterminado para un enlace de ciclo de vida es de una hora (tiempo de espera de latido). También hay un tiempo de espera global que especifica la cantidad máxima de tiempo que se puede mantener una instancia en estado de espera. El tiempo de espera global es de 48 horas, o 100 veces el tiempo de espera de latido, el que sea más corto.

  • El resultado del enlace de ciclo de vida puede ser “abandonar” o “continuar”. Si una instancia se está lanzando, “continuar” indica que las acciones se han realizado correctamente y que Amazon EC2 Auto Scaling puede poner la instancia en servicio. Por el contrario, “abandonar” indica que las acciones personalizadas no se realizaron correctamente y que podemos terminar la instancia y reemplazarla. Si una instancia está terminando, tanto “abandonar” como “continuar” permiten terminar la instancia. Sin embargo, abandonar detiene todas las acciones restantes, como otros enlaces de ciclo de vida, mientras que continuar permite que todos los demás enlaces de ciclo de vida se completen.

  • Amazon EC2 Auto Scaling limita la velocidad a la que permite el lanzamiento de instancias si los enlaces de ciclo de vida fallan de forma constante, de modo que asegúrese de probar y corregir cualquier error permanente en las acciones de ciclo de vida.

  • La creación y actualización de enlaces de ciclo de vida mediante AWS CLI AWS CloudFormation, o un SDK proporciona opciones que no están disponibles al crear un enlace de ciclo de vida desde. AWS Management Console Por ejemplo, el campo para especificar el ARN de un tema de SNS o una cola de SQS no aparece en la consola porque Amazon EC2 Auto Scaling ya envía eventos a Amazon. EventBridge Estos eventos se pueden filtrar y redirigir a AWS servicios como Lambda, Amazon SNS y Amazon SQS, según sea necesario.

  • Puede agregar varios enlaces de ciclo de vida a un grupo de Auto Scaling mientras lo crea, llamando a la CreateAutoScalingGroupAPI mediante el AWS CLI AWS CloudFormation, o un SDK. No obstante, cada enlace debe tener el mismo destino de notificación y rol de IAM, si se especifica. Para crear enlaces de ciclo de vida con diferentes objetivos de notificación y diferentes funciones, cree los enlaces de ciclo de vida de uno en uno en llamadas independientes a la PutLifecycleHookAPI.

  • Si agrega un enlace de ciclo de vida para el lanzamiento de instancias, el periodo de gracia de la comprobación de estado comienza en cuanto la instancia alcance el estado InService. Para obtener más información, consulte Establezca el periodo de gracia de la comprobación de estado para un grupo de escalado automático.

Consideraciones de escalado
  • Las políticas de escalado dinámico se amplían y reducen en respuesta a los datos CloudWatch métricos, como la E/S de la CPU y la red, que se agregan en varias instancias. Durante un escalado horizontal, Amazon EC2 Auto Scaling no tiene en cuenta inmediatamente una nueva instancia en las métricas agrupadas de la instancia del grupo de escalado automático. Espera a que la instancia alcance el estado InService y finalice el calentamiento de la instancia. Para obtener más información, consulte Consideraciones sobre el rendimiento de escalado en el tema de calentamiento predeterminado de instancias.

  • Cuando se reduce horizontalmente, es posible que las métricas de instancias agregadas no reflejen al instante la eliminación de una instancia de terminación. La instancia que termina deja de contar con respecto a las métricas agrupadas de la instancia del grupo poco después Amazon EC2 Auto Scaling comience el flujo de trabajo de terminación.

  • En la mayoría de los casos, cuando se invocan enlaces de ciclo de vida, las actividades de escalado debidas a políticas de escalado sencillo se ponen en pausa hasta que se hayan completado las acciones de ciclo de vida y el periodo de recuperación haya vencido. Si se establece un intervalo largo para el periodo de recuperación, el escalado tardará más tiempo en reanudarse. Para obtener más información, consulte Los enlaces de ciclo de vida pueden provocar retrasos adicionales en el tema sobre recuperación. En general, le recomendamos que no utilice políticas de escalado simple si en su lugar puede usar políticas de escalado por pasos o de escalado de seguimiento de destino.

Para ver un vídeo de introducción, consulte AWS re:Invent 2018: Administración de capacidad simplificada con Amazon EC2 Auto Scaling activado. YouTube

Proporcionamos algunos fragmentos de plantillas de JSON y YAML que puede utilizar para comprender cómo declarar enlaces de ciclo de vida en sus plantillas de pila. AWS CloudFormation Para obtener más información, consulta la AWS::AutoScaling::LifecycleHookreferencia en la Guía del AWS CloudFormation usuario.

También puedes visitar nuestro GitHubrepositorio para descargar plantillas de ejemplo y scripts de datos de usuario para el ciclo de vida.

Para ver ejemplos del uso de enlaces de ciclo de vida, consulte las siguientes entradas del blog.