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.
Contenido
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:
-
Cree una nueva plantilla de lanzamiento o actualice la existente con los cambios de configuración deseados, como una nueva imagen de máquina de Amazon (AMI). Para obtener más información, consulte Creación de una plantilla de lanzamiento para un grupo de Auto Scaling.
-
Inicio de la actualización de instancias mediante la consola de Amazon EC2 Auto Scaling, la AWS CLI o un SDK:
-
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.
-
Tiempo de incorporación: pause 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 misma.
-
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 haya iniciado la actualización de instancias, 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
InServiceantes 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.
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 superan las comprobaciones de estado, Amazon EC2 Auto Scaling las finaliza y 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 completan el periodo de preparación, Amazon EC2 Auto Scaling podrá seguir reemplazando 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 la instancia
-
La preparación de las instancias es el periodo de tiempo desde que el estado de una nueva instancia cambia a
InServicehasta que se considera que ha finalizado la inicialización. Durante la actualización de instancias, en caso de que estas superen las comprobaciones de estado, Amazon EC2 Auto Scaling no procede inmediatamente a reemplazar la siguiente instancia tras 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 quiere que Amazon EC2 Auto Scaling implemente en el grupo de escalado automático. 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 de Auto Scaling a la configuración deseada. Si se produce un evento de escalado horizontal durante la actualización de instancias, Amazon EC2 Auto Scaling lanza nuevas instancias con la configuración deseada en lugar de la configuración actual del grupo. Una vez que la actualización de instancias se realice correctamente, Amazon EC2 Auto Scaling actualiza la configuración del grupo de escalado automático para reflejar la nueva configuración deseada que ha especificado como parte de la actualización de instancias.
- Omitir coincidencia
-
La opción de omisión de coincidencias le dice 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, puede agregar una regla de EventBridge para que se envíen los eventos a un destino como Amazon SNS y se le notifique cuando se alcance un punto de comprobación. 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 de las comprobaciones de estado que utiliza su grupo de escalado automático. 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, si lanzó las instancias originales desde una AMI paravirtual (PV), pero quiere cambiar a un tipo de instancia de generación actual que solo es compatible con una AMI de máquina virtual de hardware (HVM). En este caso, debe utilizar una AMI de HVM en la plantilla de lanzamiento.
Para confirmar la compatibilidad del tipo de instancia sin lanzar instancias, utilice el comando run-instances--dry-run, como se muestra en el siguiente ejemplo.
aws ec2 run-instances --launch-template LaunchTemplateName=my-template,Version='1' --dry-run
Para obtener más información sobre cómo se determina la compatibilidad, consulte Compatibilidad para cambiar el tipo de instancia en la Guía del usuario de Amazon EC2.
Limitaciones
-
Duración total: el periodo de tiempo máximo durante el cual una actualización de una instancia puede seguir reemplazando activamente instancias es de 14 días.
-
Diferencia en el comportamiento específico de los grupos ponderados: si se configura un grupo de instancias mixtas con una ponderación de instancia mayor o igual a la capacidad deseada del grupo, Amazon EC2 Auto Scaling puede reemplazar todas las instancias con el estado
InServicea 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 continuar haciendo reemplazos porque está esperando reemplazar instancias en espera o protegidas contra la reducción horizontal, o las nuevas instancias no superan las comprobaciones de estado, Amazon EC2 Auto Scaling seguirá intentándolo 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 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. -
Selección de instancias basada en atributos: si su grupo de escalado automático utiliza la selección de instancias basada en atributos (al especificar
InstanceRequirementsen una política de instancias mixtas), no se admitirán los siguientes parámetros de actualización de instancias:-
SkipMatching: la actualización de una instancia fallará si se inicia con el parámetro
SkipMatchingde un grupo de escalado automático que tiene configuradoInstanceRequirements. -
DesiredConfiguration: la actualización de una instancia fallará si la inicia con el
DesiredConfigurationparámetro en un grupo de escalado automático que tiene configuradoInstanceRequirements.
Si necesita realizar una actualización de instancias en un grupo de escalado automático con una selección de instancias basada en atributos, debe iniciar la actualización de instancias sin estos parámetros.
-