Load Balancers
Azure Load Balancer e Azure Application Gateway são ambos serviços de balanceamento de carga, mas eles atendem a propósitos diferentes e oferecem funcionalidades distintas. Aqui está uma visão geral das principais diferenças:
Azure Load Balancer
O Azure Load Balancer é um balanceador de carga de nível de rede (Camada 4 do modelo OSI). Ele distribui o tráfego de entrada entre várias instâncias de máquinas virtuais (VMs) para garantir alta disponibilidade e escalabilidade.
- Balanceamento de Carga distribuindo o tráfego com base em IP e portas.
- Utiliza regras de balanceamento para distribuir tráfego entre instâncias.
- Configura pools de back-end onde as instâncias são adicionadas.
- Inclui monitoramento básico com sondas de saúde.
- Suporta IPs públicos e privados
É muito utilizado em aplicações que precisam distribuir o tráfego de redes e serve para um propósito geral.
Azure Application Gateway
O Azure Application Gateway é um balanceador de carga de nível de aplicativo (Camada 7 do modelo OSI). Ele é projetado para aplicações web e fornece recursos avançados para gerenciamento e segurança de tráfego de aplicações.
- Opera na camada de aplicação, permitindo balanceamento com base em URLs, cabeçalhos HTTP e outros dados da camada de aplicação.
- Inclui um firewall de aplicativo web integrado para proteger contra ameaças comuns da web. Proteção contra ataques da web com WAF integrado.
- Permite o roteamento de tráfego com base em URLs específicas.
- Termina conexões SSL/TLS e pode desviar tráfego para os back-ends em texto não criptografado.
- Permite criação de regras complexas para roteamento de tráfego.
Feature | Azure Load Balancer | Azure Application Gateway |
---|---|---|
Operating Layer | Layer 4 (TCP/UDP) | Layer 7 (HTTP/HTTPS) |
Protocol Support | Any TCP/UDP | HTTP/HTTPS (Layer 7) |
Routing Method | IP address, port | URL path, host headers, cookies |
Health Probes | Basic TCP/HTTP checks | Advanced HTTP/HTTPS health checks |
SSL Offloading | No | Yes, with an end-to-end encryption option |
Web Application Firewall | No | Yes, with OWASP rulesets |
Autoscaling | Manual | Automatic based on load |
Zone Redundancy | Available | Available (v2 SKU) |
Scenarios | General TCP/UDP load balancing | Layer 7 for web apps and APIs |
Use Cases | Internal and external traffic distribution, outbound NAT for VMs | Multi-site hosting, secure web apps, URL-based routing |
Other Features | High throughput, HA ports, diagnostics logs | Visual end-to-end monitoring, TLS policy management, customizations |
Cost | Lower | Higher with advanced capabilities |
Vamos pegar de exemplo um AKS que precisamos de um load balancer qual deveríamos usar?
Se usarmos o Azure Load Balancer teremos a necessidade de fazer o deploy do nginx que irá consumir algum recursos do nosso cluster, mas fará o filtro das requisições. Em caso de ataque DDOS, é muito bom que estejamos atrás de um serviço que possa nos ajudar a parar o ataque como no caso da Cloudflare.
Se usarmos o Application Gateway as regras serão aplicadas diretamente nele evitando o deploy do nginx no nosso cluster levando toda filtragem das requisições para dentro do Application Gateway. Este também possui recursos WAF para ajuda a mitigar um possível ataque. Obviamente que você irá pagar mais por isso. Nada impede de estar ainda atrás da Cloudflare para ter duas camadas de proteção.
Tudo depende do propósito do cluster.