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 característica le ayuda a detener y lanzar las instancias o a reiniciarlas sin preocuparse de que Amazon EC2 Auto Scaling termine las instancias como parte de sus comprobaciones de estado o durante eventos de reducción horizontal.

Por ejemplo, puede cambiar la instancia de Amazon Machine Image (AMI) de un grupo de escalado automático en cualquier momento cambiando la plantilla de lanzamiento o la configuración de lanzamiento. Cualquier instancia posterior que lance el grupo de escalado automático utilizará esta AMI. Sin embargo, el grupo de escalado automático no actualiza las instancias que están actualmente en servicio. Puede terminar estas instancias y permitir que Amazon EC2 Auto Scaling las reemplace, o bien utilizar la característica 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 adjuntarlas a un grupo diferente o administrarlas como instancias EC2 independientes y, posiblemente, terminarlas. Para obtener más información, consulte Separe o adjunte instancias.

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 elige no reducir la capacidad deseada del grupo de escalado automático, Amazon EC2 Auto Scaling lanza una instancia para sustituir a la instancia 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 escalado automático 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 de AZRebalance. Para obtener más información, consulte Suspender y reanudar los procesos de Auto Scaling de Amazon EC2.

  • 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 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 realiza una comprobación de estado en la instancia hasta que se vuelve a poner en servicio.

Por ejemplo, si pone una instancia que está en buen estado en modo de espera y después termina la instancia, Amazon EC2 Auto Scaling sigue informando que la instancia está en buen estado. Si intenta volver a poner en servicio una instancia terminada que estaba en espera, Amazon EC2 Auto Scaling realiza una comprobación de estado de la instancia, determina que ha terminado y no está en buen estado, y lanza una instancia de reemplazo. 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. 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.

  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. Reemplace cada marcador de posición de entrada del usuario con información propia.

Para eliminar temporalmente una instancia
  1. Utilice el siguiente comando describe-auto-scaling-instances para identificar la instancia que se debe 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) Compruebe que la instancia está en Standby mediante 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 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" }, ... ] }