Eliminación temporal de las instancias de un grupo de Auto Scaling - Amazon EC2 Auto Scaling

Eliminación temporal de las instancias de un grupo de Auto Scaling

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 Auto Scaling, 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 Auto Scaling en cualquier momento cambiando la plantilla de lanzamiento o la configuración de lanzamiento. Cualquier instancia posterior que lance el grupo de Auto Scaling utilizará esta AMI. Sin embargo, el grupo de Auto Scaling 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 Auto Scaling es similar a poner instancias en espera. La desconexión de instancias puede ser útil si desea administrar las instancias como instancias EC2 independientes y, posiblemente, terminarlas. Para obtener más información, consulte Desconexión de instancias EC2 del grupo de Auto Scaling .

importante

Cuando pone instancias en espera, el grupo de Auto Scaling puede desequilibrarse entre zonas de disponibilidad. Amazon EC2 Auto Scaling compensa este desequilibrio reequilibrando las zonas de disponibilidad, a menos que suspenda el proceso AZRebalance. Para obtener más información, consulte Suspensión y reanudación de un proceso para un grupo de Auto Scaling .

importante

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

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 Auto Scaling:

  1. Coloca la 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 Auto Scaling, 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. De forma predeterminada, el valor especificado como la capacidad deseada disminuye cuando el usuario pone una instancia en espera. Esto impide que se lancen instancias adicionales mientras tiene esta instancia en espera. También puede especificar que la capacidad deseada no se reduzca. Si especifica esta opción, el grupo de Auto Scaling lanza una instancia para reemplazar 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.

  4. Puede actualizar la instancia o solucionar el problema.

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

  6. La capacidad deseada aumenta cuando vuelve a poner en servicio una instancia que estaba en espera. Si no redujo la capacidad cuando puso la instancia en espera, el grupo de Auto Scaling detecta que hay más instancias de las necesarias. y aplica la política de terminación en vigor para reducir el tamaño del grupo. Para obtener más información, consulte Control de las instancias de Auto Scaling que se terminan durante una reducción horizontal .

  7. Si hay un grupo de destino de balanceador de carga o un Classic Load Balancer asociados a un grupo de Auto Scaling, la instancia se registra en el balanceador de carga.

La siguiente ilustración muestra las transiciones entre los estados de la instancia en este proceso:


                    Las instancias entran y salen del estado en espera.

Para obtener información sobre el ciclo de vida completo de las instancias de un grupo de Auto Scaling, consulte Ciclo de vida de instancias de Amazon EC2 Auto Scaling.

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 una introducción a las comprobaciones de estado, consulte Comprobaciones de estado para instancias de Auto Scaling.

Eliminación temporal de una instancia (consola)

El siguiente procedimiento muestra el proceso general para actualizar una instancia que se encuentra actualmente en servicio.

Para eliminar temporalmente una instancia

  1. Abra la consola de Amazon EC2 Auto Scaling en https://console.aws.amazon.com/ec2autoscaling/.

  2. Seleccione la casilla situada junto al grupo de Auto Scaling.

    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 management (Administración de instancias), en Instances (Instancias), seleccione una instancia.

  4. Seleccione Actions, Set to Standby.

  5. En el cuadro de diálogo Set to Standby (Establecer en espera), seleccione la casilla de verificación para lanzar una instancia de sustitución. Déjela desactivada para reducir la capacidad deseada. Seleccione Set to Standby.

  6. 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.

  7. Seleccione la instancia y haga clic en Actions, Set to InService. En el cuadro de diálogo Set to InService (Establecer en servicio), elija Set to InService (Establecer en servicio).

Eliminación temporal de una instancia (AWS CLI)

El siguiente procedimiento muestra el proceso general para actualizar una instancia que se encuentra actualmente en servicio.

Para eliminar temporalmente una instancia

  1. Utilice el siguiente comando describe-auto-scaling-instances para identificar la instancia que se va a actualizar.

    aws autoscaling describe-auto-scaling-instances

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

    { "AutoScalingInstances": [ { "ProtectedFromScaleIn": false, "AvailabilityZone": "us-west-2a", "LaunchTemplate": { "LaunchTemplateName": "my-launch-template", "Version": "1", "LaunchTemplateId": "lt-050555ad16a3f9c7f" }, "InstanceId": "i-05b4f7d5be44822a6", "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 Auto Scaling 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": [ { "Description": "Moving EC2 instance to Standby: i-05b4f7d5be44822a6", "AutoScalingGroupName": "my-asg", "ActivityId": "3b1839fe-24b0-40d9-80ae-bcd883c2be32", "Details": "{\"Availability Zone\":\"us-west-2a\"}", "StartTime": "2014-12-15T21:31:26.150Z", "Progress": 50, "Cause": "At 2014-12-15T21:31:26Z instance i-05b4f7d5be44822a6 was moved to standby in response to a user request, shrinking the capacity from 4 to 3.", "StatusCode": "InProgress" } ] }
  3. (Opcional) Verifique que la instancia está Standby 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 ahora es Standby.

    { "AutoScalingInstances": [ { "ProtectedFromScaleIn": false, "AvailabilityZone": "us-west-2a", "LaunchTemplate": { "LaunchTemplateName": "my-launch-template", "Version": "1", "LaunchTemplateId": "lt-050555ad16a3f9c7f" }, "InstanceId": "i-05b4f7d5be44822a6", "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": [ { "Description": "Moving EC2 instance out of Standby: i-05b4f7d5be44822a6", "AutoScalingGroupName": "my-asg", "ActivityId": "db12b166-cdcc-4c54-8aac-08c5935f8389", "Details": "{\"Availability Zone\":\"us-west-2a\"}", "StartTime": "2014-12-15T21:46:14.678Z", "Progress": 30, "Cause": "At 2014-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.", "StatusCode": "PreInService" } ] }
  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", "AutoScalingGroupName": "my-asg", "HealthStatus": "HEALTHY", "LifecycleState": "InService" }, ... ] }