Ejemplos para utilizar Elastic Load Balancing con la AWS CLI - 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.

Ejemplos para utilizar Elastic Load Balancing con la AWS CLI

Use la AWS Command Line Interface (AWS CLI) para asociar, desasociar y describir los equilibradores de carga y los grupos de destino, agregar y eliminar comprobaciones de estado de Elastic Load Balancing, y cambiar las zonas de disponibilidad que estén habilitadas.

En este tema se muestran ejemplos de comandos de la AWS CLI que realizan tareas comunes para Amazon EC2 Auto Scaling.

importante

Para obtener más ejemplos de comandos, consulte aws elbv2 y aws elb en la Referencia de los comandos de AWS CLI.

Asociación de su grupo de destino o equilibrador de carga clásico

Utilice el siguiente comando create-auto-scaling-group para crear un grupo de escalado automático y asociar simultáneamente un grupo de destino especificando su nombre de recurso de Amazon (ARN). El grupo de destino puede asociarse con un equilibrador de carga de aplicación, un equilibrador de carga de red o un equilibrador de carga de puerta de enlace.

Sustituya los valores de muestra de --auto-scaling-group-name, --vpc-zone-identifier, --min-size y --max-size. Para la opción --launch-template, sustituya my-launch-template y 1 por el nombre y la versión de una plantilla de lanzamiento para su grupo de escalado automático. Para la opción --traffic-sources, sustituya el ARN de muestra por el ARN de un grupo de destino para un equilibrador de carga de aplicación, un equilibrador de carga de red o un equilibrador de carga de puerta de enlace.

aws autoscaling create-auto-scaling-group --auto-scaling-group-name my-asg \ --launch-template LaunchTemplateName=my-launch-template,Version='1' \ --vpc-zone-identifier "subnet-5ea0c127,subnet-6194ea3b,subnet-c934b782" \ --min-size 1 --max-size 5 \ --traffic-sources "Identifier=arn:aws:elasticloadbalancing:region:account-id:targetgroup/my-targets/12345678EXAMPLE1"

Use el comando attach-traffic-sources para asociar grupos de destino adicionales al grupo de escalado automático una vez creado.

El siguiente comando agrega otro grupo de destino al mismo grupo.

aws autoscaling attach-traffic-sources --auto-scaling-group-name my-asg \ --traffic-sources "Identifier=arn:aws:elasticloadbalancing:region:account-id:targetgroup/my-targets/12345678EXAMPLE2"

Como alternativa, para asociar un equilibrador de carga clásico a su grupo, especifique las opciones --traffic-sources y --type cuando utilice create-auto-scaling-group o attach-traffic-sources, como en el siguiente ejemplo. Reemplace my-classic-load-balancer por el nombre de un equilibrador de carga clásico. Para la opción --type, especifique un valor de elb.

--traffic-sources "Identifier=my-classic-load-balancer" --type elb

Descripción de sus grupos de destino o equilibradores de carga clásicos

Para describir los equilibradores de carga o los grupos de destino asociados a su grupo de escalado automático, use el siguiente comando describe-traffic-sources. Reemplace my-asg por el nombre de su grupo.

aws autoscaling describe-traffic-sources --auto-scaling-group-name my-asg

El ejemplo devuelve el ARN de los grupos de destino de Elastic Load Balancing que asoció al grupo de escalado automático.

{ "TrafficSources": [ { "Identifier": "arn:aws:elasticloadbalancing:region:account-id:targetgroup/my-targets/12345678EXAMPLE1", "State": "InService", "Type": "elbv2" }, { "Identifier": "arn:aws:elasticloadbalancing:region:account-id:targetgroup/my-targets/12345678EXAMPLE2", "State": "InService", "Type": "elbv2" } ] }

Para obtener una explicación del campo State, consulte Verificación del estado de asociación del equilibrador de carga.

Adición de comprobaciones de estado de Elastic Load Balancing

Para agregar comprobaciones de estado de Elastic Load Balancing a las comprobaciones de estado que su grupo de escalado automático realiza en las instancias, use el siguiente comando update-auto-scaling-group y especifique ELB como el valor de la opción --health-check-type. Reemplace my-asg por el nombre de su grupo.

aws autoscaling update-auto-scaling-group --auto-scaling-group-name my-asg \ --health-check-type "ELB"

Las instancias nuevas a menudo necesitan tiempo para una breve preparación antes de que puedan pasar una comprobación de estado. Si el período de gracia no proporciona suficiente tiempo de preparación, es posible que las instancias no aparezcan listas para servir tráfico. Amazon EC2 Auto Scaling podría considerar que esas instancias no están en buen estado y reemplazarlas.

Para actualizar el período de gracia de la comprobación de estado, utilice la opción --health-check-grace-period cuando use update-auto-scaling-group, como en el siguiente ejemplo. Reemplace 300 por el número de segundos para mantener las nuevas instancias en servicio antes de finalizarlas si se descubre que no están en buen estado.

