Utilice ganchos de ciclo de vida con una piscina caliente en el grupo 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.

Utilice ganchos de ciclo de vida con una piscina caliente en el grupo Auto Scaling

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 API operaciones que se utilizan para añadir y gestionar los enlaces del ciclo de vida y completar las acciones del 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 Agregue enlaces de ciclo de vida a su grupo de Auto Scaling. Para obtener más información sobre cómo completar una acción de ciclo de vida, consulte Completa una acción del ciclo de vida en un grupo de Auto Scaling.

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 EC2 instancias desde una instancia AMI que tarde mucho en terminar de inicializarse.

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

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:

  • Puedes dedicar algo de tiempo adicional a preparar las EC2 instancias 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 su aplicación agota el pool caliente, Amazon EC2 Auto Scaling puede lanzar instancias directamente en el grupo de Auto Scaling siempre que el grupo aún no esté al máximo de su capacidad. 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 de ciclo de vida, las instancias permanecen en estado de espera hasta que notifique a Amazon EC2 Auto Scaling que la acción del ciclo de vida especificada se ha completado o hasta que finaliza el período de tiempo de espera (una hora de forma predeterminada).

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 llegan a 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 permite definir cualquiera de los siguientes como objetivos de notificación para las notificaciones del ciclo de vida:

  • EventBridge reglas

  • SNSTemas de Amazon

  • Colas de SQS Amazon

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 Amazon EC2 Auto Scaling 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.

SNSTemas de Amazon: para recibir una notificación cuando una instancia pasa a un estado de espera, debes crear un SNS tema de Amazon y, a continuación, configurar el filtrado de SNS mensajes de Amazon para entregar las notificaciones del ciclo de vida de forma diferente en función del atributo del mensaje. Para obtener más información, consulte Recepción de notificaciones mediante Amazon SNS.

SQSColas de Amazon: para configurar un punto de entrega para las notificaciones del ciclo de vida en el que un consumidor relevante pueda recogerlas y procesarlas, puedes crear una cola de Amazon y una SQS cola de consumidores que procese los mensajes de la cola. 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.