Eliminación temporal de las instancias de un grupo de escalado automático - 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.

Eliminación temporal de las instancias de un grupo de escalado automático

Puede poner una instancia que tiene el estado InService en el estado Standby, actualizar o resolver los problemas de la instancia y, a continuación, poner de nuevo la instancia en servicio. Las instancias que están a la espera siguen formando parte del grupo de escalado automático, pero no gestionan activamente el tráfico del balanceador de carga.

Esta función le ayuda a detener e iniciar las instancias o a reiniciarlas sin tener que preocuparse de que Amazon EC2 Auto Scaling termine las instancias como parte de sus comprobaciones de estado o durante los eventos de escalado interno.

Por ejemplo, puede cambiar la Amazon Machine Image (AMI) de un grupo de Auto Scaling en cualquier momento cambiando la plantilla de lanzamiento o la configuración de lanzamiento. Cualquier instancia posterior que lance el grupo Auto Scaling la usaráAMI. Sin embargo, el grupo de escalado automático no actualiza las instancias que están actualmente en servicio. Puede terminar estas instancias y dejar que Amazon EC2 Auto Scaling las sustituya, o bien usar la función de actualización de instancias para terminar y reemplazar las instancias. O bien, puede poner las instancias en espera, actualizar el software y, a continuación, volver a poner las instancias en servicio.

Desconectar instancias de un grupo de escalado automático es similar a poner instancias en espera. Separar las instancias puede resultar útil si desea asociarlas a un grupo diferente o administrar las instancias como EC2 instancias independientes y, posiblemente, terminarlas. Para obtener más información, consulte Separe o adjunte instancias de su grupo de Auto Scaling.

Cómo funciona el estado en espera

El estado de espera funciona tal y como se indica a continuación para ayudarle a eliminar temporalmente una instancia del grupo de escalado automático:

  1. Coloca una instancia en estado de espera. La instancia permanece en este estado hasta que suspenda el estado de espera.

  2. Si hay un grupo de destino de balanceador de carga o un Classic Load Balancer asociados al grupo de escalado automático, se cancela el registro de la instancia del balanceador de carga. Si se habilita Connection Draining para el balanceador de carga, Elastic Load Balancing espera 300 segundos de forma predeterminada antes de completar el proceso de anulación del registro, para ayudar a que se completen las solicitudes en tránsito.

  3. Puede actualizar la instancia o solucionar el problema.

  4. Al salir del estado en espera, la instancia vuelve a estar en servicio.

  5. Si hay un grupo de destino de balanceador de carga o un Classic Load Balancer asociados a un grupo de escalado automático, la instancia se registra en el balanceador de carga.

Para obtener más información sobre el ciclo de vida de las instancias de un grupo de escalado automático, consulte Ciclo de vida de instancias de Amazon EC2 Auto Scaling.

Consideraciones

A la hora de mover instancias al estado de espera y al sacarlas del estado de espera, se tienen en cuenta las siguientes consideraciones:

  • Cuando pone una instancia en espera, puede reducir la capacidad deseada mediante esta operación o mantenerla en el mismo valor.

    • Si decide no reducir la capacidad deseada del grupo Auto Scaling, Amazon EC2 Auto Scaling lanza una instancia para sustituir a la que está en espera. La intención es ayudarlo a mantener la capacidad de su aplicación mientras una o más instancias están en espera.

    • Si elige reducir la capacidad deseada del grupo de escalado automático, se impide el lanzamiento de una instancia que sustituya a la instancia que está en espera.

  • Después de volver a poner la instancia en servicio, la capacidad deseada se incrementa para reflejar el número de instancias que hay en el grupo de escalado automático.

  • Para realizar el incremento (y la disminución), la nueva capacidad deseada debe estar entre el tamaño mínimo y máximo del grupo. De lo contrario, la operación no se llevará a cabo correctamente.

  • Si en algún momento, después de poner una instancia en espera o de devolverla al servicio al salir del estado de espera, se descubre que su grupo de Auto Scaling no está equilibrado entre las zonas de disponibilidad, Amazon EC2 Auto Scaling lo compensa reequilibrando las zonas de disponibilidad, a menos que suspenda el proceso. AZRebalance Para obtener más información, consulte Suspender y reanudar los procesos de Amazon EC2 Auto Scaling.

  • Se le cobrarán las instancias que se encuentran en estado de espera.

