Exemplos para trabalhar com Elastic Load Balancing com a AWS CLI - Amazon EC2 Auto Scaling

Exemplos para trabalhar com Elastic Load Balancing com a AWS CLI

Use a AWS Command Line Interface (AWS CLI) para anexar, desvincular e descrever balanceadores de carga, adicionar e remover verificações de integridade do Elastic Load Balancing e alterar as zonas de disponibilidade que estão habilitadas.

Este tópico mostra exemplos de comandos da AWS CLI que executam tarefas comuns para o Amazon EC2 Auto Scaling.

Importante

Para obter exemplos de comandos adicionais, consulte aws elbv2 e aws elb na Referência de comandos AWS CLI.

Anexar seu grupo-alvo ou Classic Load Balancer

Use o seguinte comando create-auto-scaling-group para criar um grupo do Auto Scaling e anexar simultaneamente um grupo-alvo especificando seu nome do recurso da Amazon (ARN). O grupo de destino pode ser associado a um Application Load Balancer, um Network Load Balancer ou um balanceador de carga do Gateway.

Substitua os valores de amostra por,--auto-scaling-group-name,--vpc-zone-identifier --min-size e --max-size. Para a opção,--launch-template substitua my-launch-template e 1 pelo nome e versão de um modelo de execução para seu grupo do Auto Scaling. Para a opção,--traffic-sources substitua o ARN de amostra pelo ARN de um grupo de destino para um Application Load Balancer, Network Load Balancer ou 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" \ --min-size 1 --max-size 5 \ --traffic-sources "Identifier=arn:aws:elasticloadbalancing:region:account-id:targetgroup/my-targets/12345678EXAMPLE1"

Use o comando attach-traffic-sources para anexar outros grupos-alvo ao grupo do Auto Scaling após sua criação.

O comando a seguir adiciona outro grupo-alvo ao mesmo 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 anexar um Classic Load Balancer ao seu grupo, especifique as opções --traffic-sources e --type ao usar create-auto-scaling-group ou,attach-traffic-sources como no exemplo a seguir. Substitua my-classic-load-balancer pelo nome de um Classic Load Balancer. Para a opção,--type especifique um valor de elb.

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

Descreva seus grupos de destino ou Classic Load Balancers

Para descrever os balanceadores de carga ou os grupos de destino vinculados ao seu grupo do Auto Scaling, use o comando describe-traffic-sources a seguir. Substitua my-asg pelo nome do seu grupo.

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

O exemplo retorna o ARN dos grupos de destino do Elastic Load Balancing que você anexou ao grupo do Auto Scaling.

