Funcionamiento de una actualización de instancias en un grupo de escalado automático - 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.

Funcionamiento de una actualización de instancias en un grupo de escalado automático

En este tema, se describe cómo funciona una actualización de instancias y se introducen los conceptos clave que necesita conocer para utilizarla de forma eficaz.

Funcionamiento

Para actualizar las instancias de un grupo de escalado automático, puede definir una nueva configuración que contenga la última versión de la aplicación y cualquier otra actualización que desee realizar. A continuación, inicie una actualización de instancias para reemplazar las instancias existentes por otras nuevas en función de esa configuración.

Para realizar una actualización de instancias:

  1. Cree una nueva plantilla de lanzamiento o actualice la plantilla existente con los cambios de configuración que desee, como una nueva Amazon Machine Image (AMI). Para obtener más información, consulte Creación de una plantilla de lanzamiento para un grupo de Auto Scaling.

  2. Inicie la actualización de la instancia mediante la consola Amazon EC2 Auto Scaling AWS CLI, o bienSDK:

    • Especifique la nueva plantilla de lanzamiento o versión de la plantilla de lanzamiento que ha creado. Se utilizará para lanzar nuevas instancias.

    • Establezca los porcentajes de buen estado mínimo y máximo. Esto controla cuántas instancias se reemplazan simultáneamente y si se lanzan nuevas instancias antes de terminar las antiguas.

    • Configure los ajustes opcionales, como los siguientes:

      • Puntos de control: pausa la actualización de la instancia después de un porcentaje determinado de reemplazos para comprobar el progreso.

      • Hora de cocción: haga una pausa al final de la actualización de la instancia para validar el estado de la instancia antes de que se dé por finalizada la actualización de la instancia.

      • Omitir la coincidencia: compara las instancias antiguas con la nueva configuración y reemplaza solo las que no coincidan. Al iniciar una actualización de instancias desde la consola, la omisión de coincidencias está activada de forma predeterminada.

      • Tipos de instancias múltiples: aplique una política de instancias mixtas nueva o actualizada como parte de la configuración deseada.

Cuando se inicie la actualización de la instancia, Amazon EC2 Auto Scaling hará lo siguiente:

  • Reemplazar las instancias en lotes en función de los porcentajes de buen estado mínimo y máximo.

  • Lanzar primero las instancias nuevas antes de terminar las antiguas si el porcentaje de buen estado mínimo está establecido en 100 por ciento. Esto garantiza que la capacidad deseada se mantenga en todo momento.

  • Compruebe el estado de las instancias y espere a que se calienten antes de reemplazar más instancias.

  • Termine y reemplace las instancias que no estén en buen estado.

  • Actualice automáticamente la configuración del grupo de escalado automático con los nuevos cambios de configuración una vez que la actualización de la instancia se haya realizado correctamente.

  • Sustituya las instancias InService antes de las que estén en un pool caliente.

El siguiente diagrama de flujo ilustra el comportamiento que ocurre si se lanzan instancias antes de terminarlas cuando se establece el porcentaje de buen estado mínimo en 100 por ciento.

Un diagrama que muestra cómo funciona la actualización de una instancia cuando el porcentaje de buen estado está establecido en 100 por ciento.
nota

Es necesario especificar los porcentajes de estado máximos para una actualización de instancias solo si no ha establecido una política de mantenimiento de instancias o si necesita anular una ya existente. Para obtener más información, consulte Políticas de mantenimiento de instancias.

Del mismo modo, solo necesita especificar el período de preparación de instancias para una actualización de instancias solo si no ha habilitado a preparación predeterminada o si necesita anular la configuración predeterminada. Para obtener más información, consulte Establecimiento de la preparación predeterminada de instancias para un grupo de escalado automático.

Conceptos clave

Antes de empezar, familiarícese con los siguientes conceptos principales de actualización de instancias:

Porcentaje de buen estado mínimo

