Network

Balanceo de Carga: Técnicas y Arquitecturas

Como distribuir el trafico entre servidores de forma inteligente: algoritmos de balanceo, comparativa de soluciones, health checks, SSL offloading, alta disponibilidad del propio balanceador y persistencia de sesion para arquitecturas de produccion.

business EasyDataHost calendar_today 20 junio 2026 schedule 9 min de lectura

Cualquier aplicación web que reciba trafico real se enfrenta, tarde o temprano, a un problema fundamental: un único servidor tiene un límite de conexiones simultaneas, de CPU, de memoria y de ancho de banda. Cuando ese límite se alcanza, los usuarios experimentan lentitud, timeouts o directamente errores 503. Escalar verticalmente (más CPU, más RAM) tiene un techo físico y económico. La solución arquitectonica es escalar horizontalmente, distribuyendo el trafico entre multiples servidores, y el componente que orquesta esa distribucion es el balanceador de carga.

Un load balancer no es simplemente un proxy que reparte peticiones: es una pieza crítica de la infraestructura que decide a que servidor enviar cada conexión, verifica que los backends estan sanos, termina conexiones SSL, mantiene persistencia de sesion y, en muchos casos, es el primer punto de contacto del usuario con la plataforma. Si el balanceador fallá, toda la plataforma deja de responder. Por eso, entender sus técnicas, algoritmos y patrones de alta disponibilidad es esencial para cualquier arquitecto de sistemas.

En este artículo analizamos los fundamentos del balanceo de carga: tipos L4 y L7, los principales algoritmos de distribucion, una comparativa de soluciones, health checks, SSL offloading, alta disponibilidad del balanceador, sticky sessions, balanceo DNS y como EasyDataHost implementa estas técnicas en su infraestructura de red.

Que es el Balanceo de Carga

El balanceo de carga es la técnica de distribuir el trafico de red entrante entre un grupo de servidores backend (también llamado pool o upstream) para que ninguno reciba más carga de la que puede gestionar. El componente que realiza esta función se denomina load balancer y puede implementarse en hardware dedicado, como appliance virtual o como software ejecutandose en servidores commodity.

Los objetivos fundamentales del balanceo de carga son tres: rendimiento (distribuir la carga para que los tiempos de respuesta sean optimos), disponibilidad (si un backend fallá, el trafico se redirige automáticamente a los demas) y escalabilidad (anadir más servidores al pool sin modificar la configuración del cliente). En entornos de produccion con SLAs exigentes, el balanceador es el componente que permite cumplir compromisos de uptime del 99,99%.

Balanceo L4 vs L7

La distincion más importante en balanceo de carga es entre capa 4 (transporte) y capa 7 (aplicación) del modelo OSI. Un balanceador L4 opera a nivel TCP/UDP: ve direcciones IP, puertos y flags de conexión, pero no inspecciona el contenido de la peticion. Toma decisiones de enrutamiento basandose únicamente en la tupla IP:puerto de origen y destino. Es extremadamente rápido porque no necesita parsear protocolos de aplicación.

Un balanceador L7, en cambio, entiende el protocolo de aplicación (HTTP, HTTPS, gRPC, WebSocket). Puede inspeccionar cabeceras HTTP, URLs, cookies, hosts virtuales y tomar decisiones de enrutamiento basadas en el contenido. Esto permite funcionalidades avanzadas como enrutamiento por path (/api a un pool, /static a otro), reescritura de cabeceras, inyeccion de headers, rate limiting por URL y terminacion SSL con SNI.

Regla práctica:

Usa L4 cuando necesites máximo rendimiento y no requieras inspección de contenido (bases de datos, DNS, mail). Usa L7 cuando necesites enrutamiento inteligente basado en HTTP, terminacion SSL centralizada o manipulacion de cabeceras.

Algoritmos de Balanceo

El algoritmo de balanceo determina como el load balancer selecciona el servidor backend para cada nueva conexión o peticion. Cada algoritmo tiene ventajas y desventajas según el tipo de carga:

  • sync Round Robin: distribuye las peticiones de forma secuencial entre los backends. Es el algoritmo más simple y funciona bien cuando todos los servidores tienen capacidad similar y las peticiones tienen coste computacional uniforme.
  • compress Least Connections: envia la peticion al servidor con menos conexiones activas en ese momento. Ideal cuando las peticiones tienen duracion variable (APIs lentas, descargas, WebSockets) porque evita sobrecargar servidores que ya estan ocupados.
  • balance Weighted (Round Robin/Least Conn): asígna un peso a cada backend para que los servidores más potentes reciban proporcionalmente más trafico. Un servidor con peso 3 recibe el triple de peticiones que uno con peso 1.
  • fingerprint IP Hash: calcula un hash de la IP de origen para asígnar siempre el mismo backend al mismo cliente. Garantiza afinidad de sesion sin cookies, pero puede generar desequilibrios si un rango de IPs genera más trafico que otros.
  • speed Least Response Time: combina conexiones activas y tiempo de respuesta del backend. Envia trafico al servidor que no solo tiene menos conexiones sino que además responde más rápido. Requiere medicion continua de latencia.

