Diferenças entre o Application load balancer (ALB) e o Network load balancer (NLB) na WAS
Compação: ALB vs NLB na AWS — Application load balancer vs Network load balancer.
Tanto o Application Load Balancer quanto o Network Load Balancer foram projetados desde o início para o paradigma moderno de configurações de portas dinâmicas, como comumente visto em implantações em contêineres. A escolha do balanceador de carga certo para você dependerá das necessidades específicas do seu aplicativo, como se o tráfego de rede é HTTP ou não, se você precisa de criptografia SSL/TLS de ponta a ponta e se deseja ou não host e caminho roteamento de tráfego
Se você estiver implantando contêineres docker e usando um balanceador de carga para enviar tráfego de rede a eles, o EC2 Container Service fornecerá forte integração com ALB e NLB para que você possa manter seus balanceadores de carga sincronizados ao iniciar, atualizar e interromper contêineres em sua frota.
Balanceador de carga de aplicativo (ALB)
Esta é a distribuição de solicitações com base em múltiplas variáveis, desde a camada de rede até a camada de aplicação. Ele reconhece o contexto e pode direcionar solicitações com base em qualquer variável única com a mesma facilidade com que faz uma combinação de variáveis. Os aplicativos são balanceados em carga com base em seu comportamento peculiar e não apenas nas informações do servidor (sistema operacional ou camada de virtualização).
Este é um balanceador de carga de camada 7 preenchido com recursos, apenas ouvintes HTTP e HTTPS. Fornece a capacidade de rotear o tráfego HTTP e HTTPS com base em regras, baseadas em host ou em caminho. Como um NLB, cada Target pode estar em portas diferentes. Até suporta HTTP/2. Gama configurável de códigos de status de verificação de integridade (CLB suporta apenas 200 OK para verificações de integridade HTTP).
Protocolos: HTTP, HTTPS
Versões dos protocolos: HTTP/1.1, HTTP/2, gRPC
Tipos de destino: Instance, IP, Lambda
Com o ALB, é necessário ativar pelo menos duas ou mais Availability Zones
Balanceador de carga de rede (NLB)
Esta é a distribuição do tráfego com base em variáveis de rede, como endereço IP e portas de destino. É Camada 4 (TCP) e inferior e não foi projetado para levar em consideração nada na camada do aplicativo, como tipo de conteúdo, dados de cookies, cabeçalhos personalizados, localização do usuário ou comportamento do aplicativo. É sem contexto, preocupando-se apenas com as informações da camada de rede contidas nos pacotes que está direcionando para um lado e para o outro.
Este é apenas um balanceador de carga TCP que faz alguma mágica NAT no nível VPC. Ele usa EIPs, portanto possui um endpoint estático diferente de ALB e CLBs (por padrão). Cada destino pode estar em portas diferentes.
Protocolos: TLS, TCP, UDP, TCP_UDP
Versões dos protocolos:TLS, TCP, UDP, TCP_UDP
Tipos de destino: Instance, IP, Lambda
Com o NLB, o Elastic Load Balancing cria uma interface de rede para cada Availability Zones habilitada.
Casos de uso
Escolha ALB se:
O Application Load Balancer é mais adequado para balanceamento de carga de tráfego HTTP e HTTPS e fornece roteamento avançado de solicitações direcionado ao fornecimento de arquiteturas de aplicativos modernas, incluindo microsserviços e contêineres.
Os aplicativos precisam de roteamento avançado (baseado em host, baseado em URL, baseado em string de consulta).
Execute vários serviços (microsserviços) atrás de um único balanceador de carga.
Escolha NLB se:
O Network Load Balancer é mais adequado para balanceamento de carga de tráfego TCP onde é necessário desempenho extremo. Ele é capaz de lidar com milhões de solicitações por segundo, mantendo latências ultrabaixas, e é otimizado para lidar com padrões de tráfego repentinos e voláteis.
Você deseja compartilhar/expor seus serviços (por exemplo, serviços SaaS) a outros consumidores em diferentes VPCs usando PrivateLink VPC Endpoint.
Você precisa de um endereço IP estático que possa ser usado pelos aplicativos como IP front-end do balanceador de carga.