Reemplazo de instancias de Auto Scaling en función de la duración máxima de la instancia - Amazon EC2 Auto Scaling

Reemplazo de instancias de Auto Scaling en función de la duración máxima de la instancia

La duración máxima de la instancia especifica la cantidad máxima de tiempo (en segundos) que una instancia puede estar en servicio antes de que se termine y se sustituya. Un caso de uso común podría ser un requisito para reemplazar las instancias según una programación debido a políticas de seguridad internas o controles de conformidad externos.

Debe especificar un valor de al menos 86 400 segundos (un día). Para borrar un valor establecido anteriormente, especifique un valor nuevo de 0. Esta configuración se aplica a todas las instancias actuales y futuras del grupo de Auto Scaling.

Consideraciones

A continuación, se detallan consideraciones que se deben tener a la hora de utilizar esta característica:

  • Cada vez que se reemplaza una instancia anterior y se lanza una instancia nueva, la instancia nueva utiliza la plantilla de lanzamiento o la configuración de lanzamiento asociada actualmente al grupo de escalado automático. Si la plantilla de lanzamiento o la configuración de lanzamiento especifican el ID de imagen de máquina de Amazon (AMI) de una versión diferente de la aplicación, esta versión de la aplicación se implementará de forma automática.

  • Si se establece un valor de duración máxima de la instancia demasiado bajo, las instancias pueden ser reemplazadas más rápido de lo deseado. En general, Amazon EC2 Auto Scaling reemplaza las instancias de una en una, con una pausa entre reemplazos. Sin embargo, si la duración máxima de la instancia que especifique no proporciona tiempo suficiente para reemplazar cada instancia de forma individual, Amazon EC2 Auto Scaling debe reemplazar más de una instancia a la vez. Es posible que se reemplacen varias instancias a la vez, hasta un 10 por ciento de la capacidad actual del grupo de Auto Scaling. Para evitar reemplazar demasiadas instancias a la vez, establezca una duración máxima de la instancia más larga o utilice la protección contra la reducción horizontal de instancias para evitar temporalmente que las instancias individuales terminen. Para obtener más información, consulte Uso de la protección frente a la reducción horizontal de instancias para controlar la terminación de instancias.

  • De manera predeterminada, Amazon EC2 Auto Scaling crea una nueva actividad de escalado para terminar la instancia y, a continuación, la termina. Mientras se termina la instancia, otra actividad de escalado lanza una instancia nueva. Puede cambiar este comportamiento para que se lance antes de la finalización mediante una política de mantenimiento de instancias. Para obtener más información, consulte Políticas de mantenimiento de instancias.

Configuración de la duración máxima de la instancia

Cuando se crea un grupo de Auto Scaling en la consola, no se puede configurar la duración máxima de la instancia. Sin embargo, una vez que se crea el grupo, se puede editar para configurar la duración máxima de la instancia.

Para configurar la duración máxima de las instancias de un grupo (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.

    Se abre un panel dividido en la parte inferior de la página Auto Scaling groups (Grupos de Auto Scaling), que muestra información sobre el grupo que seleccionó.

  3. En la pestaña Details (Detalles) elija (Advanced configurations) Configuraciones avanzadas, Edit (Editar).

  4. En Maximum instance lifetime (Duración máxima de la instancia), ingrese la cantidad máxima de segundos que una instancia puede estar en servicio.

  5. Elija Actualizar.

En la pestaña Activity (Actividad), en Activity history (Historial de actividad), puede ver el historial de reemplazo de instancias del grupo a lo largo de su historia.

Para configurar la duración máxima de las instancias de un grupo (AWS CLI)

También puede utilizar la AWS CLI para configurar la duración máxima de las instancias para grupos de Auto Scaling nuevos o existentes.

Para los nuevos grupos de Auto Scaling, utilice el comando create-auto-scaling-group.

aws autoscaling create-auto-scaling-group --cli-input-json file://~/config.json

A continuación, se incluye un archivo de ejemplo config.json que muestra una duración máxima de instancia de 2592000 segundos (30 días).

{ "AutoScalingGroupName": "my-asg", "LaunchTemplate": { "LaunchTemplateName": "my-launch-template", "Version": "$Default" }, "MinSize": 1, "MaxSize": 5, "MaxInstanceLifetime": 2592000, "VPCZoneIdentifier": "subnet-5ea0c127,subnet-6194ea3b,subnet-c934b782", "Tags": [] }

Para los grupos de Auto Scaling existentes, utilice el comando update-auto-scaling-group.

aws autoscaling update-auto-scaling-group --auto-scaling-group-name my-existing-asg --max-instance-lifetime 2592000
Para comprobar la duración máxima de las instancias de un grupo de Auto Scaling

Utilice el comando describe-auto-scaling-groups.

aws autoscaling describe-auto-scaling-groups --auto-scaling-group-name my-asg

Limitaciones

  • No se garantiza que la duración máxima sea exacta para cada instancia: no se garantiza que las instancias se sustituyan solo al final de su duración máxima. En algunos casos, es posible que Amazon EC2 Auto Scaling tenga que comenzar a reemplazar las instancias inmediatamente después de actualizar el parámetro de duración máxima de la instancia. El motivo de este comportamiento es evitar que se reemplacen todas las instancias al mismo tiempo.

  • Respetar la protección contra la reducción horizontal de instancias: Amazon EC2 Auto Scaling proporciona protección contra la reducción horizontal de instancias para ayudarle a controlar qué instancias puede terminar. Cuando esta protección está habilitada en una instancia, Amazon EC2 Auto Scaling no terminará la instancia aunque haya alcanzado su duración máxima.

  • Instancias terminadas antes del lanzamiento: cuando solo hay una instancia en el grupo de escalado automático, la característica de duración máxima de la instancia puede provocar una interrupción, ya que Amazon EC2 Auto Scaling termina una instancia y, a continuación, lanza una instancia nueva de forma predeterminada. Para cambiar este comportamiento a lanzar antes de terminar, consulte Políticas de mantenimiento de instancias.