Comparativa: HAProxy vs Nginx vs Traefik vs F5 vs Cloud LB

La siguiente tabla compara las soluciones de balanceo de carga más útilizadas en entornos de produccion:

Criterio HAProxy Nginx Traefik F5 BIG-IP Cloud LB
Tipo Software OSS Software OSS Software OSS Hardware/Virtual Servicio gestionado
Capas L4 + L7 L4 + L7 L7 L4 + L7 L4 + L7
Rendimiento Muy alto (millones de conn/s) Alto Medio-alto Muy alto (hardware) Escalado automático
Configuración Fichero plano Fichero plano Auto-discovery (Docker/K8s) GUI + CLI API / Consola
Coste Gratuito Gratuito (Plus de pago) Gratuito Alto (licencia) Pago por uso
Caso ideal Alto trafico, bare metal Web + reverse proxy Microservicios, Kubernetes Enterprise, compliance Cargas cloud-native

Health Checks: TCP, HTTP y Custom

Un balanceador de carga solo es útil si sabe que backends estan sanos y cuales no. Los health checks son sondas periodicas que el load balancer envia a cada servidor para verificar su estado. Si un backend no responde o responde con error, se retira automáticamente del pool hasta que se recupere.

  • lan TCP check: el balanceador intenta abrir una conexión TCP al puerto del backend. Si el handshake completa, el servidor se considera sano. Es el check más básico y no válida que la aplicación este funcionando correctamente.
  • http HTTP check: envia una peticion HTTP GET a un endpoint específico (típicamente /health o /status) y verifica que la respuesta tenga un código 2xx. Válida que la aplicación esta respondiendo, no solo que el puerto esta abierto.
  • tune Custom check: ejecuta un script o verifica condiciones específicas (conexión a base de datos, espacio en disco, carga de CPU). Permite definir criterios de salud específicos de la aplicación que van más allá de la simple conectividad.

Los parametros críticos de un health check son el intervalo (cada cuantos segundos se comprueba), el timeout (cuanto esperar la respuesta) y el umbral (cuantos checks fallídos consecutivos se necesitan para marcar un backend como down). Un intervalo demasíado corto genera carga innecesaria; uno demasíado largo retrasa la detección de fallos.

SSL Termination y Offloading

La terminacion SSL (o TLS termination) consiste en que el balanceador de carga sea el punto donde se descifra el trafico HTTPS. El cliente establece la conexión cifrada con el load balancer, que descifra la peticion y la reenvia al backend en texto plano (HTTP) o re-cifrada. Esto se conoce como SSL offloading porque descarga a los backends del coste computacional del cifrado.

Las ventajas son significativas: los certificados SSL se gestionan en un único punto (el balanceador) en lugar de en cada backend, el rendimiento de los servidores mejora al eliminar la carga criptográfica, y el load balancer puede inspeccionar el trafico HTTP para tomar decisiones de enrutamiento L7. En entornos con requisitos de compliance estrictos, se puede configurar SSL re-encryption: el balanceador descifra, inspecciona y vuelve a cifrar antes de enviar al backend, manteniendo cifrado extremo a extremo.

Alta Disponibilidad del Balanceador: VRRP y Keepalived

Si el balanceador de carga es el punto de entrada único a la plataforma, se convierte en un potencial single point of failure. La solución estándar es desplegar dos o más balanceadores en configuración activo-pasívo (o activo-activo) útilizando VRRP (Virtual Router Redundancy Protocol).

Keepalived es la implementación open source más útilizada de VRRP en Linux. Dos servidores HAProxy comparten una IP virtual (VIP): el nodo master responde al trafico normalmente y envia mensajes VRRP periodicos al backup. Si el backup deja de recibir esos mensajes (porque el master ha falládo), asume la VIP en milisegundos y comienza a responder al trafico. El failover es transparente para los clientes porque la IP no cambia.

En configuraciones activo-activo, ambos balanceadores reciben trafico simultaneamente (cada uno con su propia VIP o compartiendo trafico via DNS round robin), duplicando la capacidad de procesamiento y eliminando recursos ociosos.

Concepto clave:

Un balanceador de carga sin redundancia es un antipatron. Siempre despliega al menos dos instancias con VRRP/Keepalived para que el failover sea automático e imperceptible para los usuarios.