El porcentaje de buen estado mínimo es el porcentaje de la capacidad que se desea mantener en servicio, en buen estado y lista para usar durante una actualización de instancias, de modo que esta pueda continuar. Por ejemplo, si el porcentaje de buen estado mínimo es del 90 por ciento y el porcentaje máximo en buen estado‭ es del 100 por ciento, se reemplazará el 10 por ciento de capacidad por vez. Si las nuevas instancias no pasan las comprobaciones de estado, Amazon EC2 Auto Scaling las cierra y las reemplaza. Si la actualización de instancias no puede lanzar ninguna instancia en buen estado, la actualización de instancias acabará fallando y el 90 por ciento restante del grupo permanecerá intacto. Si las nuevas instancias se mantienen en buen estado y finalizan su período de calentamiento, Amazon EC2 Auto Scaling puede seguir sustituyendo a otras instancias.

Una actualización de instancias puede reemplazar las instancias de una en una, varias a la vez o todas a la vez. Para reemplazar una instancia de una en una, establezca el porcentaje mínimo y máximo en buen estado en el 100 por ciento. Esto cambia el comportamiento de la actualización de instancias para lanzarla antes de su finalización, lo que evita que la capacidad del grupo caiga por debajo del 100 por ciento de la capacidad deseada. Para reemplazar todas las instancias a la vez, establezca el porcentaje de buen estado mínimo en el 0 por ciento.

Porcentaje máximo en buen estado

El porcentaje máximo en buen estado‭ de estado es el porcentaje de la capacidad deseada al que su grupo de escalado automático puede aumentar al reemplazar instancias. La diferencia entre el mínimo y el máximo no puede ser superior a 100. Un rango mayor aumenta la cantidad de instancias que se pueden reemplazar al mismo tiempo.

Preparación de las instancias

La preparación de las instancias es el periodo de tiempo desde que el estado de una nueva instancia cambia a InService hasta que se considera que ha finalizado la inicialización. Durante una actualización de instancias, si las instancias pasan sus comprobaciones de estado, Amazon EC2 Auto Scaling no pasa inmediatamente a reemplazar la siguiente instancia después de determinar que una instancia recién lanzada está en buen estado. Espera durante el periodo de preparación antes de pasar a reemplazar otras instancias. Esto puede resultar útil cuando la aplicación aún necesita algo de tiempo de inicialización antes de que pueda responder a las solicitudes.

La preparación de instancias funciona de la misma manera que la preparación de instancias predeterminada. Por lo tanto, se aplican las mismas consideraciones de escalado. Para obtener más información, consulte Establecimiento de la preparación predeterminada de instancias para un grupo de escalado automático.

Configuración deseada

La configuración deseada es la nueva configuración que desea que Amazon EC2 Auto Scaling implemente en su grupo de Auto Scaling. Por ejemplo, puede especificar una nueva plantilla de lanzamiento y nuevos tipos de instancias. Durante una actualización de instancias, Amazon EC2 Auto Scaling actualiza el grupo Auto Scaling a la configuración deseada. Si se produce un evento de escalamiento horizontal durante la actualización de una instancia, Amazon EC2 Auto Scaling lanza nuevas instancias con la configuración deseada en lugar de la configuración actual del grupo. Cuando la actualización de la instancia se haya realizado correctamente, Amazon EC2 Auto Scaling actualiza la configuración del grupo de Auto Scaling para reflejar la nueva configuración deseada que especificó como parte de la actualización de la instancia.

Omisión de coincidencias

Omitir coincidencia indica a Amazon EC2 Auto Scaling que ignore las instancias que ya tienen sus actualizaciones más recientes. De esta forma, no reemplaza más instancias de las necesarias. Esto es útil cuando quiere asegurarse de que su grupo de escalado automático utilice una versión determinada de la plantilla de lanzamiento y solo sustituya las instancias que usan una versión diferente.

Puntos de control

Un punto de comprobación es un punto en el tiempo en el que la actualización de instancias se detiene durante un periodo de tiempo especificado. Una actualización de instancias puede contener varios puntos de control. Amazon EC2 Auto Scaling emite eventos para cada punto de control. Por lo tanto, puedes añadir una EventBridge regla para enviar los eventos a un objetivo, como AmazonSNS, para que se le notifique cuando se alcance un punto de control. Una vez llegado a un punto de control, podrá verificar la implementación. Si se identifica algún problema, puede cancelar la actualización de instancias o revertirla. La capacidad de implementar actualizaciones en fases es un beneficio clave de los puntos de control. Si no utiliza puntos de control, los reemplazos sucesivos se realizan ininterrumpidamente.

