Agregar puntos de control a una actualización de instancias - 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.

Agregar puntos de control a una actualización de instancias

Al utilizar una actualización de instancias, puede elegir reemplazar instancias por fases, de modo que pueda hacer verificaciones en las instancias a medida que avanza. Para realizar un reemplazo por fases, agregue puntos de control, que son puntos en el tiempo en los que se detiene la actualización de instancias. El uso de puntos de control le ofrece un mayor control sobre cómo elige actualizar el grupo de Auto Scaling. Lo ayuda a confirmar que la aplicación va a funcionar de manera fiable y predecible.

Amazon EC2 Auto Scaling emite eventos para cada punto de control. Puede añadir una EventBridge regla para enviar los eventos a un destino como Amazon SNS. De esta forma, recibirá una notificación cuando pueda ejecutar las verificaciones necesarias. Para obtener más información, consulte Creación de reglas de EventBridge para eventos de actualización de instancias.

Considere el siguiente grupo de escalado automático que tiene 10 instancias. Los porcentajes de punto de control son [20,50,100]; el porcentaje de buen estado mínimo es del 80 por ciento y el porcentaje máximo en buen estado‭ es del 100 por ciento. Para mantener el porcentaje de buen estado mínimo, solo pueden reemplazarse dos instancias por vez. Para alcanzar un porcentaje de puntos de control, Amazon EC2 Auto Scaling a veces reemplaza menos, pero nunca más, de lo que permite el porcentaje de buen estado mínimo. En el siguiente diagrama se resume el proceso de reemplazo de instancias antes de que se alcance un punto de control.


                    En este diagrama se muestra cómo los puntos de control afectan al flujo de una actualización de instancias.

En el ejemplo anterior, hay un período de preparación de instancias para cada nueva instancia que se inicie. También puede que tenga un enlace de ciclo de vida que ponga una instancia en estado de espera y luego realice una acción personalizada durante el proceso de lanzamiento o terminación.

Consideraciones

Tenga en cuenta las siguientes consideraciones al utilizar puntos de control:

  • Se alcanza un punto de control cuando se reemplaza un porcentaje específico del número total de instancias del grupo de escalado automático. El porcentaje es el porcentaje mínimo del grupo de escalado automático que desea que represente el punto de control. En algunos casos, el porcentaje real completado puede ser superior al porcentaje de ese punto de control cuando el porcentaje del punto de control es demasiado bajo en relación con la cantidad de instancias del grupo. Por ejemplo, supongamos que el porcentaje del punto de control es del 20 por ciento y que el grupo tiene cuatro instancias. Si Amazon EC2 Auto Scaling reemplaza una de las cuatro instancias, el porcentaje real reemplazado (25 por ciento) será superior al porcentaje del punto de control (20 por ciento).

  • Una vez alcanzado un punto de control, el porcentaje total completado no muestra el estado más reciente hasta que las instancias terminan la preparación.

    Por ejemplo, supongamos que el grupo de Auto Scaling tiene 10 instancias. Los porcentajes de punto de control son [20,50] con un retraso de punto de control de 15 minutos y un porcentaje mínimo en buen estado del 80 por ciento. Su grupo realiza los siguientes reemplazos:

    • 0:00: dos instancias anteriores se reemplazan por otras nuevas.

    • 0:10: dos instancias nuevas terminan la preparación.

    • 0:25: dos instancias anteriores se reemplazan por otras nuevas. (Solo se reemplazan dos instancias para mantener el porcentaje mínimo en buen estado).

    • 0:35: dos instancias nuevas terminan la preparación.

    • 0:35: una instancia anterior se reemplaza por una nueva.

    • 0:45: una instancia nueva termina la preparación.

    A las 0:35, la operación deja de lanzar instancias nuevas. El porcentaje completado aún no refleja con precisión el número de reemplazos completados (50 por ciento), porque la nueva instancia no ha terminado la preparación. Una vez que la nueva instancia completa su período de preparación a las 0:45, el porcentaje completado muestra el 50 por ciento.

  • Dado que los puntos de control se basan en porcentajes, el número de instancias que se reemplazan cambia con el tamaño del grupo. Cuando se produce una actividad de escalado horizontal y aumenta el tamaño del grupo, una operación en curso podría volver a alcanzar un punto de control. Si sucede esto, Amazon EC2 Auto Scaling envía otra notificación y repite el tiempo de espera entre los puntos de control antes de continuar.

  • Es posible omitir un punto de control bajo ciertas circunstancias. Por ejemplo, supongamos que el grupo de Auto Scaling tiene dos instancias y los porcentajes de puntos de control son [10,40,100]. Una vez reemplazada la primera instancia, Amazon EC2 Auto Scaling calcula que se reemplazó el 50 por ciento del grupo. Debido a que el 50 por ciento es mayor que los dos primeros puntos de control, omite el primer punto de control (10) y envía una notificación para el segundo punto de control (40).

  • La cancelación de la operación impide que se realicen nuevos reemplazos. Si cancela la operación o esta genera un error antes de llegar al último punto de control, las instancias que ya se hayan reemplazado no revierten a su configuración anterior.

  • En el caso de una actualización parcial, al volver a ejecutar la operación, Amazon EC2 Auto Scaling no se reinicia desde el último punto de comprobación ni se detiene cuando solo se reemplazan las instancias anteriores. Sin embargo, reemplaza primero las instancias anteriores antes de las nuevas instancias.

