Escalado manual para Amazon EC2 Auto Scaling - Amazon EC2 Auto Scaling

Escalado manual para Amazon EC2 Auto Scaling

Puede ajustar manualmente el número de instancias de EC2 en su grupo de escalado automático en cualquier momento. Este proceso de cambiar el recuento de instancias manualmente se denomina escalado manual. El escalado manual es una alternativa al escalado automático, especialmente si desea realizar cambios de capacidad únicos.

Tras escalar el grupo manualmente, Amazon EC2 Auto Scaling reanuda las actividades normales de escalado automático en función de las políticas de escalado y las acciones programadas que haya definido. En el caso de los grupos en las que la preparación predeterminada de instancias esté activada, las instancias nuevas pasan por un período de preparación antes de empezar a contribuir a las métricas utilizadas para el escalado automático. Este período de preparación ayuda a estabilizar el grupo en la nueva capacidad. Para obtener más información, consulte Establecimiento de la preparación predeterminada de instancias para un grupo de escalado automático.

A veces, es posible que quiera deshabilitar temporalmente las políticas de escalado y las acciones programadas antes de escalar manualmente un grupo. De este modo, evita que surjan conflictos entre las acciones de escalado manual y las actividades de escalado automatizado. Para obtener más información, consulte Desactivación de las actividades de escalado.

Cambio de la capacidad deseada del grupo de escalado automático

Cuando cambia la capacidad del grupo de escalado automático, Amazon EC2 Auto Scaling administra el proceso de lanzar y terminar instancias para alcanzar el nuevo tamaño deseado.

Console
Para cambiar el tamaño del grupo de escalado automático
  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 muestra un panel dividido en la parte inferior de la página.

  3. En la pestañaDetails (Detalles) elija Group details (Detalles de grupo), Edit (Editar).

  4. En Capacidad deseada, aumente o disminuya la capacidad deseada. Por ejemplo, para aumentar el tamaño del grupo en uno, si el valor actual es 1, introduzca 2.

    Si su nuevo valor para la Capacidad deseada, es superior a la Capacidad deseada mínima y a la Capacidad deseada máxima, la Capacidad deseada máxima se incrementará automáticamente al nuevo valor de capacidad deseada.

  5. Elija Update (Actualizar) cuando haya terminado.

Compruebe que el tamaño del grupo que especificó haya provocado el lanzamiento de la misma cantidad de instancias. Por ejemplo, si ha aumentado el tamaño del grupo en uno, verifique que el grupo de escalado automático haya lanzado una instancia adicional.

Para verificar que el tamaño del grupo de escalado automático ha cambiado
  1. En la pestaña Actividad, en Historial de actividad, puede ver el progreso de las actividades que están asociadas al grupo de escalado automático. La columna Status (Estado) muestra el estado actual de su instancia. Mientras se está lanzando la instancia, la columna de estado muestra Not yet in service. El estado cambia a Successful cuando se lanza la instancia. También puede utilizar el icono de actualización para ver el estado actual de la instancia. Para obtener más información, consulte Verificación de una actividad de escalado para un grupo de escalado automático.

  2. En la pestaña Administración de instancia, en Instancias, puede ver el estado de la instancia. La instancia tarda poco tiempo en lanzarse.

    • La columna Lifecycle (Ciclo de vida) muestra el estado de su instancia. Al principio, la instancia tiene el estado Pending. Cuando una instancia está lista para recibir tráfico, su estado es InService.

    • La columna Estado muestra el resultado de la comprobación de estado de Amazon EC2 Auto Scaling correspondiente a su instancia.

AWS CLI

En el siguiente ejemplo se presupone que ha creado un grupo de escalado automático con un tamaño mínimo de 1 y un tamaño máximo de 5. Por lo tanto, el grupo tiene una sola instancia en ejecución.

Para cambiar el tamaño del grupo de escalado automático

Utilice el comando set-desired-capacity para cambiar el tamaño del grupo de escalado automático, tal y como se muestra en el ejemplo siguiente.

aws autoscaling set-desired-capacity --auto-scaling-group-name my-asg \ --desired-capacity 2

Si opta por respetar el periodo de recuperación predeterminado del grupo de escalado automático, debe especificar la opción –-honor-cooldown tal y como se muestra en el ejemplo siguiente. Para obtener más información, consulte Recuperaciones de escalado para Amazon EC2 Auto Scaling.

aws autoscaling set-desired-capacity --auto-scaling-group-name my-asg \ --desired-capacity 2 --honor-cooldown
Para verificar el tamaño del grupo de escalado automático

