Tag: ALB

  • Como configurar o AWS Application Load Balancer com 2 target groups

    Como configurar o AWS Application Load Balancer com 2 target groups

    Neste post, que acompanha o vídeo do canal, vamos configurar um AWS Application Load Balancer (ALB) com dois target groups. O primeiro distribui o tráfego de uma aplicação web entre duas instâncias EC2. O segundo recebe só as requisições de uma API, usando uma regra baseada no caminho da URL (path).

    Aqui você encontra o cenário, os conceitos e o checklist de configuração para consultar depois de assistir.

    O que é o Application Load Balancer

    O Application Load Balancer é o balanceador de carga da AWS que trabalha na camada 7 (HTTP e HTTPS). Isso significa que ele entende a requisição e consegue decidir o destino por path, host, cabeçalho, método ou query string. É diferente do Network Load Balancer, que trabalha na camada 4 (TCP/UDP) e olha só para IP e porta.

    Na prática, o ALB resolve três problemas de uma vez:

    • Alta disponibilidade: se uma instância ou uma zona de disponibilidade cair, o tráfego segue para as instâncias saudáveis.
    • Roteamento inteligente: uma mesma URL pública atende a aplicação web e a API, cada uma no seu grupo de servidores.
    • Menos exposição: as instâncias ficam sem IP público, e só o ALB recebe tráfego da internet.

    O cenário do laboratório

    O fluxo que montamos no vídeo é este:

    1. O usuário acessa a URL do ALB.
    2. O ALB tem um Security Group próprio, que libera HTTP na porta 80.
    3. Requisições para / vão para o target group da aplicação web, com duas instâncias EC2 (server 1 e server 2).
    4. Requisições para o path da API vão para o target group da API, com uma terceira instância EC2.

    As duas instâncias web estão em subnets diferentes da mesma VPC, cada uma em uma zona de disponibilidade. Se uma zona tiver problema, a outra instância continua respondendo e a aplicação segue no ar.

    Nenhuma das instâncias tem IP público. O Security Group delas só aceita tráfego vindo do Security Group do ALB.

    Recursos AWS utilizados

    RecursoPapel no laboratório
    Amazon VPC e subnetsRede com subnets em duas zonas de disponibilidade
    Amazon EC2Duas instâncias da aplicação web e uma da API
    Security GroupsUm para o ALB (HTTP da internet) e outro para as instâncias (HTTP só do ALB)
    Target groupsweb com as duas instâncias web e api com a instância da API
    Application Load BalancerRecebe as requisições e aplica as regras do listener

    Passo a passo resumido

    1. Security Groups

    • SG do ALB: entrada HTTP (80) de qualquer origem. Em produção, use HTTPS (443) com certificado do AWS Certificate Manager.
    • SG das instâncias: entrada HTTP (80) apenas com origem no SG do ALB. Referenciar o Security Group em vez de um bloco de IP é o que garante que ninguém acesse as instâncias diretamente.

    2. Target group da aplicação web

    • Tipo de destino: instâncias. Protocolo HTTP, porta 80, versão HTTP1.
    • Health check no path /. É por ele que o ALB decide se a instância está saudável para receber tráfego.
    • Registre as duas instâncias web. Até existir um load balancer usando o grupo, o status aparece como unused, e isso é normal.

    3. O Application Load Balancer

    • Esquema internet-facing, na mesma VPC, com pelo menos duas subnets em zonas diferentes.
    • Associe o SG do ALB.
    • Listener HTTP:80 com ação padrão de forward para o target group web.

    Com isso, ao acessar a URL do ALB e atualizar a página, você vê as respostas alternando entre server 1 e server 2.

    4. Target group da API

    Repita o processo do target group web, registrando a instância da API. Também libere, no Security Group dessa instância, o HTTP vindo do SG do ALB. É um passo fácil de esquecer, e sem ele o health check falha.

    5. Regra por path no listener

    Em Listeners and rules, adicione uma regra ao listener HTTP:80:

    • Condição: path igual ao caminho da API.
    • Ação: forward para o target group api.
    • Prioridade: 1. Regras de menor número são avaliadas primeiro, e a regra padrão fica sempre por último.

    Além de forward, o ALB oferece outras duas ações que valem conhecer: redirect (por exemplo, de HTTP para HTTPS) e fixed response, que devolve uma resposta fixa sem chegar a nenhum servidor.

    Boas práticas para levar para produção

    • HTTPS no listener, com certificado gratuito do ACM e redirect de HTTP para HTTPS.
    • AWS WAF na frente do ALB para filtrar SQL injection, XSS e acesso por país. Mostro isso no próximo post: Como configurar o AWS WAF.
    • Instâncias em subnets privadas, com saída pela NAT Gateway quando precisarem de internet. Explico a montagem da rede neste post: Aprenda a criar VPC, Peering e Transit Gateway na AWS.
    • Auto Scaling group como destino do target group, para escalar sem registrar instâncias manualmente.
    • Logs de acesso do ALB no S3 para investigação de incidentes.
    • Custo: o ALB cobra por hora e por LCU, mesmo sem tráfego. Ao final do laboratório, apague o load balancer, os target groups e as instâncias.

    Material de apoio

    Ficou alguma dúvida sobre a configuração? Deixe nos comentários.

Visão geral de privacidade

Este site usa cookies para que possamos oferecer a melhor experiência de usuário possível. As informações dos cookies são armazenadas em seu navegador e executam funções como reconhecê-lo quando você retorna ao nosso site e ajudar nossa equipe a entender quais seções do site você considera mais interessantes e úteis.