Amazon Elastic Load Balancing

Resumen General

Guía completa sobre Elastic Load Balancing en AWS: Application Load Balancer (ALB), Network Load Balancer (NLB) y Gateway Load Balancer (GWLB). Aprende sobre alta disponibilidad, escalabilidad, configuración avanzada y su integración con Auto Scaling Groups.

Links de Contenido

Anotaciones:

Introducción a Alta Disponibilidad y Escalabilidad

La escalabilidad y alta disponibilidad son conceptos fundamentales en arquitecturas cloud. La escalabilidad es la capacidad de adaptarse a cambios en la demanda, mientras que la alta disponibilidad asegura que un sistema siga operativo incluso si ocurren fallos.

Tipos de Escalabilidad

CaracterísticaVerticalHorizontal
DefiniciónAumentar tamaño de instancia (ej: t2.micro → t2.large)Aumentar número de instancias
VentajasSimple para sistemas no distribuidos, aunque con límites de hardwareIdeal para apps web y sistemas distribuidos, sin límite teórico
AWS ServicesCambio de tipo de instancia EC2Auto Scaling Groups + Load Balancer
  • Escalabilidad vertical: Aumentar el tamaño y capacidades de una instancia individual
  • Escalabilidad horizontal (elasticidad): Aumentar el número de instancias
  • Alta disponibilidad: Ejecutar la aplicación en múltiples zonas de disponibilidad para resistir fallos
  • ASG multi-AZ + ELB multi-AZ para resiliencia

¿Qué es Load Balancing?

  • Distribuye tráfico entre múltiples instancias EC2
  • Proporciona un único punto de acceso (DNS)
  • Maneja fallos mediante health checks
  • Ofrece terminación SSL/TLS
  • Permite alta disponibilidad entre AZs
  • Separa tráfico público/privado
  • Puede ser interno (privado) o externo (público)
  • Integración con EC2, ASG, ECS, ACM, CloudWatch, Route 53, WAF, Global Accelerator

Comparación de Load Balancers

CaracterísticaAñoProtcocolosCapa OSICaso de uso
Application (ALB)2016HTTP, HTTPS, WebSocket7Apps web/microservicios
Network (NLB)2017TCP, TLS, UDP4Alto rendimiento
Gateway (GLWB)2020IP (GENEVE)3Firewalls/IDS/IPS

Application Load Balancer (ALB)

  • Opera en capa 7 (HTTP/HTTPS)
  • Soporta HTTP/2 y WebSocket
  • Enrutamiento avanzado por ruta, hostname, headers HTTP y query strings
  • Ideal para microservicios y contenedores
  • Integración nativa con ECS, Lambda, EC2
  • Soporta mapeo de puerto dinámico
  • Nombre DNS estático (region.elb.amazonaws.com)
Cargando contenido...

Target Groups pueden incluir: EC2, ECS, Lambda o direcciones IP. La IP real del cliente se obtiene de la cabecera X-Forwarded-For.

Network Load Balancer (NLB)

  • Opera en capa 4 (TCP/UDP)
  • Ultra baja latencia (~100ms)
  • Maneja millones de peticiones/segundo
  • IP estática por AZ (soporta Elastic IP)
  • Ideal para gaming, streaming, IoT
  • Soporta health checks TCP, HTTP, HTTPS
Cargando contenido...

Gateway Load Balancer (GWLB)

Opera en capa 3 (Red) y usa protocolo GENEVE (puerto 6081). Distribuye tráfico a dispositivos virtuales como firewalls, IDS/IPS y soluciones de terceros para inspección de tráfico.

Comparación de Capas del Modelo OSI

CaracterísticaCapaFunción principalEjemplos / Conceptos clave
Aplicación7Interacción directa con aplicaciones y usuariosHTTP, FTP, SMTP, DNS, SSH
Presentación6Traduce, cifra y comprime datosSSL/TLS, codificación, compresión
Sesión5Establece y mantiene sesionesControl de diálogo, sincronización
Transporte4Entrega fiable y ordenada de datosTCP, UDP, puertos, control de flujo
Red3Encaminamiento y direccionamiento lógicoIP, ICMP, enrutamiento
Enlace de datos2Transmite tramas en red físicaEthernet, MAC, ARP
Física1Transmisión de bitsCables, señales, fibra óptica

Auto Scaling Groups (ASG)

  • Escala horizontal automáticamente
  • Configura capacidad mínima/deseada/máxima
  • Reemplaza instancias no saludables
  • Se integra con ELB para distribuir carga
  • Soporta escalado dinámico, programado y predictivo
  • Basado en métricas como CPUUtilization, RequestCountPerTarget, red, o métricas personalizadas
Cargando contenido...

SSL/TLS y SNI

  • Usar AWS Certificate Manager (ACM) para gestión de certificados
  • TLS 1.2+ recomendado
  • SNI para múltiples dominios en ALB/NLB
  • Renovación automática con ACM
  • CLB soporta solo un certificado por listener

Server Name Indication (SNI): Es una extensión del protocolo TLS que permite a un servidor web alojar varios certificados SSL en la misma dirección IP. Durante el handshake inicial, el cliente envía el nombre del servidor de destino, lo que permite al servidor seleccionar el certificado adecuado o, en caso contrario, utilizar uno predeterminado. Esta función es compatible con ALB, NLB y CloudFront.

Connection Draining (Deregistration Delay)

Permite cerrar conexiones de forma ordenada cuando un target (instancia, contenedor, etc.) deja de formar parte del target group. El balanceador deja de enviarle nuevas solicitudes pero mantiene activas las conexiones existentes hasta que finalicen o se alcance el tiempo máximo configurado (por defecto, 300 segundos). Esto evita interrupciones bruscas en procesos o sesiones en curso, como descargas o transacciones. Es compatible con ALB (HTTP/HTTPS) y NLB (TCP), y resulta esencial para garantizar una desconexión segura en despliegues, mantenimientos o escalados.

Patrones Avanzados

Sticky Sessions

  • Permite que un cliente siempre acceda a la misma instancia
  • Cookies personalizadas o AWSALB
  • Configuración por Target Group
  • Puede provocar desbalanceo

Cross-Zone Load Balancing

CaracterísticaALBNLB
Siempre activo (sin costo adicional)Opcional (costo por tráfico inter-AZ)

Mejores Prácticas

  • Usar ALB para aplicaciones web/microservicios
  • NLB para cargas extremas de TCP/UDP
  • GWLB para arquitecturas de seguridad
  • Monitorear métricas clave
  • Configurar logs de acceso en S3/CloudWatch
  • Integrar con WAF para protección
  • Usar AMIs listas para reducir tiempos de escalado