• Um balanceador de carga de aplicação distribui o tráfego web recebido entre vários servidores com base no conteúdo das requisições.
  • Ele funciona analisando os detalhes do conteúdo do tráfego, como cabeçalhos e caminhos, para rotear as requisições de forma eficiente.
  • O ALB suporta decisões avançadas de roteamento que otimizam a distribuição com base nos requisitos específicos da aplicação.

Um balanceador de carga desempenha um papel fundamental no gerenciamento do tráfego entre vários servidores, garantindo que nenhum servidor fique sobrecarregado. Essa função é essencial para o bom funcionamento das aplicações, especialmente em ambientes de alto tráfego. Com o crescimento da computação em nuvem e a adoção de microsserviços, o papel dos balanceadores de carga, especialmente dos balanceadores de carga de aplicação (ALB), tornou-se cada vez mais importante.

Os ALBs operam no nível da camada de aplicação e tomam decisões de roteamento com base no conteúdo da requisição. À medida que as empresas continuam inovando e buscando soluções mais flexíveis e escaláveis, as capacidades de roteamento adaptativo e inteligente dos ALBs são essenciais para otimizar o desempenho das aplicações e melhorar a experiência do usuário em ambientes de rede complexos.

O que são balanceadores de carga de aplicação

Os ALBs são um subconjunto de balanceadores de carga que operam no nível da camada de aplicação do modelo OSI (Open Systems Interconnection). Ao contrário dos balanceadores de carga tradicionais que operam no nível da camada de rede (camada 4), os ALBs podem rotear com base no conteúdo da requisição HTTP/HTTPS, como caminho, cabeçalho ou cookie. Isso permite um roteamento mais complexo e um melhor balanceamento de carga, tornando os ALBs ideais para aplicações web modernas, microsserviços e sistemas de contêineres.

Principais funcionalidades do balanceador de carga de aplicação

Roteamento baseado em conteúdo:Os ALBs podem rotear o tráfego com base nos valores contidos narequisição HTTP, incluindo cabeçalhos de host, padrões de caminho, métodos HTTP e strings de consulta. Isso permite criar regras de roteamento específicas que atendem aos requisitos da aplicação.

Terminação SSL:Os ALBs podem realizar a descriptografia SSL, liberando os servidores back-end dessa tarefa que consome muitos recursos computacionais. Isso simplifica o gerenciamento de certificados enquanto melhora o desempenho geral das soluções back-end.

Suporte WebSocket:Os ALBs suportam nativamente WebSocket para gerenciar conexões bidirecionais em tempo real entre clientes e servidores, necessárias para aplicações como chat ao vivo e notificações.

Suporte a microsserviços e contêineres:Os ALBs também se integram eficientemente com microsserviços e sistemas baseados em contêineres. Eles podem rotear o tráfego para diferentes serviços com base no conteúdo da requisição, além de auxiliar no balanceamento de carga e isolamento de diferentes serviços.

Verificações de saúde:Os ALBs realizam verificações de saúde nos alvos registrados (por exemplo, instâncias EC2 ou endereços IP) para confirmar que estão saudáveis e prontos para receber tráfego. Alvos com falha são autorrecuperáveis e são excluídos do pool até que se restabeleçam.

Escalonamento automático:Os ALBs podem escalar para cima ou para baixo com base no tráfego, tornando-os eficientes para gerenciar aplicações de alto tráfego sem consumir muitos recursos do servidor durante períodos de baixo tráfego.

Como funciona um balanceador de carga de aplicação

Os balanceadores de carga de aplicação funcionam direcionando o tráfego de aplicação recebido para os alvos apropriados, comoinstâncias EC2, microsserviços ou contêineres. Veja um fluxo de trabalho simplificado:

Requisição do cliente:Um cliente inicia uma chamada para um servidor que hospeda a aplicação.

Resolução DNS:O DNS resolve a requisição para o ALB.

Configuração do listener:O ALB escuta passivamente conexões recebidas em portas específicas, como a porta 80 para HTTP ou a porta 443 para SSL.

Avaliação das regras:O ALB avalia as regras do listener para determinar como processar a requisição. Estas podem incluir cabeçalhos de host, padrões de caminho, métodos HTTP, etc.

Seleção do alvo:Seguindo as regras, o ALB roteia a requisição para um ou mais destinos, geralmente compostos por destinos registrados, como instâncias EC2 ou endereços IP.

Verificações de saúde:O ALB monitora continuamente a saúde dos alvos dentro de cada grupo de alvos. Alvos que se tornam falhos são removidos até que se restabeleçam.

Resposta ao cliente:O alvo selecionado analisa a requisição e retorna uma resposta apropriada ao cliente através do ALB.

Leia também:O que entender sobre endereços IPv6 APNIC?

Leia também:Arquitetos da conectividade de rede: o papel dos engenheiros de nuvem

Vantagens do balanceador de carga de aplicação

Desempenho melhorado:O uso de ALBs também garante uma distribuição harmoniosa do tráfego entre os servidores, de modo que nenhum servidor fique sobrecarregado, resultando em melhor desempenho geral.

Segurança aprimorada:Vale mencionar aqui que os ALBs possuem funcionalidades de segurança inerentes e operam em conjunto com um WAF para mitigar certas vulnerabilidades web e outras falhas.

Disponibilidade aumentada:Os ALBs contribuem para melhorar significativamente a disponibilidade das aplicações através do balanceamento de carga, que “move” o tráfego para instâncias operacionais quando outras estão fora de serviço.

Flexibilidade:Os ALBs oferecem roteamento baseado em conteúdo para microsserviços ou aplicações conteinerizadas, permitindo que as organizações gerenciem e escalem seus serviços com mais facilidade.