Elastic Load Balancing
Elastic Load Balancing (ELB)
Reparte el tráfico entrante entre varios destinos sanos y retira del reparto a los que dejan de responder.
En palabras simples
Es la persona que organiza la fila en el banco: mira qué cajas están abiertas y atendiendo, y manda a cada quien a la que puede atenderle.
Cuándo aplicarlo
Cuando hay más de una instancia, contenedor o función atendiendo la misma aplicación, y hace falta un punto de entrada único que reparta y detecte fallos.
- ▸Distribuir peticiones entre varias instancias EC2 idénticas
- ▸Terminar HTTPS en un punto y dejar el certificado fuera de la aplicación
- ▸Enrutar por ruta o por dominio hacia servicios distintos de un mismo clúster
- ▸Permitir despliegues sin interrupción, sacando destinos del reparto uno a uno
Vocabulario mínimo
- Application Load Balancer
- Trabaja en capa 7: entiende HTTP y puede enrutar según la ruta, el dominio o las cabeceras.
- Network Load Balancer
- Trabaja en capa 4: reparte TCP y UDP con latencia mínima y millones de conexiones.
- Grupo de destino
- El conjunto de instancias, direcciones IP, contenedores o funciones Lambda que reciben el tráfico.
- Comprobación de estado
- La petición periódica que decide si un destino sigue sano. Si falla, deja de recibir tráfico.
- Oyente (listener)
- El puerto y protocolo por el que el balanceador escucha, con las reglas que aplican a ese tráfico.
Costo y capa gratuita
- Cómo se cobra
- Una tarifa por hora de balanceador encendido más un cargo por unidades de capacidad consumidas. Se paga aunque no llegue tráfico.
- Capa gratuita
- 750 horas al mes de un Application Load Balancer o un Network Load Balancer, con 15 GB de datos procesados, durante los primeros 12 meses.
Cuidado con los créditos
- ⚠Un balanceador olvidado tras un taller: es de los recursos que más silenciosamente consumen créditos.
- ⚠Poner un balanceador delante de una sola instancia en un proyecto pequeño: cuesta más que la instancia.
- ⚠Varios balanceadores donde bastaría uno con reglas de enrutamiento por ruta o por dominio.
Descripción
El balanceador es la pieza que convierte varias máquinas en un solo servicio. Sin él, cada instancia tendría su propia dirección y alguien tendría que decidir a mano a cuál conectarse — y qué hacer cuando una se cae.
Hace dos trabajos a la vez. Reparte el tráfico, sí, pero sobre todo comprueba la salud de cada destino y saca del reparto al que deja de responder. Esa segunda función es la que permite desplegar sin cortar el servicio y sobrevivir a la pérdida de una instancia.
Cómo funciona
- Creas el balanceador en subredes de al menos dos zonas de disponibilidad.
- Defines un oyente: por ejemplo, HTTPS en el puerto 443, con un certificado de ACM.
- Registras un grupo de destino con las instancias, direcciones IP o contenedores que atienden.
- Configuras la comprobación de estado: una ruta que devuelva 200 cuando la aplicación está bien.
- El balanceador reparte solo entre los destinos sanos, y reincorpora los que se recuperan.
Manos a la obra
- Lanza dos instancias t3.micro con un servidor web que muestre su propio identificador.
- Crea un Application Load Balancer con un grupo de destino que incluya a las dos.
- Recarga la URL del balanceador varias veces y observa cómo alternan las respuestas.
- Detén el servidor web de una instancia y comprueba que deja de recibir tráfico en segundos.
- Borra el balanceador y las instancias al terminar: el balanceador cobra por hora.
Ejemplo visual
Combinado con un grupo de escalado automático, el balanceador es lo que hace que reemplazar una instancia sea un no evento: se retira del reparto, se termina y entra otra en su lugar.
Cuándo NO es la mejor opción
- Amazon CloudFront — si el contenido es estático o cacheable, la CDN evita que la petición llegue siquiera a la aplicación.
- Amazon API Gateway — si lo que publicas es una API con autenticación, límites de uso y funciones Lambda detrás.
- AWS Global Accelerator — si el reparto debe ocurrir entre regiones y no entre destinos de una misma región.
Se usa junto con
Aparece en certificaciones
- AWS Certified Cloud Practitioner
- AWS Certified Solutions Architect – Associate
- AWS Certified SysOps Administrator – Associate