Uso de enlaces de ciclo de vida con un grupo de calentamiento - 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.

Uso de enlaces de ciclo de vida con un grupo de calentamiento

Las instancias del grupo de calentamiento mantienen su propio ciclo de vida independiente para ayudarlo a crear las acciones personalizadas adecuadas para cada transición. Este ciclo de vida está diseñado para ayudarlo a invocar acciones en un servicio de destino (por ejemplo, una función Lambda) mientras aún se está inicializando una instancia y antes de ponerla en servicio.

nota

Las operaciones de la API que utiliza para agregar y administrar enlaces de ciclo de vida y completar acciones de ciclo de vida no se modifican. Solo se modifica el ciclo de vida de la instancia.

Para obtener más información acerca de cómo agregar un enlace de ciclo de vida, consulte Agregar enlaces de ciclo de vida. Para obtener más información sobre cómo completar una acción de ciclo de vida, consulte Completar una acción del ciclo de vida.

Es posible que necesite un enlace de ciclo de vida para las instancias que entran en el grupo de calentamiento por uno de los siguientes motivos:

  • Desea lanzar instancias de EC2 desde una AMI que tarda mucho tiempo en finalizar la inicialización.

  • Desea ejecutar scripts de datos de usuario para arrancar las instancias de EC2.

Es posible que necesite un enlace de ciclo de vida para las instancias que salen del grupo de calentamiento por uno de los siguientes motivos:

  • Puede utilizar más tiempo para preparar instancias de EC2 para su uso. Por ejemplo, para que la aplicación pueda funcionar correctamente, es posible que tenga servicios que deban iniciarse cuando se reinicia una instancia.

  • Desea rellenar previamente los datos de caché para que un nuevo servidor no se lance con una caché vacía.

  • Desea registrar nuevas instancias como instancias administradas con su servicio de administración de configuraciones.

Transiciones de estado del ciclo de vida para las instancias de un grupo de calentamiento

Como parte de su ciclo de vida, una instancia de Auto Scaling puede pasar por muchos estados.

En el diagrama a continuación, se muestra la transición entre los estados de Auto Scaling cuando utiliza un grupo de calentamiento:

Transiciones de estado de ciclo de vida de instancias de un grupo de calentamiento.

¹ Este estado varía según la configuración del estado del grupo de calentamiento. Si el estado del grupo se configura en Running, este estado es Warmed:Running en su lugar. Si el estado del grupo se configura en Hibernated, este estado es Warmed:Hibernated en su lugar.

Cuando agregue enlaces de ciclo de vida, tenga en cuenta lo siguiente:

  • Cuando se configura un enlace de ciclo de vida para la acción de ciclo de vida autoscaling:EC2_INSTANCE_LAUNCHING, una instancia recién lanzada se detiene primero para realizar una acción personalizada cuando alcanza el estado Warmed:Pending:Wait, y nuevamente cuando la instancia se reinicia y alcanza el estado Pending:Wait.

  • Cuando se configura un enlace de ciclo de vida para la acción de ciclo de vida EC2_INSTANCE_TERMINATING, una instancia que termina hace una pausa para realizar una acción personalizada cuando alcanza el estado Terminating:Wait. Sin embargo, si especifica una política de reutilización de instancias para devolver instancias al grupo de calentamiento en reducción horizontal en lugar de terminarlas, una instancia que vuelve al grupo de calentamiento se pausa para llevar a cabo una acción personalizada en el estado Warmed:Pending:Wait para la acción del ciclo de vida EC2_INSTANCE_TERMINATING.

  • Si la demanda de la aplicación agota el grupo de calentamiento, Amazon EC2 Auto Scaling puede lanzar instancias directamente en el grupo de escalado automático siempre y cuando el grupo aún no haya alcanzado su capacidad máxima. Si las instancias se lanzan directamente en el grupo, solo se detendrán para realizar una acción personalizada en el estado Pending:Wait.

  • Para controlar cuánto tiempo permanece una instancia en un estado de espera antes de pasar al siguiente estado, configure la acción personalizada para usar el comando complete-lifecycle-action. Con los enlaces del ciclo de vida, las instancias se mantienen en estado de espera hasta que se notifica a Amazon EC2 Auto Scaling que la acción del ciclo de vida se ha completado o hasta que finaliza el tiempo de espera (que, de forma predeterminada, es de una hora).

A continuación, se resume el flujo de un evento de escalado horizontal.

Diagrama de flujo de un evento de escalado horizontal.

Cuando las instancias alcanzan un estado de espera, Amazon EC2 Auto Scaling envía una notificación. En la EventBridge sección de esta guía encontrará ejemplos de estas notificaciones. Para obtener más información, consulte Ejemplos de eventos y patrones de grupos en caliente.

Destinos de notificación admitidos

Amazon EC2 Auto Scaling proporciona soporte para definir cualquiera de los siguientes como destinos de notificación para notificaciones de ciclo de vida:

  • EventBridge reglas

  • Temas de Amazon SNS

  • Colas de Amazon SQS

importante

Recuerde que, si tiene un script de datos de usuario (cloud-init) en la plantilla de lanzamiento o en la configuración de lanzamiento que configura las instancias cuando se lanzan, no es necesario que reciba notificaciones para llevar a cabo acciones personalizadas en las instancias que se están inciendo o reiniciando.

Las secciones que se indican a continuación contienen vínculos a la documentación que describe cómo configurar los destinos de notificación:

EventBridge reglas: para ejecutar código cuando Auto Scaling de Amazon EC2 ponga una instancia en estado de espera, puede crear una EventBridge regla y especificar una función Lambda como destino. Para invocar distintas funciones Lambda basadas en distintas notificaciones de ciclo de vida, puede crear varias reglas y asociar cada regla con un patrón de evento específico y una función Lambda. Para obtener más información, consulte Crea EventBridge reglas para los eventos de piscina caliente.

Temas de Amazon SNS: para recibir una notificación cuando una instancia se coloca en estado de espera, puede crear un tema de Amazon SNS y, a continuación, configurar el filtro de mensajes de Amazon SNS para entregar notificaciones de ciclo de vida de forma diferente según un atributo de mensaje. Para obtener más información, consulte Recepción de notificaciones mediante Amazon SNS.

Colas de Amazon SQS: para configurar un punto de entrega para las notificaciones de ciclo de vida en el que un consumidor relevante pueda recogerlas y procesarlas, puede crear una cola de Amazon SQS y un consumidor de colas que procese los mensajes de la cola de SQS. Si desea que el consumidor de la cola procese las notificaciones de ciclo de vida de forma diferente en función de un atributo de mensaje, también debe configurar el consumidor de la cola para analizar el mensaje y, a continuación, actuar sobre el mensaje cuando un atributo específico coincide con el valor deseado. Para obtener más información, consulte Recepción de notificaciones mediante Amazon SQS.