Estado de una instancia cuando está en espera

Amazon EC2 Auto Scaling no realiza comprobaciones de estado en las instancias que se encuentran en estado de espera. Mientras la instancia se encuentra en un estado de espera, su estado de mantenimiento refleja el estado que tenía antes de que se pusiera en modo de espera. Amazon EC2 Auto Scaling no comprueba el estado de la instancia hasta que se vuelve a poner en servicio.

Por ejemplo, si coloca una instancia en buen estado en espera y, a continuación, la finaliza, Amazon EC2 Auto Scaling seguirá registrando la instancia como en buen estado. Si intenta volver a poner en servicio una instancia finalizada que estaba en espera, Amazon EC2 Auto Scaling realiza una comprobación de estado de la instancia, determina si está finalizando y en mal estado y lanza una instancia de sustitución. Para obtener más información, consulte Comprobaciones de estado para instancias en un grupo de escalado automático.

Elimine temporalmente una instancia configurándola en modo de espera

Use uno de los siguientes procedimientos para dejar una instancia fuera de servicio temporalmente colocándola en estado de espera.

Console
Para eliminar temporalmente una instancia
  1. Abre la EC2 consola de Amazon en https://console.aws.amazon.com/ec2/y selecciona Auto Scaling Groups 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.

  3. En la pestaña Instance management (Administración de instancias), en Instances (Instancias), seleccione una instancia.

  4. Seleccione Acciones, Establecer en En espera.

  5. En el cuadro de diálogo Establecer en En espera, mantenga seleccionada la casilla de verificación Reemplazar instancia para lanzar una instancia de reemplazo. Desactive la casilla de verificación para reducir la capacidad deseada.

  6. Cuando se solicite la confirmación, escriba standby para confirmar que se ha colocado la instancia especificada en el estado Standby y, a continuación, seleccione Establecer en En espera.

  7. Puede actualizar la instancia o solucionar su problema según sea necesario. Cuando haya terminado, continúe con el siguiente paso para poner de nuevo la instancia en servicio.

  8. Seleccione la instancia, elija Acciones y establezca en InService. En el cuadro de InService diálogo Definir como, seleccione Definir como InService.

AWS CLI

Para eliminar temporalmente una instancia de su grupo de Auto Scaling, utilice los siguientes comandos de ejemplo. Sustituya cada uno user input placeholder con tu propia información.

