AWS - Configurando o Network Load Balancer.
Published: 2023-06-27 19:21:24

O Network Load Balancer (NLB) é um componente utilizado em redes de computadores para distribuir de forma eficiente e equilibrada o tráfego de rede entre vários servidores ou recursos de computação. Ele faz parte de um conceito mais amplo conhecido como balanceamento de carga, que visa otimizar o desempenho e a disponibilidade de aplicativos e serviços distribuídos em uma infraestrutura.

O Network Load Balancer opera no nível do protocolo de camada 4 (camada de transporte) do modelo OSI, geralmente utilizando o Protocolo de Controle de Transmissão (TCP) ou o Protocolo de Datagrama de Usuário (UDP). Ele recebe as solicitações de clientes externos e as distribui entre um grupo de servidores de destino de maneira inteligente.

![Image description](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/gfy2ilgd55kgu4xrh9uz.png)

Existem diferentes algoritmos de balanceamento de carga que um NLB pode usar para decidir como encaminhar as solicitações de entrada. Alguns dos algoritmos comuns incluem round-robin (circular), least connection (menor número de conexões), IP hash (hash de endereço IP) e weighted (ponderado).

Os Network Load Balancers geralmente oferecem recursos como monitoramento da integridade dos servidores de destino, permitindo que eles detectem servidores indisponíveis ou com falhas e os removam temporariamente da rota de tráfego. Além disso, eles podem fornecer recursos de escalabilidade automática, permitindo que novos servidores sejam adicionados ou removidos dinamicamente, de acordo com a carga de tráfego.

Em resumo, um Network Load Balancer é um componente crucial para garantir o desempenho, a disponibilidade e a escalabilidade de aplicativos e serviços distribuídos, ao distribuir de forma 
inteligente o tráfego de rede entre vários servidores.

Agora que já sabe o que é o NLB, vamos a configuração.

Requisitos:
- Criar uma conta da AWS e acesso ao console da Web da AWS.
- Criar 2 instâncias EC2 web em execução com o Apache.
- Configuração de VPC e sub-redes (públicas e privadas).

Criado 2 instâncias do EC2 e em User data foi adicionado o script abaixo:

![Image description](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/fm0viuti522rcppqolsm.png)

Testando a aplicação copiando o endereço público das instâncias do EC2.


![Image description](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/u4wf6nyttuael2kpapix.png)


Bom… vamos criar apenas uma URL para acessar essas duas instâncias do EC2, equilibrando a carga entre elas usando o ELB e escolhendo o Network Load Balancer para configuração.

Requisitos:
- Criar um target groups add as instâncias do EC2. Ficar atento ao selecinar a VPC que estão as instâncias.
- O objetivo é associar TG no Network Load Balancer durante a configuração.

![Image description](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/l0ttwbodfqcvqn0friyj.png)

A configuração do NLB ficou da seguinte forma:

![Image description](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/6iunbr81r08ud3ubb1pc.png)

Após a criação do NLB, vamos copiar o DNS name e testar.

![Image description](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/s54n3sqlc6w91waowdlc.png)


Deu ruim neh?! tem algum problema ai, vamos verificar! Em target groups as instâncias do EC2 estão com o status unhealthy, então o que está acontecendo? Bom, quando se usa o NLB não se define um security group para ele, isso significa que todo o tráfego passa pelo equilibrador de carga da rede e vai direto para as instâncias do EC2. E este é o grupo de segurança das instâncias do EC2 que vai decidir se o tráfego é ou não permitido.

![Image description](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/i9dw1eiq6hou42pv7rg0.png)

Então vamos adicionar uma regra para corrigir isso temporariamente enquanto ainda temos um equilibrador de carga de rede para permitir HTTP na porta 80 de qualquer lugar.

![Image description](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/1e45cj6s6awv23uze23x.png)

Agora vai!!! Vamos testar!!!

![Image description](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/udlpdd8i6ijq9slg09n3.png)

Missão cumprida!!! 🔥🔥🔥🔥

Espero que você tenha gostado deste post e tenha aprendido algo novo🆙
Qualquer feedback será bem-vindo, é só deixar nos comentários.😀
Curta, compartilhe, siga-me em:
✅ https://linktr.ee/andreelidio