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 ocurre un evento de reducción horizontal, un enlace de ciclo de vida pausa la instancia antes de que termine y le envía una notificación mediante Amazon EventBridge. Mientras la instancia se encuentra en estado de espera, puede invocar una función AWS Lambda o conectarse a la instancia para descargar registros u otros datos antes de que la instancia se termine 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.
Contenido
- Disponibilidad de los enlaces de ciclo de vida
- Consideraciones y limitaciones
- Recursos relacionados
- Cómo funcionan los enlaces de ciclo de vida en los grupos de escalado automático
- Preparación para agregar un enlace de ciclo de vida
- Recuperar el estado de ciclo de vida de destino
- Incorporación de los enlaces de ciclo de vida en su grupo de escalado automático
- Cómo completar una acción del ciclo de vida en un grupo de escalado automático
- Tutorial: Uso de los metadatos de usuario de la instancia para recuperar el estado de ciclo de vida
- Tutorial: Configuración de un enlace de ciclo de vida que invoca una función Lambda
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. 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.
-
Crear y actualizar enlaces de ciclo de vida mediante la AWS CLI, AWS CloudFormation o un SDK proporciona opciones que no están disponibles cuando se crea un enlace de ciclo de vida desde la 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 servicios de AWS tales 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 API CreateAutoScalingGroup con la 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 destinos de notificación y roles diferentes, cree los enlaces de ciclo de vida uno a uno en llamadas separadas a la API PutLifecycleHook.
-
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 reducen horizontalmente y se escalan horizontalmente en respuesta a los datos de las métricas de CloudWatch, como CPU y E/S de red, que se combinan entre 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.
Recursos relacionados
Para ver un vídeo de introducción, consulteAWS re:Invent 2018: Capacity Management Made Easy with Amazon EC2 Auto Scaling
Proporcionamos algunos fragmentos de plantillas JSON y YAML que puede utilizar para comprender cómo declarar enlaces de ciclo de vida en sus plantillas de pila de AWS CloudFormation. Para obtener más información, consulte la referencia AWS::AutoScaling::LifecycleHook en la Guía del usuario de AWS CloudFormation.
Puede visitar nuestro Repositorio de GitHub
Para ver ejemplos del uso de enlaces de ciclo de vida, consulte las siguientes entradas del blog.