Load Balancers
Azure Load Balancer y Azure Application Gateway son ambos servicios de balanceo de carga, pero atienden a propósitos diferentes y ofrecen funcionalidades distintas. Aquí está una visión general de las principales diferencias:
Azure Load Balancer
Azure Load Balancer es un balanceador de carga de nivel de red (Capa 4 del modelo OSI). Distribuye el tráfico de entrada entre varias instancias de máquinas virtuales (VMs) para garantizar alta disponibilidad y escalabilidad.
- Balanceo de Carga distribuyendo el tráfico con base en IP y puertos.
- Utiliza reglas de balanceo para distribuir tráfico entre instancias.
- Configura pools de back-end donde las instancias son añadidas.
- Incluye monitoreo básico con sondas de salud.
- Soporta IPs públicas y privadas
Es muy utilizado en aplicaciones que necesitan distribuir el tráfico de redes y sirve para un propósito general.
Azure Application Gateway
Azure Application Gateway es un balanceador de carga de nivel de aplicación (Capa 7 del modelo OSI). Está diseñado para aplicaciones web y proporciona recursos avanzados para gestión y seguridad de tráfico de aplicaciones.
- Opera en la capa de aplicación, permitiendo balanceo con base en URLs, cabeceras HTTP y otros datos de la capa de aplicación.
- Incluye un firewall de aplicación web integrado para proteger contra amenazas comunes de la web. Protección contra ataques de web con WAF integrado.
- Permite el enrutamiento de tráfico con base en URLs específicas.
- Termina conexiones SSL/TLS y puede desviar tráfico para los back-ends en texto no encriptado.
- Permite creación de reglas complejas para enrutamiento de tráfico.
| 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 a tomar de ejemplo un AKS que necesitamos de un load balancer, ¿cuál deberíamos usar?
Si usamos Azure Load Balancer tendremos la necesidad de hacer el deploy del nginx que consumirá algún recursos de nuestro cluster, pero hará el filtro de las requisiciones. En caso de ataque DDOS, es muy bueno que estemos detrás de un servicio que pueda ayudarnos a parar el ataque como en el caso de Cloudflare.
Si usamos Application Gateway las reglas serán aplicadas directamente en él evitando el deploy del nginx en nuestro cluster llevando toda filtración de las requisiciones para dentro del Application Gateway. Este también posee recursos WAF para ayudar a mitigar un posible ataque. Obviamente que pagarás más por eso. Nada impide estar aún detrás de Cloudflare para tener dos capas de protección.
Todo depende del propósito del cluster.