L4 vs. L7 load balancing
expressãonuvemredes
Balancear por endereços e portas versus pela própria aplicação: L4 é rápido e cego, L7 lê HTTP e roteia por caminho, header ou cookie.
A divisão NLB/ALB dos menus de nuvem; a terminação TLS é o pedágio de entrada no L7.
O balanceamento na camada 4 decide a partir de endereços e portas sem examinar conteúdo; o da camada 7 interpreta o protocolo de aplicação e pode rotear por nome de host, caminho, cabeçalho ou cookie. A diferença determina o que o balanceador consegue fazer e quanto custa fazê-lo.
A camada 4 é rápida, agnóstica de protocolo e em boa medida transparente, já que move pacotes sem terminar a conexão. A camada 7 precisa terminar a conexão, descriptografar se estiver criptografada, interpretar a requisição e abrir uma segunda conexão até o servidor, o que é muito mais trabalho e compra proporcionalmente mais: roteamento por conteúdo, persistência de sessão por cookie, manipulação de cabeçalhos, nova tentativa no nível da requisição, e a possibilidade de aplicar um firewall de aplicação web.
A escolha prática decorre do que você precisa decidir. Se o roteamento depende apenas de qual pool de servidores idênticos deve receber o tráfego, a camada 4 é a ferramenta certa e a mais barata. No momento em que o roteamento depende do conteúdo da requisição, ou é preciso inspecioná-la, a camada 7 deixa de ser opcional. A maioria das implantações reais roda as duas em camadas diferentes, e é por isso que entender onde a decisão está sendo tomada é o primeiro passo para diagnosticar por que o tráfego foi para um lugar inesperado.