Balanceamento de carga com o Elastic Load Balancing

Balanceamento de carga com o Elastic Load Balancing

Nós já sabemos como criar instâncias no Amazon EC2 e como configurar o Auto Scaling Group para termos escalabilidade em uma aplicação. Agora, é hora de aprofundarmos um pouco mais do recurso de balanceamento de carga da AWS: o Elastic Load Balancing (ELB).

Um balanceador de carga é uma ferramenta muito importante quando necessitamos de distribuir o tráfego de entrada de uma aplicação. Imagine que você está rodando 3 web servers com a mesma aplicação. No entanto, somente um deles está recebendo o tráfego dos seus clientes e, como resultado, o servidor está sobrecarregado. Uma das formas de contornar isso é utilizando um balanceador de carga, que vai distribuir o tráfego da sua aplicação para os web servers.

Além disso, o AWS Elastic Load Balancing monitora a integridade dos destinos e roteia o tráfego apenas para os destinos íntegros, ou seja, se uma instância EC2 está inoperante ou "caiu", ele vai rotear o tráfego para instâncias "saudáveis". Você pode distribuir o tráfego entre diferentes Zonas de Disponibilidade, por exemplo, contribuindo para a alta disponibilidade e tolerância a falhas da sua aplicação.

Para esse tutorial, precisamos ter o Auto Scaling Group (ASG) já criado. Então, se você ainda não criou o seu, volta lá no tutorial do ASG.

Passo a passo

Criando um Target Group

1) Acesse a console AWS, vá em EC2 -> Balanceamento de carga -> Grupos de destino -> e clique em "Criar grupo de destino"

A configuração básica do Target group terá as seguintes opções:

  • Tipo de destino: instâncias
  • Nome do grupo: o nome que você preferir
  • Protocolo: HTTP
  • Porta: 80
  • Tipo de endereço: IPv4
  • Versão do protocolo: HTTP 1

Vá até o final da página e clique em "Próximo". Em "Registrar destinos", selecione as instâncias disponíveis (criadas pelo Auto Scaling)

E clique em "Incluir como pendente abaixo":

Em seguida, clique em "Criar grupo de destino".

2) Criando o Load Balancer

Agora acesse a opção de Load balancers e clique em "Criar load balancer"

Em Tipos de load balancer, vamos selecionar o Application Load Balancer (ALB)

Na Configuração básica do ALB, defina um nome para o load balancer e mantenha as configurações já existentes.

Na opção, Mapeamento de rede, marque todas as Zonas de Disponibilidade:

Em Grupos de segurança, selecione o mesmo grupo criado para o modelo de execução (template) no tutorial do Auto Scaling:

Mais abaixo, em Listeners e roteamento, selecione o Target group criado anteriormente:

Desça até ao final da página e clique em "Criar load balancer". Pronto!

Você verá uma página informando que o ABL foi criado com sucesso. Nessa página, copie o DNS.

Aguarde alguns minutos até que o status do Loab Balancer esteja como... Então, cole o DNS em uma aba do seu navegador:

Se você for atualizando a página, vai perceber que o IP do servidor altera. Ou seja, que o tráfego está sendo balanceado entre as instâncias disponíveis. Legal, não é?

(Lembram do script que usamos lá no tutorial de Auto Scaling? Nos serviu para visualizar esse balanceamento).

Ah, não se esqueça de limpar seu ambiente: excluir o ALB, remover o Target Group, e excluir o Auto Scaling Group.

Bons estudos!

Documentação