Persistencia de Sesion: Sticky Sessions

Algunas aplicaciones almacenan estado de sesion en memoria local del servidor (carritos de compra, sesiones de login, configuraciones temporales). Si el balanceador envia peticiones del mismo usuario a diferentes backends, la sesion se pierde. La persistencia de sesion (sticky sessions) garantiza que todas las peticiones de un mismo usuario se dirijan al mismo backend.

  • cookie Cookie-based: el balanceador inserta una cookie con el identificador del backend asígnado. En peticiones siguientes, lee la cookie y enruta al mismo servidor. Es el método más fiable porque funciona correctamente incluso con NAT y proxies.
  • fingerprint Source IP: usa la IP del cliente como clave de afinidad. Simple pero problematico cuando multiples usuarios comparten la misma IP pública (redes corporativas, CGN de operadoras).

La recomendacion general es evitar las sticky sessions siempre que sea posible, disenando aplicaciones stateless que almacenen el estado de sesion en un servicio externo (Redis, base de datos). Esto permite que el balanceador distribuya trafico libremente y simplifica el escalado horizontal.

Balanceo de Carga Basado en DNS

El balanceo DNS es la forma más simple de distribuir trafico: se configuran multiples registros A (o AAAA) para el mismo dominio, cada uno apuntando a un servidor o balanceador diferente. Los resolvers DNS rotan las respuestas de forma natural (DNS round robin) distribuyendo clientes entre las IPs disponibles.

La limitacion principal es que el DNS no conoce el estado de los backends: si un servidor cae, el DNS seguira devolviendo su IP hasta que el registro se actualice manualmente o expire el TTL. Los servicios de DNS inteligente (como Route 53, Cloudflare o NS1) resuelven esto con health checks integrados que retiran automáticamente las IPs de servidores caidos. También permiten balanceo geográfico (enviar usuarios al datacenter más cercano) y weighted DNS para distribuir trafico proporcionalmente entre regiones.

Balanceo de Carga en EasyDataHost

La infraestructura de EasyDataHost Cloud útiliza balanceo de carga en multiples niveles. A nivel de red, HAProxy en alta disponibilidad con Keepalived distribuye el trafico entrante entre los nodos de computacion. Los health checks HTTP verifican el estado de cada backend cada 5 segundos, retirando automáticamente los nodos que no respondan.

Para clientes que necesitan balanceo de carga dedicado para sus aplicaciones, EasyDataHost ofrece servicios gestionados de configuración de HAProxy y Nginx con SSL offloading, health checks personalizados, sticky sessions y configuraciones activo-activo con VRRP. Todo ello desplegado en servidores enterprise con conectividad redundante en nuestro datacenter en España.

  • check_circle HAProxy HA con Keepalived: balanceo L4/L7 con failover automático sub-segundo.
  • check_circle SSL offloading centralizado: gestión de certificados en un único punto con renovacion automática.
  • check_circle Health checks avanzados: TCP, HTTP y custom con umbrales configurables.
  • check_circle Datacenter en España: baja latencia y soberania de datos garantizada.

Conclusión

El balanceo de carga es una pieza fundamental de cualquier arquitectura de produccion que necesite rendimiento, disponibilidad y escalabilidad. No se trata simplemente de repartir peticiones: implica elegir el algoritmo correcto para tu tipo de trafico, implementar health checks que detecten fallos reales, gestionar SSL de forma centralizada, garantizar que el propio balanceador no sea un single point of failure y decidir si necesitas persistencia de sesion o puedes disenar tu aplicación como stateless.

  • arrow_right L4 para rendimiento máximo sin inspección; L7 para enrutamiento inteligente basado en HTTP.
  • arrow_right Round Robin para cargas uniformes; Least Connections para peticiones de duracion variable.
  • arrow_right HAProxy es la referencia open source para alto trafico; Traefik para microservicios y Kubernetes.
  • arrow_right VRRP + Keepalived eliminan el single point of failure del balanceador con failover sub-segundo.
  • arrow_right EasyDataHost implementa balanceo HAProxy HA con SSL offloading, health checks y datos en España.

Si necesitas implementar balanceo de carga para tu infraestructura o aplicaciones, contacta con nuestro equipo para disenar la arquitectura que mejor se adapte a tus necesidades de trafico, disponibilidad y rendimiento.

Load Balancing HAProxy Network Alta Disponibilidad SSL
balance

Balanceo de carga profesional con alta disponibilidad

EasyDataHost: HAProxy HA con Keepalived, SSL offloading, health checks avanzados, sticky sessions y failover sub-segundo. Datos en España.