Para obtener más información sobre todos los ajustes predeterminados que puede configurar al iniciar una actualización de instancias, consulte Comprensión de los valores predeterminados de una actualización de instancias.

Periodo de gracia de la comprobación de estado

Amazon EC2 Auto Scaling determina si una instancia está en buen estado en función del estado de las comprobaciones de estado que utilice su grupo de Auto Scaling. Para obtener más información, consulte Comprobaciones de estado para instancias en un grupo de escalado automático.

Para asegurarse de que estas comprobaciones de estado comiencen lo antes posible, no establezca demasiado alto el periodo de gracia de las comprobaciones de estado del grupo, sino lo suficientemente alto como para que las comprobaciones de estado de Elastic Load Balancing puedan determinar si hay un objetivo disponible para gestionar las solicitudes. 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.

Compatibilidad de los tipos de instancias

Antes de cambiar el tipo de instancia, es recomendable comprobar que funciona con la plantilla de lanzamiento. Esto confirma la compatibilidad con la AMI que especificó. Por ejemplo, supongamos que lanzaste tus instancias originales desde una instancia paravirtual (PV)AMI, pero deseas cambiarla a un tipo de instancia de la generación actual que solo sea compatible con una máquina virtual de hardware (HVM)AMI. En este caso, debes usar una HVM AMI en tu plantilla de lanzamiento.

Para confirmar la compatibilidad del tipo de instancia sin lanzar instancias, utilice el comando run-instances con la opción --dry-run, como se muestra en el siguiente ejemplo.

aws ec2 run-instances --launch-template LaunchTemplateName=my-template,Version='1' --dry-run

Para obtener información sobre cómo se determina la compatibilidad, consulta Compatibilidad para cambiar el tipo de instancia en la Guía del EC2 usuario de Amazon.

Limitaciones

  • Duración total: el período de tiempo máximo durante el cual una actualización de instancias puede seguir reemplazando activamente instancias es de 14 días.

  • Diferencia de comportamiento específica de los grupos ponderados: si se configura un grupo de instancias mixto con un peso de instancias mayor o igual a la capacidad deseada del grupo, Amazon EC2 Auto Scaling podría reemplazar todas las InService instancias a la vez. Para evitar esta situación, siga las recomendaciones del tema Configuración de un grupo de escalado automático para utilizar ponderación de instancias. Especifique una capacidad deseada que sea mayor que su ponderación máxima cuando utilice ponderaciones con su grupo de escalado automático.

  • Tiempo de espera de una hora: cuando una actualización de instancias no puede seguir realizando reemplazos porque está esperando para reemplazar las instancias en espera o protegidas de la escalabilidad interna, o si las nuevas instancias no superan sus comprobaciones de estado, Amazon EC2 Auto Scaling vuelve a intentarlo durante una hora. También proporciona un mensaje de estado para ayudarlo a resolver el problema. Si el problema persiste después de una hora, la operación produce un error. La intención es darle tiempo para recuperarse si se trata de un problema temporal.

  • Implementación del código a través de los datos del usuario: la opción Omitir la coincidencia no comprueba los cambios de código que se implementan desde un script de datos de usuario. Si utiliza datos de usuario para extraer código nuevo e instalar estas actualizaciones en instancias nuevas, le recomendamos que desactive la opción de omisión de coincidencias para asegurarse de que todas las instancias reciban el código más reciente, incluso sin haber realizado una actualización de la versión de la plantilla de lanzamiento.

  • Restricción de actualización: si intenta actualizar la plantilla de lanzamiento, la configuración de lanzamiento o la política de instancias mixtas de un grupo de escalado automático mientras está activa una actualización de instancias con la configuración deseada, la solicitud fallará y mostrará el siguiente error de validación: An active instance refresh with a desired configuration exists. All configuration options derived from the desired configuration are not available for update while the instance refresh is active.