Como funciona o balanceador de carga nas tecnologias de nuvem?
sobes.tech IA
Resposta da IA
O balanceador de carga (Load Balancer) distribui o tráfego de rede de entrada entre um grupo de servidores (instâncias), aumentando a disponibilidade e o desempenho da aplicação.
Funções principais:
- Distribuição de tráfego: Redireciona as solicitações para as instâncias disponíveis.
- Verificações de saúde (Health Checks): Verifica periodicamente a funcionalidade das instâncias e as retira de rotação se estiverem com problemas.
- Escalabilidade: Facilita a adição e remoção de instâncias sem interromper o serviço.
Algoritmos de distribuição de tráfego:
- Round Robin: Distribuição sequencial em círculo.
- Least Connections: Direciona a solicitação para a instância com menos conexões.
- IP Hash: Distribui as solicitações com base em um hash do IP do cliente, garantindo afinidade de sessão.
- Weighted Round Robin: Distribuição considerando pesos atribuídos a cada instância.
Tipos de balanceadores na nuvem:
- Network Load Balancer (NLB): Opera na camada de rede (Camada 4, TCP/UDP). Ideal para cenários de alto desempenho com grande volume de tráfego.
- Application Load Balancer (ALB): Opera na camada de aplicação (Camada 7, HTTP/HTTPS). Suporta roteamento baseado em URL, host, cabeçalhos e cookies, e terminações SSL.
- Gateway Load Balancer (GWLB): Opera na camada de rede (Camada 3) e é projetado para implantar e escalar dispositivos virtuais de rede de terceiros (firewalls, IDS/IPS) de forma transparente para o tráfego.
Verificação de saúde (Health Check): O balanceador envia requisições (por exemplo, GET /health) ou verifica a porta TCP nas instâncias. Se a resposta corresponder às expectativas (por exemplo, HTTP 200 OK ou conexão TCP bem-sucedida), a instância é considerada saudável.
Exemplo de configuração no AWS CLI:
# Criação de grupo alvo (Target Group)
aws elbv2 create-target-group \
--name MyTargetGroup \
--protocol HTTP \
--port 80 \
--vpc-id vpc-xxxxxxxxxxxxxxxxx
# Registro de instâncias no grupo alvo
aws elbv2 register-targets \
--target-group-arn arn:aws:elasticloadbalancing:us-east-1:xxxxxxxxxx:targetgroup/MyTargetGroup/xxxxxxxxxxxxxxxxx \
--targets Id=i-xxxxxxxxxxxxxxxxx Id=i-yyyyyyyyyyyyyyyyy
# Criação do balanceador de carga (ALB)
aws elbv2 create-load-balancer \
--name MyAppAlb \
--subnets subnet-xxxxxxxxxxxxxxxxx subnet-yyyyyyyyyyyyyyyyy \
--scheme internet-facing \
--type application
# Criação do ouvinte (Listener)
aws elbv2 create-listener \
--load-balancer-arn arn:aws:elasticloadbalancing:us-east-1:xxxxxxxxxx:loadbalancer/app/MyAppAlb/xxxxxxxxxxxxxxxxx \
--port 80 \
--protocol HTTP \
--default-actions Type=forward,TargetGroupArn=arn:aws:elasticloadbalancing:us-east-1:xxxxxxxxxx:targetgroup/MyTargetGroup/xxxxxxxxxxxxxxxxx
# Exemplo de configuração de Health Check
aws elbv2 modify-target-group \
--target-group-arn arn:aws:elasticloadbalancing:us-east-1:xxxxxxxxxx:targetgroup/MyTargetGroup/xxxxxxxxxxxxxxxxx \
--health-check-protocol HTTP \
--health-check-port 80 \
--health-check-path /health \
--health-check-interval-seconds 30 \
--health-check-protocol-timeout-seconds 5 \
--healthy-threshold-count 3 \
--unhealthy-threshold-count 3
Os balanceadores de carga são componentes críticos na infraestrutura em nuvem para garantir alta disponibilidade, escalabilidade e confiabilidade das aplicações.