Inversión de cambios con una reversión - 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.

Inversión de cambios con una reversión

Puede revertir una actualización de instancias que todavía está en curso. No puede revertirla después de que haya terminado. Sin embargo, puede volver a actualizar el grupo de escalado automático si inicia una nueva actualización de instancias.

Al hacer la reversión, Amazon EC2 Auto Scaling reemplaza las instancias que se han implementado hasta ahora. Las nuevas instancias coinciden con la configuración que guardó por última vez en el grupo de escalado automático antes de iniciar la actualización de instancias.

Amazon EC2 Auto Scaling ofrece las siguientes formas de revertir cambios:

  • Reversión manual: se inicia una reversión manualmente para invertir lo que se implementó hasta el punto de reversión.

  • Reversión automática: Amazon EC2 Auto Scaling revierte automáticamente lo que se implementó si la actualización de la instancia falla por algún motivo o si CloudWatch alguna de las alarmas que especifique entra en ese estado. ALARM

Consideraciones

Las siguientes consideraciones se aplican cuando se utiliza una reversión:

  • La opción de reversión solo está disponible si especifica la configuración deseada como parte del inicio de una actualización de instancias.

  • Solo puede revertir a una versión anterior de una plantilla de lanzamiento si la versión es una versión numerada específica. La opción de reversión no está disponible si el grupo de escalado automático está configurado para usar la versión de plantilla $Latest o $Default.

  • Tampoco puede volver a una plantilla de lanzamiento que esté configurada para usar un alias de AMI del almacén de AWS Systems Manager parámetros.

  • La configuración que guardó por última vez en el grupo de escalado automático debe encontrarse en un estado estable. Si no está en un estado estable, el flujo de trabajo de reversión seguirá ejecutándose, pero al final se producirá un error. Hasta que no se resuelva el problema, es posible que el grupo de escalado automático se encuentre en un estado de error y ya no pueda lanzar instancias correctamente. Esto podría afectar a la disponibilidad del servicio o la aplicación.

Inicio manual de una reversión

Console
Inicio manual de una reversión de una actualización de instancias (consola)
  1. Abra la consola de Amazon EC2 en https://console.aws.amazon.com/ec2/ y elija Auto Scaling Groups (Grupos de escalado automático) en el panel de navegación.

  2. Seleccione la casilla situada junto al grupo de escalado automático.

  3. En la pestaña Actualización de instancias en Actualización de instancias activa, elija Acciones, Iniciar reversión.

  4. Cuando deba confirmar la selección, haga clic en Confirm (Confirmar).

AWS CLI
Inicio manual de una reversión de una actualización de instancias (AWS CLI)

Utilice el comando rollback-instance-refresh de AWS CLI y proporcione el nombre del grupo de escalado automático.

aws autoscaling rollback-instance-refresh --auto-scaling-group-name my-asg

Ejemplo de salida:

{ "InstanceRefreshId": "08b91cf7-8fa6-48af-b6a6-d227f40f1b9b" }
sugerencia

Si este comando arroja un error, asegúrese de haber actualizado la versión AWS CLI local a la última versión.

Inicio de una actualización de instancias con reversión automática

Con la función de reversión automática, puedes revertir automáticamente la actualización de la instancia cuando se produce un error, por ejemplo, cuando hay errores o cuando se activa una CloudWatch alarma de Amazon específicaALARM.

Si habilita la reversión automática y se producen errores al reemplazar las instancias, la actualización de instancias intentará completar todas las sustituciones durante una hora antes de que se produzca un error y se revierta. Por lo general, estos errores se deben a errores en el lanzamiento de EC2, a una mala configuración de las comprobaciones de estado o a que no se ignoran ni permiten la finalización de las instancias que están en el estado Standby o protegidas contra la reducción horizontal.

La especificación de CloudWatch las alarmas es opcional. Para especificar una alarma, primero tiene que crearla. Puede especificar alarmas de métricas y alarmas compuestas. Para obtener información sobre cómo crear la alarma, consulta la Guía del CloudWatch usuario de Amazon. Si utiliza las métricas de Elastic Load Balancing como ejemplo, si utiliza un equilibrador de carga de aplicación, puede utilizar las métricas HTTPCode_ELB_5XX_Count y HTTPCode_ELB_4XX_Count.