--health-check-grace-period 300

Para obtener más información, consulte Comprobaciones de estado para instancias en un grupo de escalado automático.

Cambio de sus zonas de disponibilidad

Cambiar las zonas de disponibilidad tiene algunas limitaciones que debe conocer. Para obtener más información, consulte Agregar una zona de disponibilidad.

Cambio de las zonas de disponibilidad de un equilibrador de carga de aplicación o un equilibrador de carga de red
  1. Antes de cambiar las zonas de disponibilidad del equilibrador de cargas, se recomienda actualizar primero las zonas de disponibilidad del grupo de escalado automático para comprobar que hay disponibilidad para los tipos de instancia en las zonas especificadas.

    Para actualizar las zonas de disponibilidad de su grupo de escalado automático, utilice el siguiente comando update-auto-scaling-group. Sustituya los ID de las subredes de muestra por los ID de las subredes de las zonas de disponibilidad para habilitarlas. Las subredes especificadas sustituyen a las subredes habilitadas anteriormente. Reemplace my-asg por el nombre de su grupo.

    aws autoscaling update-auto-scaling-group --auto-scaling-group-name my-asg \ --vpc-zone-identifier "subnet-41767929,subnet-cb663da2,subnet-8360a9e7"
  2. Utilice el siguiente comando describe-auto-scaling-groups para verificar que se hayan lanzado las instancias en las nuevas subredes. Si las instancias se han lanzado, verá una lista de las instancias y sus estados. Reemplace my-asg por el nombre de su grupo.

    aws autoscaling describe-auto-scaling-groups --auto-scaling-group-name my-asg
  3. Use el siguiente comando set-subnets para especificar las subredes de su equilibrador de carga. Sustituya los ID de las subredes de muestra por los ID de las subredes de las zonas de disponibilidad para habilitarlas. Puede especificar solo una subred por zona de disponibilidad. Las subredes especificadas sustituyen a las subredes habilitadas anteriormente. Reemplace my-lb-arn por el ARN de su equilibrador de carga.

    aws elbv2 set-subnets --load-balancer-arn my-lb-arn \ --subnets subnet-41767929 subnet-cb663da2 subnet-8360a9e7
Cambio de las zonas de disponibilidad de un equilibrador de carga clásico
  1. Antes de cambiar las zonas de disponibilidad del equilibrador de cargas, se recomienda actualizar primero las zonas de disponibilidad del grupo de escalado automático para comprobar que hay disponibilidad para los tipos de instancia en las zonas especificadas.

    Para actualizar las zonas de disponibilidad de su grupo de escalado automático, utilice el siguiente comando update-auto-scaling-group. Sustituya los ID de las subredes de muestra por los ID de las subredes de las zonas de disponibilidad para habilitarlas. Las subredes especificadas sustituyen a las subredes habilitadas anteriormente. Reemplace my-asg por el nombre de su grupo.

    aws autoscaling update-auto-scaling-group --auto-scaling-group-name my-asg \ --vpc-zone-identifier "subnet-41767929,subnet-cb663da2"
  2. Utilice el siguiente comando describe-auto-scaling-groups para verificar que se hayan lanzado las instancias en las nuevas subredes. Si las instancias se han lanzado, verá una lista de las instancias y sus estados. Reemplace my-asg por el nombre de su grupo.

    aws autoscaling describe-auto-scaling-groups --auto-scaling-group-name my-asg
  3. Utilice el siguiente comando attach-load-balancer-to-subnets para habilitar una nueva zona de disponibilidad para su equilibrador de carga clásico. Sustituya el ID de la subred de muestra por el ID de la subred de las zonas de disponibilidad para habilitarlas. Sustituya my-lb por el nombre de su equilibrador de carga.

    aws elb attach-load-balancer-to-subnets --load-balancer-name my-lb \ --subnets subnet-cb663da2

    Para deshabilitar una zona de disponibilidad, utilice el siguiente comando detach-load-balancer-from-subnets. Sustituya el ID de la subred de muestra por el ID de la subred de las zonas de disponibilidad para deshabilitarlas. Sustituya my-lb por el nombre de su equilibrador de carga.

    aws elb detach-load-balancer-from-subnets --load-balancer-name my-lb \ --subnets subnet-8360a9e7

Desasociación de su grupo de destino o equilibrador de carga clásico

El siguiente comando detach-traffic-sources desasocia un grupo de destino de su grupo de escalado automático si ya no lo necesita.

Para la opción --auto-scaling-group-name, reemplace my-asg por el nombre de su grupo. Para la opción --traffic-sources, sustituya el ARN de muestra por el ARN de un grupo de destino para un equilibrador de carga de aplicación, un equilibrador de carga de red o un equilibrador de carga de puerta de enlace.

