Inversión de cambios con una reversión manual o automática - Amazon EC2 Auto Scaling

Inversión de cambios con una reversión manual o automática

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 instancias tiene errores por algún motivo o si las alarmas de CloudWatch que usted especifica adoptan el estado de 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 revertir a una plantilla de lanzamiento que esté configurada para usar un alias de AMI del almacén de parámetros AWS Systems Manager.

  • 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 produce un error, asegúrese de haber actualizado la AWS CLI localmente a la versión más reciente.

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

Con la característica de reversión automática, puede revertir automáticamente la actualización de instancias cuando falla como, por ejemplo, cuando hay errores o cuando una alarma específica de Amazon CloudWatch entra en estado ALARM.

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 las alarmas de CloudWatch es opcional. Para especificar una alarma, primero tiene que crearla. Puede especificar alarmas de métricas y alarmas compuestas. Para obtener más información sobre cómo crear la alarma, consulte la Guía del usuario de Amazon CloudWatch. 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 especifica una alarma de CloudWatch pero no habilita la reversión automática y el estado de la alarma pasa a ALARM, la actualización de instancias falla sin revertirse.

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

  • Al elegir una alarma de CloudWatch, 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, consulte Configuración de cómo las alarmas tratan los datos faltantes en la Guía del usuario de Amazon CloudWatch.

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 Refresh settings (Actualizar configuración), para la CloudWatch alarm (Alarma de CloudWatch), seleccione Enable CloudWatch alarms (Activar alarmas de CloudWatch) y, a continuación, elija una o más alarmas para identificar cualquier problema y no realizar la operación si una alarma entra en estado ALARM.

  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 instancias cuando se produce un error en la actualización de instancias o cuando una alarma de CloudWatch específica está en el estado ALARM, especifique la opción AlarmSpecification 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 produce un error, asegúrese de haber actualizado la AWS CLI localmente a la versión más reciente.