Actualización de instancias y ganchos de ciclo de vida
Implemente gradualmente una nueva plantilla de lanzamiento mediante la actualización de instancias y utilice ganchos de ciclo de vida para ejecutar lógica personalizada antes de lanzar o terminar instancias.
Actualización de instancias y ganchos de ciclo de vida es una lección gratuita de Cloud & IT Cert Prep en CoddyKit. Esta es la lección 4 de 4. Puedes leer la lección completa abajo gratuitamente — luego la practicas en el navegador con un editor de código integrado y un tutor de IA 24/7. Forma parte de la ruta de aprendizaje de Cloud & IT Cert Prep, y tu progreso se sincroniza en la web y la app de CoddyKit. El curso de Cloud & IT Cert Prep incluye 4 lecciones en total.
El problema de las actualizaciones progresivas de instancias
Cuando actualiza una plantilla de lanzamiento (una AMI nueva, datos de usuario nuevos o un tipo de instancia nuevo), las instancias que ya están en ejecución en el ASG no se sustituyen automáticamente: siguen utilizando la configuración anterior. Para propagar los cambios, debe sustituir las instancias. Terminar y volver a lanzar instancias manualmente es arriesgado y propenso a errores. Instance Refresh automatiza este proceso con controles de seguridad configurables.
Instance Refresh: cómo funciona
Instance Refresh sustituye las instancias del ASG en lotes progresivos. En cada paso, termina un lote de instancias antiguas, espera a que las nuevas instancias superen las comprobaciones de estado y, a continuación, pasa al siguiente lote. Puede controlar el ritmo mediante MinHealthyPercentage (el porcentaje mínimo de capacidad que debe permanecer en buen estado durante la actualización) y un tiempo opcional de InstanceWarmup.
aws autoscaling start-instance-refresh \
--auto-scaling-group-name 'MyAppASG' \
--preferences '{
"MinHealthyPercentage": 80,
"InstanceWarmup": 300,
"CheckpointPercentages": [20, 50, 100],
"CheckpointDelay": 600
}'MinHealthyPercentage y tamaño de lote
MinHealthyPercentage define el límite inferior de capacidad en buen estado durante la actualización. Si lo establece en el 90 %, solo se sustituye el 10 % del conjunto de instancias cada vez: es más lento, pero más seguro. Un valor del 50 % sustituye la mitad del conjunto a la vez: es más rápido, pero ofrece menos redundancia. El ASG calcula automáticamente el tamaño de los lotes según este porcentaje y la capacidad deseada actual. Elija un porcentaje más alto para las cargas de trabajo de producción con el fin de mantener la disponibilidad.
Puntos de control para implementaciones de tipo canary
Los puntos de control permiten pausar Instance Refresh en hitos porcentuales predefinidos. Por ejemplo, puede actualizar el 20 % de las instancias, pausar durante 10 minutos para ejecutar pruebas de humo y continuar después. Si detecta un problema en algún punto de control, puede cancelar la actualización: el ASG deja de sustituir instancias adicionales, pero mantiene en ejecución las que ya se sustituyeron (ya utilizan la nueva plantilla). Esto constituye, en la práctica, un patrón de implementación canary para EC2.
Cancelación y supervisión de Instance Refresh
Puede cancelar un Instance Refresh en curso en cualquier momento; esto detiene las sustituciones posteriores, pero no revierte las que ya se han completado. Utilice describe-instance-refreshes para consultar el estado, el porcentaje de progreso y las instancias cuyo lanzamiento haya fallado. Integre Instance Refresh con su canalización de CI/CD para activar automáticamente una actualización después de insertar una AMI nueva en la plantilla de lanzamiento y completar así una implementación de estilo blue/green totalmente automatizada.
aws autoscaling describe-instance-refreshes \
--auto-scaling-group-name 'MyAppASG'
# Cancel a running refresh
aws autoscaling cancel-instance-refresh \
--auto-scaling-group-name 'MyAppASG'Introducción a Lifecycle Hooks
Lifecycle Hooks pausan las transiciones de las instancias del ASG en momentos clave para que pueda ejecutar lógica personalizada antes de que una instancia se active o antes de que termine. Hay dos puntos de enlace: EC2_INSTANCE_LAUNCHING (después del lanzamiento y antes de que la instancia pase a InService) y EC2_INSTANCE_TERMINATING (después de decidir la terminación y antes de que la instancia termine realmente). Durante un hook, la instancia se encuentra en el estado Pending:Wait o Terminating:Wait.
Casos de uso de los hooks de ciclo de vida de lanzamiento
El hook de lanzamiento es ideal para las tareas que deben completarse antes de que una instancia atienda tráfico: instalar software adicional, obtener la configuración de Parameter Store, registrar la instancia en un registro de descubrimiento de servicios o ejecutar pruebas de integración. El ASG no añade la instancia al grupo de destino del balanceador de carga hasta que el hook finaliza (o agota el tiempo de espera). Esto evita que el tráfico llegue a una instancia cuya configuración esté incompleta.
aws autoscaling put-lifecycle-hook \
--auto-scaling-group-name 'MyAppASG' \
--lifecycle-hook-name 'AppInit' \
--lifecycle-transition EC2_INSTANCE_LAUNCHING \
--default-result ABANDON \
--heartbeat-timeout 300Casos de uso de los hooks de ciclo de vida de terminación
El hook de terminación se ejecuta antes de que una instancia termine realmente. Entre sus casos de uso se incluyen vaciar las solicitudes en curso de una cola a nivel de aplicación, vaciar los datos en caché en un almacén persistente, cancelar el registro en un registro de servicios o copiar archivos de registro a S3. Sin un hook de terminación, el trabajo en curso de una instancia que está terminando podría perderse. El hook le proporciona hasta 2 horas (tiempo de espera del heartbeat) para completar las tareas de apagado ordenado.
aws autoscaling put-lifecycle-hook \
--auto-scaling-group-name 'MyAppASG' \
--lifecycle-hook-name 'GracefulShutdown' \
--lifecycle-transition EC2_INSTANCE_TERMINATING \
--default-result CONTINUE \
--heartbeat-timeout 120Finalización de un Lifecycle Hook
La lógica personalizada que se ejecuta en la instancia o que esta activa debe indicar al hook cuándo ha terminado. Utilice complete-lifecycle-action con CONTINUE (continuar normalmente) o ABANDON (en un hook de lanzamiento, terminar la instancia; en un hook de terminación, ignorar y continuar). También puede ampliar el tiempo de espera del hook enviando un heartbeat en cada intervalo hasta alcanzar la duración máxima. Si el hook agota el tiempo de espera, se aplica DefaultResult.
# From inside the instance or a Lambda triggered by EventBridge
aws autoscaling complete-lifecycle-action \
--auto-scaling-group-name 'MyAppASG' \
--lifecycle-hook-name 'AppInit' \
--lifecycle-action-result CONTINUE \
--instance-id 'i-0abc123def456'Activación de la lógica con EventBridge
La forma más limpia de responder a los hooks de ciclo de vida es mediante Amazon EventBridge. Cuando se activa un hook de ciclo de vida, el ASG emite un evento a EventBridge. Una regla de EventBridge dirige este evento a una función de Lambda que realiza el trabajo necesario y, después, llama a complete-lifecycle-action. Esta arquitectura es completamente sin servidor, no requiere sondeos y escala automáticamente. Las notificaciones de SQS y SNS son alternativas anteriores, pero se recomienda EventBridge para los diseños nuevos.
Instance Refresh se integra con Lifecycle Hooks
Cuando Instance Refresh sustituye una instancia, siguen activándose ambos hooks de ciclo de vida: el hook de terminación en la instancia antigua y el hook de lanzamiento en la nueva. Esto significa que la lógica de apagado ordenado y de inicialización se ejecuta automáticamente durante una actualización progresiva, no solo durante los eventos normales de escalado. Pruebe siempre la lógica de sus hooks de ciclo de vida durante un Instance Refresh gradual antes de realizar una implementación en producción para verificar que funciona correctamente.
Comprobación rápida
Compruebe su comprensión de los conceptos de AWS Solutions Architect (SAA-C03) de esta lección.
Resumen de la lección
En esta lección ha aprendido lo siguiente: Instance Refresh sustituye las instancias del ASG en lotes progresivos controlados por MinHealthyPercentage y puntos de control opcionales para realizar una validación de tipo canary; Lifecycle Hooks pausan las transiciones de las instancias durante el lanzamiento o la terminación para ejecutar lógica personalizada de inicialización o de apagado ordenado; y EventBridge + Lambda es el patrón recomendado para responder a eventos de hooks de ciclo de vida sin realizar sondeos. A continuación, exploraremos las funciones, los runtimes, los triggers y los handlers de AWS Lambda.
Preguntas frecuentes
¿La lección «Actualización de instancias y ganchos de ciclo de vida» es gratis?
Sí — el texto completo de «Actualización de instancias y ganchos de ciclo de vida» es gratis para leer aquí en la web. Para practicarla de forma interactiva (editor de código integrado y tutor de IA 24/7) y desbloquear el resto del curso de Cloud & IT Cert Prep, actualiza a CoddyKit PRO. El curso de Cloud & IT Cert Prep incluye 4 lecciones en total.
¿Qué aprenderé en «Actualización de instancias y ganchos de ciclo de vida»?
Implemente gradualmente una nueva plantilla de lanzamiento mediante la actualización de instancias y utilice ganchos de ciclo de vida para ejecutar lógica personalizada antes de lanzar o terminar ins… Practicas Cloud & IT Cert Prep con código real que ejecutas directamente en el navegador, y un tutor de IA 24/7 responde tus preguntas mientras trabajas en la lección.
¿Necesito experiencia previa para empezar Cloud & IT Cert Prep?
No se requiere experiencia previa. Cloud & IT Cert Prep en CoddyKit está estructurado para principiantes hasta estudiantes avanzados, así que puedes empezar aquí o desde el inicio y avanzar a tu ritmo. Esta es la lección 4 de 4.
¿Cuánto tiempo toma la lección «Actualización de instancias y ganchos de ciclo de vida»?
La mayoría de las lecciones de CoddyKit toman alrededor de 5–10 minutos. Cada una es compacta e interactiva, así que avanzas constantemente y retomas exactamente por donde dejaste en la web y la app.
¿Puedo escribir y ejecutar código en esta lección de Cloud & IT Cert Prep?
Sí. Cada lección de Cloud & IT Cert Prep incluye un editor de código integrado, así que escribes y ejecutas código real directamente en tu navegador y obtienes retroalimentación instantánea de IA — sin configuración local necesaria.
Todas las lecciones de este curso
- Launch Templates y configuración de ASG
- Políticas de escalado: seguimiento de objetivo y escalado por pasos
- Escalado programado y predictivo
- Actualización de instancias y ganchos de ciclo de vida