Para eliminar temporalmente una instancia
  1. Usa el siguiente describe-auto-scaling-instancescomando para identificar la instancia que deseas actualizar.

    aws autoscaling describe-auto-scaling-instances \ --query 'AutoScalingInstances[?AutoScalingGroupName==`my-asg`]'

    El siguiente ejemplo muestra el resultado que se produce al ejecutar este comando.

    Anote el ID de la instancia que desea eliminar del grupo. Necesitarás este ID en el siguiente paso.

    { "AutoScalingInstances": [ { "ProtectedFromScaleIn": false, "AvailabilityZone": "us-west-2a", "LaunchTemplate": { "LaunchTemplateName": "my-launch-template", "Version": "1", "LaunchTemplateId": "lt-050555ad16a3f9c7f" }, "InstanceId": "i-05b4f7d5be44822a6", "InstanceId": "t3.micro", "AutoScalingGroupName": "my-asg", "HealthStatus": "HEALTHY", "LifecycleState": "InService" }, ... ] }
  2. Mueva la instancia a un estado Standby mediante el siguiente comando enter-standby. La opción --should-decrement-desired-capacity reduce la capacidad deseada para que el grupo de escalado automático no lance una instancia de reemplazo.

    aws autoscaling enter-standby --instance-ids i-05b4f7d5be44822a6 \ --auto-scaling-group-name my-asg --should-decrement-desired-capacity

    A continuación, se muestra un ejemplo de respuesta.

    { "Activities": [ { "ActivityId": "3b1839fe-24b0-40d9-80ae-bcd883c2be32", "AutoScalingGroupName": "my-asg", "Description": "Moving EC2 instance to Standby: i-05b4f7d5be44822a6", "Cause": "At 2023-12-15T21:31:26Z instance i-05b4f7d5be44822a6 was moved to standby in response to a user request, shrinking the capacity from 4 to 3.", "StartTime": "2023-12-15T21:31:26.150Z", "StatusCode": "InProgress", "Progress": 50, "Details": "{\"Subnet ID\":\"subnet-c934b782\",\"Availability Zone\":\"us-west-2a\"}" } ] }
  3. (Opcional) Comprueba que la instancia esté activa Standby mediante el siguiente describe-auto-scaling-instancescomando.

    aws autoscaling describe-auto-scaling-instances --instance-ids i-05b4f7d5be44822a6

    A continuación, se muestra un ejemplo de respuesta. Observe que el estado de la instancia ahora es Standby.

    { "AutoScalingInstances": [ { "ProtectedFromScaleIn": false, "AvailabilityZone": "us-west-2a", "LaunchTemplate": { "LaunchTemplateName": "my-launch-template", "Version": "1", "LaunchTemplateId": "lt-050555ad16a3f9c7f" }, "InstanceId": "i-05b4f7d5be44822a6", "InstanceType": "t3.micro", "AutoScalingGroupName": "my-asg", "HealthStatus": "HEALTHY", "LifecycleState": "Standby" }, ... ] }
  4. Puede actualizar la instancia o solucionar su problema según sea necesario. Cuando haya terminado, continúe con el siguiente paso para poner de nuevo la instancia en servicio.

  5. Vuelva a poner la instancia en servicio usando el siguiente comando exit-standby.

    aws autoscaling exit-standby --instance-ids i-05b4f7d5be44822a6 --auto-scaling-group-name my-asg

    A continuación, se muestra un ejemplo de respuesta.

    { "Activities": [ { "ActivityId": "db12b166-cdcc-4c54-8aac-08c5935f8389", "AutoScalingGroupName": "my-asg", "Description": "Moving EC2 instance out of Standby: i-05b4f7d5be44822a6", "Cause": "At 2023-12-15T21:46:14Z instance i-05b4f7d5be44822a6 was moved out of standby in response to a user request, increasing the capacity from 3 to 4.", "StartTime": "2023-12-15T21:46:14.678Z", "StatusCode": "PreInService", "Progress": 30, "Details": "{\"Subnet ID\":\"subnet-c934b782\",\"Availability Zone\":\"us-west-2a\"}" } ] }
  6. (Opcional) Compruebe que la instancia vuelve a estar en servicio utilizando el siguiente comando describe-auto-scaling-instances.

    aws autoscaling describe-auto-scaling-instances --instance-ids i-05b4f7d5be44822a6

    A continuación, se muestra un ejemplo de respuesta. Observe que el estado de la instancia es InService.

    { "AutoScalingInstances": [ { "ProtectedFromScaleIn": false, "AvailabilityZone": "us-west-2a", "LaunchTemplate": { "LaunchTemplateName": "my-launch-template", "Version": "1", "LaunchTemplateId": "lt-050555ad16a3f9c7f" }, "InstanceId": "i-05b4f7d5be44822a6", "InstanceType": "t3.micro", "AutoScalingGroupName": "my-asg", "HealthStatus": "HEALTHY", "LifecycleState": "InService" }, ... ] }