Consideraciones
  • Si especificas una CloudWatch alarma pero no habilitas la reversión automática y el estado de alarma pasa aALARM, la actualización de la instancia fallará sin revertirla.

  • Puede elegir un máximo de 10 alarmas al iniciar una actualización de instancias.

  • Al elegir una CloudWatch alarma, la alarma debe estar en un estado compatible. Si el estado de la alarma es INSUFFICIENT_DATA o ALARM, recibirá un error al intentar iniciar la actualización de instancias.

  • Al crear una alarma para que la utilice Amazon EC2 Auto Scaling, la alarma debe incluir cómo gestionar los puntos de datos faltantes. Si a una métrica le faltan puntos de datos por diseño, el estado de la alarma es INSUFFICIENT_DATA durante esos períodos. Cuando esto ocurre, Amazon EC2 Auto Scaling no puede instancias hasta que se encuentren nuevos puntos de datos. Para forzar la alarma a fin de mantener el estado anterior ALARM o OK, puede optar por ignorar los datos que faltan en su lugar. Para obtener más información, consulta Cómo configurar el modo en que las alarmas tratan los datos faltantes en la Guía del CloudWatch usuario de Amazon.

Console
Inicio de una actualización de instancias con reversión automática (consola)
  1. Abra la consola de Amazon EC2 en https://console.aws.amazon.com/ec2/ y elija Auto Scaling Groups (Grupos de escalado automático) en el panel de navegación.

  2. Seleccione la casilla situada junto al grupo de escalado automático.

  3. En la pestaña Instance refresh (Actualización de instancias) en Active Instance refresh (Actualización de instancias activas), elija Start instance refresh (Iniciar actualización de instancias).

  4. Siga el procedimiento Inicio de una actualización de instancias (consola) y configure su actualización de instancia según sea necesario.

  5. (Opcional) En Actualizar la configuración, para la CloudWatch alarma, selecciona Activar CloudWatch alarmas y, a continuación, elige una o más alarmas para identificar cualquier problema y hacer que no funcione si se activa una ALARM alarma.

  6. En Configuración de reversión, seleccione Habilitar la reversión automática para revertir automáticamente una actualización de instancias fallida a la configuración que guardó por última vez en el grupo de escalado automático antes de iniciar la actualización de instancias.

  7. Revise sus selecciones y, a continuación, elija Iniciar la actualización de instancias.

AWS CLI
Inicio de una actualización de instancias con reversión automática (AWS CLI)

Utilice el comando start-instance-refresh y especifique true para la opción AutoRollback en las Preferences.

En el siguiente ejemplo, se muestra cómo iniciar una actualización de instancias que se revertirá automáticamente si se produce algún error. Sustituya los valores del parámetro italicized por sus propios valores.

aws autoscaling start-instance-refresh --cli-input-json file://config.json

Contenido de config.json.

{ "AutoScalingGroupName": "my-asg", "DesiredConfiguration": { "LaunchTemplate": { "LaunchTemplateName": "my-launch-template", "Version": "1" } }, "Preferences": { "AutoRollback": true } }

Como alternativa, para revertir automáticamente la actualización de la instancia cuando se produce un error en la actualización de la instancia o cuando una CloudWatch alarma específica está en ese ALARM estado, especifique la AlarmSpecification opción en Preferences y proporcione el nombre de la alarma, como en el siguiente ejemplo. Sustituya los valores del parámetro italicized por sus propios valores.

{ "AutoScalingGroupName": "my-asg", "DesiredConfiguration": { "LaunchTemplate": { "LaunchTemplateName": "my-launch-template", "Version": "1" } }, "Preferences": { "AutoRollback": true, "AlarmSpecification": { "Alarms": [ "my-alarm" ] } } }

Si se ejecuta correctamente, el comando devolverá información similar a la siguiente.

{ "InstanceRefreshId": "08b91cf7-8fa6-48af-b6a6-d227f40f1b9b" }
sugerencia

Si este comando arroja un error, asegúrate de haber actualizado la versión AWS CLI local a la última versión.