AWS Network Load Balancers com Tecnicas de Modificacao de Headers
AWS Network Load Balancers (NLBs) sao uma ferramenta poderosa para distribuir o trafego de entrada de aplicacao entre varios destinos...

Os AWS Network Load Balancers (NLBs) sao uma ferramenta poderosa para distribuir o trafego de entrada de aplicacoes entre varios destinos, como instancias Amazon EC2, em uma ou varias Availability Zones. Eles oferecem alto throughput, baixa latencia e sao projetados para lidar com milhoes de requisicoes por segundo mantendo latencias ultra-baixas. No entanto, uma limitacao dos NLBs e a incapacidade de modificar headers HTTP diretamente. Este artigo explora varias tecnicas para contornar essa limitacao, fornecendo exemplos completos para ajudar voce a implementar essas solucoes no seu proprio ambiente AWS.
Introducao aos AWS Network Load Balancers
Os AWS Network Load Balancers operam no nivel de conexao (Camada 4), roteando conexoes para destinos com base em dados de protocolo IP. Os NLBs sao ideais para aplicacoes que exigem desempenho extremo e baixa latencia, tornando-os adequados para aplicacoes em tempo real como jogos, transacoes financeiras ou streaming de video.
Funcionalidades Principais dos NLBs:
- IP Estatico: Cada NLB recebe um IP estatico por Availability Zone (AZ) em que opera.
- Elastic IP: Voce pode associar um ou mais enderecos Elastic IP ao seu NLB.
- Terminacao TLS: Os NLBs podem fazer offload da terminacao TLS para minimizar a carga de CPU nos seus servidores de aplicacao.
- Cross-Zone Load Balancing: Distribui o trafego uniformemente entre todos os destinos em todas as AZs habilitadas.
- Monitoramento de Saude dos Destinos: Verifica automaticamente a saude dos destinos e roteia trafego apenas para destinos saudaveis.
Necessidades de Modificacao de Headers
Modificar headers HTTP e frequentemente essencial para uma variedade de casos de uso, como:
- Adicionar headers de seguranca (ex.: Content-Security-Policy).
- Injetar headers personalizados para logging ou rastreamento.
- Modificar headers User-Agent para processamento no backend.
- Implementar politicas de seguranca baseadas em headers.
Dada a operacao na Camada 4 dos NLBs, a modificacao direta de headers nao e viavel. No entanto, podemos alcancar isso usando AWS Lambda, Amazon API Gateway e Application Load Balancers (ALBs).
Solucao 1: Usando AWS Lambda e Amazon API Gateway
Passo 1: Criar uma Funcao AWS Lambda
Primeiro, crie uma funcao Lambda que modificara os headers das requisicoes de entrada.
- Va para o console AWS Lambda.
- Crie uma nova funcao Lambda:
- Escolha "Author from scratch".
- Insira um nome para a funcao (ex.:
ModifyHeadersFunction). - Escolha um runtime (ex.: Python 3.8).
- Crie uma role de execucao com permissoes basicas do Lambda.
- Escreva o codigo da funcao Lambda:
def lambda_handler(event, context):
# Log do evento recebido
print("Received event: " + json.dumps(event, indent=2))
# Modificar os headers
event['headers']['X-Custom-Header'] = 'CustomHeaderValue'
return {
'statusCode': 200,
'headers': {
'Content-Type': 'application/json'
},
'body': json.dumps({
'message': 'Header modificado com sucesso',
'input': event
})
}</code></pre>
- Implante a funcao.
Passo 2: Criar um Amazon API Gateway
Em seguida, crie um API Gateway que roteara as requisicoes para a funcao Lambda.
- Va para o console Amazon API Gateway.
- Crie uma nova API:
- Escolha "HTTP API".
- Configure uma nova API.
- Integre a API com a funcao Lambda:
- Adicione uma integracao selecionando a funcao Lambda criada anteriormente.
- Configure rotas e metodos (ex.: POST /modify).
- Implante a API e anote a URL do endpoint.
Passo 3: Aponte o NLB para o API Gateway
Por fim, defina a URL do API Gateway como destino do seu NLB.
- Va para o console EC2.
- Navegue ate Load Balancers e selecione seu NLB.
- Configure um target group para apontar para o endpoint do API Gateway.
Esta configuracao roteia todo o trafego atraves do API Gateway, onde a funcao Lambda modifica os headers antes de encaminhar as requisicoes para seus servicos de backend.
Solucao 2: Usando AWS WAF
O AWS WAF pode ser usado para inspecionar e modificar requisicoes antes que elas cheguem aos seus servicos de backend, embora este metodo seja mais sobre filtragem do que modificacao direta de headers.
- Crie uma Web ACL no AWS WAF.
- Defina regras para inspecionar headers e tomar acoes (ex.: bloquear, permitir ou contar requisicoes).
- Associe a Web ACL ao seu NLB.
Exemplo de Regra:
IF request.headers['User-Agent'] matches 'bad-bot'
THEN block request
Esta configuracao ajuda a filtrar requisicoes maliciosas ou modificar requisicoes com base em certas condicoes.
Resumo
Embora os AWS Network Load Balancers oferecam desempenho e escalabilidade robustos, sua natureza de Camada 4 limita a modificacao direta de headers. No entanto, ao aproveitar o AWS Lambda com Amazon API Gateway ou AWS WAF, voce pode alcancar a funcionalidade de modificacao de headers desejada.
Cada solucao tem seus proprios pontos fortes e e adequada para diferentes casos de uso:
- AWS Lambda e API Gateway: Melhor para manipulacoes especificas e complexas de headers.
- AWS WAF: Ideal para aplicacoes focadas em seguranca que precisam de inspecao e filtragem.
Ao entender essas tecnicas e suas implementacoes, voce pode gerenciar e modificar headers HTTP de forma eficaz no seu ambiente AWS, garantindo que suas aplicacoes permanecam seguras, eficientes e altamente disponiveis.
Se voce tiver alguma duvida ou precisar de ajuda adicional com a implementacao dessas solucoes, fique a vontade para entrar em contato comigo! Boas construcoes na AWS!
Mais de Ercan
Mais dois sites, mesmo autor, terreno diferente.
IA, LLMs, agentes, ML aplicado.
Notas de campo sobre cargas de IA. Análise de custos do Bedrock, padrões de agentes, trade-offs de armazenamento vetorial, modos de falha em produção.
Visitar ercan.ai →O hub. Sobre, consultoria, contato.
Hub pessoal para as duas trilhas de escrita. Quem sou eu, como funciona a consultoria, como me contatar.
Visitar ercanermis.com →