Utilice el comando describe-auto-scaling-groups para confirmar que el tamaño del grupo de escalado automático ha cambiado, como en el siguiente ejemplo.

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

A continuación, se muestra un resultado de ejemplo que muestra detalles sobre el grupo y las instancias lanzadas.

{ "AutoScalingGroups": [ { "AutoScalingGroupName": "my-asg", "AutoScalingGroupARN": "arn", "LaunchTemplate": { "LaunchTemplateName": "my-launch-template", "Version": "1", "LaunchTemplateId": "lt-050555ad16a3f9c7f" }, "MinSize": 1, "MaxSize": 5, "DesiredCapacity": 2, "DefaultCooldown": 300, "AvailabilityZones": [ "us-west-2a" ], "LoadBalancerNames": [], "TargetGroupARNs": [], "HealthCheckType": "EC2", "HealthCheckGracePeriod": 300, "Instances": [ { "ProtectedFromScaleIn": false, "AvailabilityZone": "us-west-2a", "LaunchTemplate": { "LaunchTemplateName": "my-launch-template", "Version": "1", "LaunchTemplateId": "lt-050555ad16a3f9c7f" }, "InstanceId": "i-05b4f7d5be44822a6", "InstanceType": "t3.micro", "HealthStatus": "Healthy", "LifecycleState": "Pending" }, { "ProtectedFromScaleIn": false, "AvailabilityZone": "us-west-2a", "LaunchTemplate": { "LaunchTemplateName": "my-launch-template", "Version": "1", "LaunchTemplateId": "lt-050555ad16a3f9c7f" }, "InstanceId": "i-0c20ac468fa3049e8", "InstanceType": "t3.micro", "HealthStatus": "Healthy", "LifecycleState": "InService" } ], "CreatedTime": "2019-03-18T23:30:42.611Z", "SuspendedProcesses": [], "VPCZoneIdentifier": "subnet-c87f2be0", "EnabledMetrics": [], "Tags": [], "TerminationPolicies": [ "Default" ], "NewInstancesProtectedFromScaleIn": false, "ServiceLinkedRoleARN": "arn", "TrafficSources": [] } ] }

Observe que DesiredCapacity muestra el nuevo valor. El grupo de escalado automático ha lanzado una instancia adicional.

Finalización de una instancia en su grupo de escalado automático (AWS CLI)

Hay ocasiones en las que es posible que desee reducir horizontalmente de modo manual su grupo de escalado automático, pero desee terminar una instancia específica. Puede reducir horizontalmente de modo manual su grupo de escalado automático mediante el comando terminate-instance-in-auto-scaling-group y especificando el ID de la instancia que desea terminar y la opción --should-decrement-desired-capacity, como se muestra en el siguiente ejemplo.

aws autoscaling terminate-instance-in-auto-scaling-group \ --instance-id i-026e4c9f62c3e448c --should-decrement-desired-capacity

A continuación, se muestra un resultado de ejemplo que muestra detalles sobre la actividad de escalado.

{ "Activities": [ { "ActivityId": "b8d62b03-10d8-9df4-7377-e464ab6bd0cb", "AutoScalingGroupName": "my-asg", "Description": "Terminating EC2 instance: i-026e4c9f62c3e448c", "Cause": "At 2023-09-23T06:39:59Z instance i-026e4c9f62c3e448c was taken out of service in response to a user request, shrinking the capacity from 1 to 0.", "StartTime": "2023-09-23T06:39:59.015000+00:00", "StatusCode": "InProgress", "Progress": 0, "Details": "{\"Subnet ID\":\"subnet-6194ea3b\",\"Availability Zone\":\"us-west-2c\"}" } ] }

Esta opción no está disponible en la consola. Sin embargo, puede utilizar la página Instancias de la consola de Amazon EC2 para finalizar una instancia de su grupo de escalado automático. Al hacerlo, Amazon EC2 Auto Scaling detecta que la instancia ya no se ejecuta y la reemplaza automáticamente como parte del proceso de comprobación de estado. Tras finalizar la instancia, transcurren uno o dos minutos antes de que se lance una nueva instancia. Para obtener más información sobre la terminación de una instancia, consulte Terminar una instancia en la Guía del usuario de Amazon EC2.

Si termina instancias en su grupo y eso provoca una distribución desigual entre las zonas de disponibilidad, Amazon EC2 Auto Scaling reequilibra el grupo para restablecer una distribución uniforme, a menos que suspenda el proceso de AZRebalance. Para obtener más información, consulte Suspensión y reanudación de procesos de Amazon EC2 Auto Scaling.