aws autoscaling detach-traffic-sources --auto-scaling-group-name my-asg \ --traffic-sources "Identifier=arn:aws:elasticloadbalancing:region:account-id:targetgroup/my-targets/1234567890123456"

Para separar un equilibrador de carga clásico de su grupo, especifique las opciones --traffic-sources y --type, como en el siguiente ejemplo. Reemplace my-classic-load-balancer por el nombre de un equilibrador de carga clásico. Para la opción --type, especifique un valor de elb.

--traffic-sources "Identifier=my-classic-load-balancer" --type elb

Eliminación de las comprobaciones de estado Elastic Load Balancing

Para eliminar las comprobaciones de estado de Elastic Load Balancing de su grupo de escalado automático, use el siguiente comando update-auto-scaling-group y especifique EC2 como el valor de la opción --health-check-type. Reemplace my-asg por el nombre de su grupo.

aws autoscaling update-auto-scaling-group --auto-scaling-group-name my-asg \ --health-check-type "EC2"

Para obtener más información, consulte Comprobaciones de estado para instancias en un grupo de escalado automático.

Comandos heredados

Los siguientes ejemplos muestran cómo usar comandos de CLI heredados para asociar, desasociar y describir equilibradores de carga y grupos de destino. Permanecen en este documento como referencia para cualquier cliente que quiera usarlos. Seguimos admitiendo los comandos CLI antiguos, pero le recomendamos que utilice los nuevos comandos CLI “fuentes de tráfico”, que pueden asociar y desasociar varios tipos de fuentes de tráfico. Puede usar los comandos CLI heredados y los comandos CLI “fuentes de tráfico” en el mismo grupo de escalado automático.

Asociación de su grupo de destino

El siguiente comando create-auto-scaling-group crea un grupo de Auto Scaling con un grupo de destino asociado. Especifique el Nombre de recurso de Amazon (ARN) de un grupo de destino para un Application Load Balancer, un Network Load Balancer o un balanceador de carga de gateway.

aws autoscaling create-auto-scaling-group --auto-scaling-group-name my-asg \ --launch-template LaunchTemplateName=my-launch-template,Version='1' \ --vpc-zone-identifier "subnet-5ea0c127,subnet-6194ea3b,subnet-c934b782" \ --target-group-arns "arn:aws:elasticloadbalancing:region:account-id:targetgroup/my-targets/1234567890123456" \ --min-size 1 --max-size 5

El siguiente comando attach-load-balancer-target-groups asocia un grupo de destino a un grupo de Auto Scaling existente.

aws autoscaling attach-load-balancer-target-groups --auto-scaling-group-name my-asg \ --target-group-arns "arn:aws:elasticloadbalancing:region:account-id:targetgroup/my-targets/1234567890123456"
Asociación de su equilibrador de carga clásico

El siguiente comando create-auto-scaling-group crea un grupo de Auto Scaling con un Classic Load Balancer.

aws autoscaling create-auto-scaling-group --auto-scaling-group-name my-asg \ --launch-configuration-name my-launch-config \ --vpc-zone-identifier "subnet-5ea0c127,subnet-6194ea3b,subnet-c934b782" \ --load-balancer-names "my-load-balancer" \ --min-size 1 --max-size 5

El siguiente comando attach-load-balancers asocia el Classic Load Balancer especificado a un grupo de Auto Scaling existente.

aws autoscaling attach-load-balancers --auto-scaling-group-name my-asg \ --load-balancer-names my-lb
Descripción de grupos de destino

Para describir los grupos de destino asociados a un grupo de escalado automático, utilice el comando describe-load-balancer-target-groups. En el siguiente ejemplo se enumeran los grupos de destino de my-asg.

aws autoscaling describe-load-balancer-target-groups --auto-scaling-group-name my-asg
Descripción de los equilibradores de carga clásicos

Para ver los equilibradores de carga clásicos asociados a un grupo de escalado automático, utilice el comando describe-load-balancers. En el ejemplo siguiente se enumeran los balanceadores de carga clásicos de my-asg.

aws autoscaling describe-load-balancers --auto-scaling-group-name my-asg
Para desasociar un grupo de destino

El siguiente comando detach-load-balancer-target-groups desconecta un grupo de destino del grupo de Auto Scaling si ya no lo necesita.

aws autoscaling detach-load-balancer-target-groups --auto-scaling-group-name my-asg \ --target-group-arns "arn:aws:elasticloadbalancing:region:account-id:targetgroup/my-targets/1234567890123456"
Desasociación de un equilibrador de carga clásico

El siguiente comando detach-load-balancers desconecta un Classic Load Balancer del grupo de Auto Scaling cuando ya no lo necesite.

aws autoscaling detach-load-balancers --auto-scaling-group-name my-asg \ --load-balancer-names my-lb