Habilitar puntos de control (consola)

Es posible habilitar los puntos de control antes de iniciar una actualización de instancias para reemplazar instancias mediante un enfoque progresivo o gradual. Esto proporciona tiempo adicional para la verificación.

Para comenzar una actualización de instancias que utiliza puntos de control
  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.

    Se abre un panel dividido en la parte inferior de la página Auto Scaling groups (Grupos de Auto Scaling).

  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. En la página Start instance refresh (Iniciar actualización de instancias), ingrese los valores Minimum healthy percentage (Porcentaje mínimo en buen estado) e Instance warmup (Preparación de la instancia).

  5. Seleccione la casilla de verificación Enable checkpoints (Habilitar puntos de control).

    Esto muestra un cuadro donde puede definir el porcentaje de umbral para el primer punto de control.

  6. En Proceed until ____ % of the group is refreshed (Continuar hasta que se actualice el ____ % del grupo), ingrese un número (1-100). Esto configura el porcentaje del primer punto de control.

  7. Para agregar otro punto de control, elija Add checkpoint (Agregar punto de control) y, a continuación, defina el porcentaje para el siguiente punto de control.

  8. Para especificar cuánto tiempo espera Amazon EC2 Auto Scaling una vez alcanzado un punto de control, actualice los campos de Wait for 1 hour between checkpoints (Esperar 1 hora entre puntos de control). La unidad de tiempo puede ser horas, minutos o segundos.

  9. Si terminó con las selecciones de actualización de instancias, elija Iniciar actualización de instancias.

Habilitar puntos de control (AWS CLI)

Para iniciar una actualización de instancias con los puntos de control habilitados mediante el AWS CLI, necesita un archivo de configuración que defina los siguientes parámetros:

  • CheckpointPercentages: especifica los valores de umbral para el porcentaje de instancias que se van a reemplazar. Estos valores de umbral proporcionan los puntos de control. Cuando el porcentaje de instancias que se han reemplazado y preparado alcanza uno de los umbrales especificados, la operación espera un período de tiempo especificado. Para especificar el número de segundos que se debe esperar en CheckpointDelay. Una vez transcurrido el período de tiempo especificado, la actualización de instancias continúa hasta que llega al siguiente punto de control (si corresponde).

  • CheckpointDelay: especifica la cantidad de tiempo, en segundos, que debe esperar después de alcanzar un punto de control antes de continuar. Elija un período de tiempo que proporcione tiempo suficiente para realizar las verificaciones.

El último valor que se muestra en la matriz CheckpointPercentages describe el porcentaje del grupo de Auto Scaling que debe reemplazarse correctamente. La operación pasa a Successful después de que este porcentaje se reemplaza correctamente y se considera que todas las instancias han terminado de inicializarse.

Para crear varios puntos de control

Para crear varios puntos de control, usa el siguiente comando de ejemplo start-instance-refresh. En este ejemplo se configura una actualización de instancias que actualiza inicialmente el uno por ciento del grupo de Auto Scaling. Después de esperar 10 minutos, se actualiza el 19 por ciento siguiente y espera otros 10 minutos. Por último, actualiza el resto del grupo antes de concluir la operación.

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

Contenido de config.json:

{ "AutoScalingGroupName": "my-asg", "Preferences": { "InstanceWarmup": 60, "MinHealthyPercentage": 80, "CheckpointPercentages": [1,20,100], "CheckpointDelay": 600 } }
Para crear un único punto de control

Para crear un único punto de control, utilice el siguiente comando de ejemplo start-instance-refresh. En este ejemplo se configura una actualización de instancias que actualiza inicialmente el 20 por ciento del grupo de Auto Scaling. Después de esperar 10 minutos, actualiza el resto del grupo antes de concluir la operación.

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

Contenido de config.json:

{ "AutoScalingGroupName": "my-asg", "Preferences": { "InstanceWarmup": 60, "MinHealthyPercentage": 80, "CheckpointPercentages": [20,100], "CheckpointDelay": 600 } }
Para actualizar parcialmente el grupo de Auto Scaling

Para reemplazar solo una parte del grupo de Auto Scaling y luego detenerlo por completo, utilice el siguiente start-instance-refreshcomando de ejemplo. En este ejemplo se configura una actualización de instancias que actualiza inicialmente el uno por ciento del grupo de Auto Scaling. Después de esperar 10 minutos, actualiza el siguiente 19 por ciento antes de concluir la operación.

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

Contenido de config.json:

{ "AutoScalingGroupName": "my-asg", "Preferences": { "InstanceWarmup": 60, "MinHealthyPercentage": 80, "CheckpointPercentages": [1,20], "CheckpointDelay": 600 } }