Application Load Balancers funcionam bem para tráfego HTTP/HTTPS, mas quando você precisa lidar com TCP/UDP bruto com alto throughput e latência mínima, o Network Load Balancer é a escolha certa. Ele opera na Camada 4 e roteia conexões diretamente para IPs de destino sem inspecionar cabeçalhos HTTP.
TL;DR: Configure um AWS Network Load Balancer (NLB) e roteie tráfego TCP para containers ECS via um grupo de destino com alvos por endereço IP.
Stack: AWS NLB, ECS, Target Groups, VPC
Nível: Intermediário
Tempo de leitura: ~6 min
Um NLB opera no nível de conexão (Camada 4), o que significa que lida com TCP e UDP brutos sem olhar o que está dentro dos pacotes. Isso o torna mais rápido e de menor latência que um ALB, que lê cabeçalhos HTTP antes de rotear. Pense nele como um guarda de trânsito que desvia carros pela placa sem ler o rosto do motorista.
Passos
- Criar o NLB: Em EC2, vá para Load Balancers e crie um com tipo “Network Load Balancer.” Selecione sua VPC e zonas de disponibilidade.
- Criar um Target Group: Escolha “IP addresses” como tipo de alvo, selecione o protocolo/porta correspondente ao seu container e adicione sua VPC. É assim que o NLB sabe qual porta do container enviar o tráfego.
- Adicionar um Listener: Abra o NLB, vá em Listeners e clique em Add Listener. Selecione o protocolo/porta e aponte para o target group que você criou.
- Associar ao Serviço ECS: Ao criar ou atualizar o serviço ECS, em Load Balancing, selecione o listener e o target group do NLB. O ECS registrará os IPs dos containers automaticamente quando as tasks iniciarem.
O que você construiu
Um NLB com listener, um target group apontando para os IPs dos containers ECS e o serviço ECS associado. O tráfego chega na porta do listener e é roteado para instâncias de container saudáveis.
Próximos passos
- Habilite o balanceamento de carga entre zonas no NLB para distribuir o tráfego uniformemente entre containers em todas as zonas de disponibilidade.
- Configure health checks no target group para que o NLB envie tráfego apenas para instâncias de container saudáveis.
- Para terminação TLS no load balancer, adicione um listener TLS com um certificado ACM em vez de lidar com TLS dentro do container.
Dúvidas ou feedback? Me encontre no LinkedIn ou GitHub.