Ejemplos para trabajar con Elastic Load Balancing con AWS Command Line Interface (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 trabajar con Elastic Load Balancing con AWS Command Line Interface (AWS CLI)

Úselo AWS CLI para adjuntar, separar y describir los balanceadores de carga y los grupos objetivo, 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 AWS CLI comandos 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 .

Asociar su grupo de destino o equilibrador de carga clásico

Utilice el siguiente create-auto-scaling-groupcomando para crear un grupo de Auto Scaling y adjuntar 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 attach-traffic-sourcescomando para adjuntar grupos de destino adicionales al grupo Auto Scaling 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

Describir sus grupos de destino o equilibradores de carga clásicos

Para describir los balanceadores de carga o los grupos objetivo adjuntos a su grupo de Auto Scaling, utilice el siguiente describe-traffic-sourcescomando. 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 Verifique el estado de asociación del equilibrador de carga.

Adición de comprobaciones de estado de Elastic Load Balancing

Para añadir las comprobaciones de estado de Elastic Load Balancing a las comprobaciones de estado que su grupo de Auto Scaling realiza en las instancias, utilice el siguiente update-auto-scaling-groupcomando y especifique ELB el valor de la --health-check-type opción. 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 nuevas instancias suelen necesitar tiempo para un breve calentamiento antes de poder pasar una comprobación de estado. Si el período de gracia no proporciona suficiente tiempo de calentamiento, es posible que las instancias no parezcan estar listas para atender el 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-periodcuando 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.

Cambiar sus zonas de disponibilidad

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

Para cambiar 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 Auto Scaling, utilice el siguiente update-auto-scaling-groupcomando. 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. Use el siguiente describe-auto-scaling-groupscomando para verificar que las instancias de las nuevas subredes se hayan lanzado. 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. Usa 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
Para cambiar 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 Auto Scaling, utilice el siguiente update-auto-scaling-groupcomando. 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. Use el siguiente describe-auto-scaling-groupscomando para verificar que las instancias de las nuevas subredes se hayan lanzado. 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. Usa el siguiente comando attach-load-balancer-to-subnets para habilitar una nueva zona de disponibilidad para tu Classic Load Balancer. 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, usa el siguiente detach-load-balancer-from comando -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

Desasociar su grupo de destino o equilibrador de carga clásico

El siguiente detach-traffic-sourcescomando separa un grupo objetivo de su grupo de Auto Scaling cuando 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

Eliminar las comprobaciones de estado Elastic Load Balancing

Para eliminar las comprobaciones de estado de Elastic Load Balancing del grupo de Auto Scaling, utilice el siguiente update-auto-scaling-groupcomando y especifique EC2 el valor de la --health-check-type opción. 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.

Para asociar su grupo de destino

El siguiente create-auto-scaling-groupcomando crea un grupo de Auto Scaling con un grupo objetivo adjunto. 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 objetivo 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"
Para asociar su equilibrador de carga clásico

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

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 attach-load-balancerscomando adjunta 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
Para describir grupos de destino

Para describir los grupos objetivo asociados a un grupo de Auto Scaling, 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
Para describir los equilibradores de carga clásicos

Para describir los balanceadores de carga clásicos asociados a un grupo de Auto Scaling, usa el describe-load-balancerscomando. 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 separa un grupo objetivo del grupo de Auto Scaling cuando 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"
Para desasociar un equilibrador de carga clásico

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

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