ELB
📘 ¿Qué es ELB?
Elastic Load Balancing es un servicio que distribuye automáticamente el tráfico de red o de aplicaciones entre múltiples instancias de destino (EC2, IPs, Lambda, etc.), garantizando:
-
🔄 Balanceo de carga
-
📈 Escalabilidad
-
🛡️ Alta disponibilidad
-
🔒 Seguridad (SSL/TLS)
🧩 Tipos de Load Balancer
| Tipo | Uso principal | Nivel | Protocolos |
|---|---|---|---|
| ALB (Application LB) | Aplicaciones HTTP/HTTPS (web, API) | Capa 7 | HTTP, HTTPS |
| NLB (Network LB) | Bajo nivel, alta performance, TCP/UDP | Capa 4 | TCP, TLS, UDP, TCP_UDP |
| CLB (Classic LB - legado) | EC2 clásicos (obsoleto en nuevos diseños) | Capa 4 y 7 | HTTP, HTTPS, TCP, SSL |
| GWLB (Gateway LB) | Inspección de tráfico con appliances | Capa 3/4 | IP |
💡 Recomendación: Para nuevas arquitecturas usa ALB o NLB, según el caso.
🧠 ¿Cómo funciona?
Cliente
↓
┌─────────┐
│ ELB │ ← Balancea tráfico (HTTP, TCP, etc.)
└─────────┘
↙ ↓ ↘
Instancia A Instancia B Lambda (en ALB)
⚙️ Características principales
| Funcionalidad | ALB | NLB | CLB |
|---|---|---|---|
| Balanceo HTTP/HTTPS | ✅ | ❌ | ✅ |
| Balanceo TCP/TLS | ❌ | ✅ | ✅ |
| Content-based routing | ✅ (path, host) | ❌ | ❌ |
| WebSocket support | ✅ | ✅ | ✅ |
| IP targeting | ✅ | ✅ | ❌ |
| Soporte para Lambda | ✅ | ❌ | ❌ |
| Sticky sessions (cookies) | ✅ | ❌ | ✅ |
| WAF integration | ✅ | ❌ | ❌ |
| TLS offloading | ✅ | ✅ | ✅ |
🧰 Targets posibles
-
EC2 (en grupos Auto Scaling o manual)
-
IP addresses privadas (por VPC)
-
Lambda functions (solo en ALB)
-
Containers en ECS / Fargate
🔒 Seguridad
-
Soporta SSL/TLS
-
Integración con AWS Certificate Manager (ACM) para certificados gestionados
-
Seguridad por:
-
Security Groups
-
Subnets privadas/públicas
-
WAF (Web Application Firewall) con ALB
-
📊 Monitoreo
-
Amazon CloudWatch:
-
Request count
-
Latency
-
Target response time
-
HTTP 4XX / 5XX
-
-
Access logs:
-
Envío a Amazon S3
-
Contienen detalles del tráfico
-
-
Health checks:
- Detecta instancias no saludables y las excluye del balanceo
🔄 Auto Scaling + ELB
ELB se integra automáticamente con Auto Scaling Groups, permitiendo:
-
Escalado automático de instancias
-
Inclusión/exclusión automática en el balanceador
-
Health checks sincronizados
🧪 Ejemplo de reglas en ALB (Content-based routing)
/path/api/* → Target Group A (microservicio API)
/images/* → Target Group B (contenedor S3 estático)
default → Target Group C (frontend React)
📦 Precios (estimado)
| Recurso | Precio |
|---|---|
| ALB | Por hora de uso + por GB procesado |
| NLB | Más barato por conexión sostenida |
| CLB (legado) | Similar a ALB pero con menos funcionalidades |
🧠 Preguntas tipo certificación
-
¿Qué tipo de ELB permite enrutar por path o dominio?
- ✅ ALB
-
¿Cuál es el load balancer ideal para conexiones TCP de alto rendimiento?
- ✅ NLB
-
¿Puedes usar Lambda como destino en un ELB?
- ✅ Sí, con ALB
-
¿Cómo protege ALB contra ataques web comunes?
- ✅ Integración con AWS WAF
-
¿Qué realiza el health check?
- ✅ Verifica la disponibilidad de los targets (EC2, Lambda, etc.)
🧱 Arquitectura recomendada
Internet
↓
Application Load Balancer (ALB)
↓
Auto Scaling Group con instancias EC2 o ECS
↓
Base de datos (RDS, DynamoDB)
O para alta performance:
Internet
↓
Network Load Balancer (NLB)
↓
EC2 o appliances de red (firewalls, proxies)