← Volver al catálogo

Elastic Load Balancing (ELB)

En una frase: Reparte el tráfico entre instancias, contenedores o IP y deja fuera los que fallan
Certificaciones: SAA-C03 SAP-C02 DVA-C02

Qué es

Elastic Load Balancing (ELB) reparte automáticamente el tráfico entrante entre varios destinos (instancias EC2 (Elastic Compute Cloud), contenedores, direcciones IP (Internet Protocol: dirección de red) o funciones Lambda) repartidos en varias zonas de disponibilidad. Comprueba continuamente la salud de cada destino y deja de enviar tráfico a los que fallan. Así una aplicación escala horizontalmente y sigue funcionando aunque caiga una instancia o una zona entera. Es un servicio gestionado: escala solo y AWS mantiene su disponibilidad.

Tipos de balanceador

TipoCapaCuándo usarlo
Application Load Balancer (ALB)7 (HTTP/HTTPS, gRPC)Webs y microservicios: enruta por ruta, host, cabeceras o parámetros; destinos Lambda; autenticación con Cognito u OIDC (OpenID Connect: estándar de identidad sobre OAuth 2.0).
Network Load Balancer (NLB)4 (TCP (Transmission Control Protocol: protocolo de transporte fiable), UDP (User Datagram Protocol: protocolo de transporte sin conexión), TLS (Transport Layer Security: cifrado de las conexiones))Millones de peticiones por segundo con latencia mínima, IP estática por zona, conserva la IP de origen, protocolos no HTTP (HyperText Transfer Protocol: protocolo de la web).
Gateway Load Balancer (GWLB)3 (IP, con GENEVE (Generic Network Virtualization Encapsulation: protocolo que encapsula el tráfico hacia los appliances))Insertar de forma transparente appliances de terceros (firewalls, inspección) y escalarlos.
Classic Load Balancer (CLB)4 y 7Generación anterior; solo para aplicaciones heredadas.

Conceptos clave

  • Listener: puerto y protocolo en los que escucha el balanceador (por ejemplo, HTTPS (HTTP Secure: HTTP cifrado con TLS):443), con reglas que deciden a qué grupo de destinos va cada petición.
  • Comprobaciones de estado: por grupo de destinos; un destino que falla deja de recibir tráfico. Con Auto Scaling, se puede además sustituir.
  • Terminación TLS: el balanceador descifra HTTPS con un certificado de ACM (AWS Certificate Manager) y varios certificados por listener gracias a SNI (Server Name Indication).
  • Balanceo entre zonas (cross-zone): reparte por igual entre todos los destinos de todas las zonas; activo por defecto en ALB, opcional en NLB.
  • Sesiones persistentes (sticky sessions): envían al mismo usuario al mismo destino con una cookie; mejor evitarlas guardando las sesiones fuera (ElastiCache, DynamoDB).
  • Connection draining (deregistration delay): deja terminar las peticiones en curso antes de retirar un destino.
  • IP del cliente: el ALB la pasa en la cabecera X-Forwarded-For; el NLB la conserva tal cual.
  • Interno o público: un balanceador puede estar orientado a internet o ser solo interno de la VPC (Virtual Private Cloud).

Casos de uso típicos

  • Frente de una flota web con Auto Scaling repartida en varias zonas.
  • Enrutar /api/* a un servicio y /img/* a otro con un solo ALB.
  • Juegos, IoT (internet de las cosas) o protocolos propios sobre TCP/UDP con NLB.
  • Exponer un servicio a otras VPC o cuentas con PrivateLink detrás de un NLB.
  • Pasar todo el tráfico por firewalls de terceros con GWLB.

Cuándo NO usarlo

  • Para repartir tráfico entre regiones: Route 53 (políticas de enrutamiento) o Global Accelerator.
  • Para una API (Application Programming Interface: interfaz para que los programas se comuniquen) sin servidores con límites, claves y planes de uso: API Gateway.
  • Para cachear contenido cerca del usuario: CloudFront (que puede tener el ALB como origen).

Modelo de precios

Se paga por hora de balanceador más unidades de capacidad según el uso: LCU (Load Balancer Capacity Units) en ALB y NLCU (Network Load Balancer Capacity Unit: unidad de facturación del NLB) en NLB, que combinan conexiones nuevas, conexiones activas, bytes procesados y evaluaciones de reglas. GWLB cobra por hora y por GWLCU (Gateway Load Balancer Capacity Unit: unidad de facturación del GWLB). Aparte, la transferencia de datos.

Seguridad y alta disponibilidad

  • Nodos del balanceador en varias zonas; si una cae, el tráfico va a las demás.
  • Security groups en ALB y NLB, y en los destinos permitir solo el tráfico que viene del security group del balanceador.
  • AWS WAF (Web Application Firewall) sobre el ALB contra ataques web; AWS Shield Standard contra DDoS (Distributed Denial of Service) incluido.
  • Políticas de seguridad TLS para exigir versiones y cifrados modernos.
  • Registros de acceso a S3 (Simple Storage Service) para auditoría.

Trampas de examen

  • "Enrutar por ruta o por nombre de host": ALB.
  • "Latencia ultrabaja", "TCP/UDP" o "IP estática": NLB.
  • "Firewalls de terceros de forma transparente": GWLB.
  • "La aplicación necesita la IP real del cliente" tras un ALB: cabecera X-Forwarded-For.
  • "Proteger contra inyección SQL (Structured Query Language: lenguaje de consultas de bases de datos relacionales) en el balanceador": AWS WAF en el ALB.
  • "Instancias que solo acepten tráfico del balanceador": su security group referencia el del balanceador.
  • "Varios dominios HTTPS en un solo ALB": varios certificados con SNI.

Preguntas de práctica

Preguntas originales escritas para estos apuntes. No son preguntas reales de examen.

Fuentes