Configurando um Elastic Load Balancer
Estava assistindo algumas aulas sobre AWS e fazendo alguns testes e resolvi compartilhar aqui o resultado obtido com ELB (Elastic Load Balancer).
O que é Elastic Load Balancer?
Segundo a própria AWS, o Elastic Load Balancing (ELB) distribui automaticamente o tráfego de aplicações de entrada entre vários destinos e dispositivos virtuais em uma ou mais Zonas de disponibilidade (AZs).
Estrutura e configuração.
Primeiro, iniciei duas instâncias Linux (Amazon Linux), com uma imagem qualificada para o nível gratuito. Coloquei um script para que, no momento em que a instância inicie, seja instalado o servidor web (httpd).
Como podemos ver, os dois servidores web estão em execução com uma configuração básica.
Criando o Load Balancer.
Para criar o Load Balancer utilizei a opção Application Load Balancer, que é justamente a opção para balanceamento para aplicativos com tráfego HTTP e HTTPS.
Durante a criação do ELB é necessário criar um Target Group. O Target Group que é configurado nesta etapa é usado como grupo de destino na regra do ouvinte quando você configura seu balanceador de carga. Como segue abaixo, foi configurado no Target Group os meus dois servidores web.
Após configurar o Target Group, eu volto para a configuração do Load Balancer e seleciono no campo de grupo destino o Target que eu acabei de criar... após isso, eu posso concluir a configuração do Load Balancer. Abaixo, o Load Balancer sendo provisionado.
Recomendados pelo LinkedIn
Acessando o Target Group que eu acabei de criar, é possível ver mais informações, como o total de targets e o Load Balancer que está utilizando esse target.
Nessa configuração que eu estou fazendo, o acesso ao servidores web via Load Balancer é feita pelo DNS Name abaixo, nesse caso ELB01-946495539.us-east-1.elb.amazonaws.com
Conforme segue abaixo, com o mesmo DNS Name eu acesso os dois servidores web, isso indica que cada requisição feita pelo navegador está sendo encaminhado para um servidor web diferente (nesse caso tenho apenas dois servidores web).
Health Check.
O Health Check é uma verificação de integridade do meu Target. Em um print postado um pouco acima, o Health estava marcado com 2 e se encontrava "verde", isso indica que as duas instâncias presentes nesse target estavam funcionando corretamente.
Após isso, eu acessei uma instância Linux e parei o serviço do Servidor Web (httpd). Logo após isso, o campo Unhealthy ficou "vermelho" e com número 1, indicando que uma instância estava com alguma falha no serviço.
Iniciei novamente o serviço do httpd, e após alguns minutos o Health voltou a ficar com a indicação "verde" e marcado 2, indicando que as duas instâncias neste Target estavam funcionando corretamente.
Essa foi uma demonstração BEM básica do funcionamento do Load Balancer.
Att.