{ "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 ver uma explicação do campo State na saída, consulte Verificar o status do anexo de seu balanceador de carga.

Adicionar verificações de integridade do Elastic Load Balancing

Para adicionar verificações de integridade do Elastic Load Balancing que seu grupo do Auto Scaling executa nas instâncias, use o comando update-auto-scaling-group a seguir e especifique ELB como o valor para a opção--health-check-type. Substitua my-asg pelo nome do seu grupo.

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

As novas instâncias geralmente precisam de tempo para um breve aquecimento antes de passarem por uma verificação de integridade. Se o período de carência não proporcionar tempo de aquecimento suficiente, as instâncias poderão não parecer prontas para servir tráfego. O Amazon EC2 Auto Scaling pode considerar essas instâncias não íntegras e substituí-las.

Para atualizar o período de carência da verificação de integridade, use a opção --health-check-grace-period ao usar,update-auto-scaling-group como no exemplo a seguir. Substitua 300 pelo número de segundos para manter as novas instâncias em serviço antes de encerrá-las, caso não estejam íntegras.

--health-check-grace-period 300

Para obter mais informações, consulte Verificações de integridade para instâncias em um grupo do Auto Scaling.

Alterar suas zonas de disponibilidade

Alterar suas zonas de disponibilidade apresenta algumas limitações das quais é necessário estar ciente. Para obter mais informações, consulte Adicione uma Zona de disponibilidade.

Para alterar as zonas de disponibilidade de um Application Load Balancer ou Network Load Balancer
  1. Antes de alterar as zonas de disponibilidade do balanceador de carga, é uma boa ideia primeiro atualizar as zonas de disponibilidade do grupo do Auto Scaling para verificar se há disponibilidade para seus tipos de instância nas zonas especificadas.

    Para atualizar as zonas de disponibilidade para o seu grupo do Auto Scaling, use o comando update-auto-scaling-group a seguir. Substitua os IDs de sub-rede de amostra pelos IDs das sub-redes nas zonas de disponibilidade para habilitar. As sub-redes especificadas substituem as sub-redes habilitadas anteriormente. Substitua my-asg pelo nome do seu grupo.

    aws autoscaling update-auto-scaling-group --auto-scaling-group-name my-asg \ --vpc-zone-identifier "subnet-41767929,subnet-cb663da2,subnet-8360a9e7"
  2. Use o seguinte comando describe-auto-scaling-groups para verificar se as instâncias das novas sub-redes foram executadas. Se as instâncias tiverem sido iniciadas, você verá uma lista das instâncias e seus status. Substitua my-asg pelo nome do seu grupo.

    aws autoscaling describe-auto-scaling-groups --auto-scaling-group-name my-asg
  3. Use o comando set-subnets a seguir para especificar as sub-redes do seu balanceador de carga. Substitua os IDs de sub-rede de amostra pelos IDs das sub-redes nas zonas de disponibilidade para habilitar. É possível especificar somente uma sub-rede por Zona de disponibilidade. As sub-redes especificadas substituem as sub-redes habilitadas anteriormente. Substitua my-lb-arn pelo ARN do seu balanceador de carga.

    aws elbv2 set-subnets --load-balancer-arn my-lb-arn \ --subnets subnet-41767929 subnet-cb663da2 subnet-8360a9e7
Para alterar as zonas de disponibilidade de um Classic Load Balancer
  1. Antes de alterar as zonas de disponibilidade do balanceador de carga, é uma boa ideia primeiro atualizar as zonas de disponibilidade do grupo do Auto Scaling para verificar se há disponibilidade para seus tipos de instância nas zonas especificadas.

    Para atualizar as zonas de disponibilidade para o seu grupo do Auto Scaling, use o comando update-auto-scaling-group a seguir. Substitua os IDs de sub-rede de amostra pelos IDs das sub-redes nas zonas de disponibilidade para habilitar. As sub-redes especificadas substituem as sub-redes habilitadas anteriormente. Substitua my-asg pelo nome do seu grupo.

    aws autoscaling update-auto-scaling-group --auto-scaling-group-name my-asg \ --vpc-zone-identifier "subnet-41767929,subnet-cb663da2"
  2. Use o seguinte comando describe-auto-scaling-groups para verificar se as instâncias das novas sub-redes foram executadas. Se as instâncias tiverem sido iniciadas, você verá uma lista das instâncias e seus status. Substitua my-asg pelo nome do seu grupo.

    aws autoscaling describe-auto-scaling-groups --auto-scaling-group-name my-asg
  3. Use o comando attach-load-balancer-to-subnets a seguir para habilitar a nova zona de disponibilidade para seu Classic Load Balancer. Substitua o ID de sub-rede de amostra pelo ID da sub-rede para habilitar a zona de disponibilidade. Substitua my-lb pelo nome do seu balanceador de carga.

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

    Para desabilitar uma zona de disponibilidade, use o comando detach-load-balancer-from-subnets a seguir. Substitua o ID de sub-rede de amostra pelo ID da sub-rede para a zona de disponibilidade a ser desabilitada. Substitua my-lb pelo nome do seu balanceador de carga.

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

Desvincular seu grupo-alvo ou Classic Load Balancer

O comando detach-traffic-sources a seguir desvincula um grupo de destino do seu grupo do Auto Scaling quando ele não é mais necessário.

Para a opção,--auto-scaling-group-name substitua my-asg pelo nome do seu grupo. Para a opção,--traffic-sources substitua o ARN de amostra pelo ARN de um grupo de destino para um Application Load Balancer, Network Load Balancer ou balanceador de carga de gateway.

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 desvincular um Classic Load Balancer do seu grupo, especifique as opções --traffic-sources e,--type como no exemplo a seguir. Substitua my-classic-load-balancer pelo nome de um Classic Load Balancer. Para a opção,--type especifique um valor de elb.

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

Remover as verificações de integridade do Elastic Load Balancing

Para remover as verificações de integridade do Elastic Load Balancing de seu grupo do Auto Scaling, execute o comando update-auto-scaling-group a seguir e especifique EC2 como o valor para a opção --health-check-type. Substitua my-asg pelo nome do seu grupo.

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

Para obter mais informações, consulte Verificações de integridade para instâncias em um grupo do Auto Scaling.

Comandos legados

Os exemplos a seguir mostram como você pode usar comandos legados da CLI para anexar, desvincular e descrever balanceadores de carga e grupos de destino. Eles permanecem neste documento como referência para todos os clientes que desejam usá-los. Continuamos oferecendo suporte aos comandos antigos da CLI, mas recomendamos que você use os novos comandos “fontes de tráfego” da CLI, que podem anexar e desvincular vários tipos de fontes de tráfego. Você pode usar os comandos antigos da CLI e os comandos “fontes de tráfego” da CLI no mesmo grupo do Auto Scaling.

Para anexar um grupo de destino

O comando create-auto-scaling-group a seguir cria um grupo do Auto Scaling com um grupo de destino anexado. Especifique o nome do recurso da Amazon (ARN) de um grupo de destino para um Application Load Balancer, Network Load Balancer ou 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

O comando attach-load-balancer-target-groups a seguir anexa um grupo de destino a um grupo do 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 anexar seu Classic Load Balancer

O comando create-auto-scaling-group a seguir cria um grupo do Auto Scaling com um Classic Load Balancer anexado.

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

O comando attach-load-balancers a seguir anexa o Classic Load Balancer especificado a um grupo do Auto Scaling existente.

aws autoscaling attach-load-balancers --auto-scaling-group-name my-asg \ --load-balancer-names my-lb
Para descrever grupos de destino

Para descrever os grupos de destino associados a um grupo do Auto Scaling, use o comando describe-load-balancer-target-groups. O exemplo a seguir lista os grupos de destino para my-asg.

aws autoscaling describe-load-balancer-target-groups --auto-scaling-group-name my-asg
Descrever Classic Load Balancers

Para visualizar os Classic Load Balancers associados a um grupo do Auto Scaling, use o comando describe-load-balancers. O exemplo a seguir lista os balanceadores de carga clássicos para my-asg.

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

O comando detach-load-balancer-target-groups a seguir desvincula um grupo de destino do seu grupo do Auto Scaling quando ele não é mais necessário.

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"
Desvincular um Classic Load Balancer

Use o comando detach-load-balancers a seguir para desvincular um Classic Load Balancer do seu grupo do Auto Scaling se não precisar mais dele.

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