Dentro de entornos cloud, los balanceadores de carga se han convertido en herramientas esenciales para dar sentido a la distribución del tráfico entrante entre diferentes servicios y servidores, con el objetivo de asegurar la alta disponiblidad, tolerancia a fallos y escalado de aplicaciones.
Desde AWS se ofrecen diferentes opciones para diferentes casos de uso, y es fundamental alinear los requisitos y necesidades de nuestras cargas de trabajo a las características y funcionalidades de cada una de las alternativas que nos ofrece AWS como soluciones de balanceo.
Actualmente en AWS disponemos de 4 tipos:
1. CLB - Classic Load Balancer. Balanceador de carga básico con capacidades de balancear tráfico entre elementos de una misma región. Tiene capacidades de autoescalado en función de la cantidad de tráfico recibida.
Soporta protocolos HTTP/HTTPS, TCP y SSL. No soporta HTTP/2 ni Websockets.
Ofrece posibilidad de chequeo de salud de los destinos y terminación SSL. También permite sticky-sessions (cookies) ofrecidas por la aplicación.
No soporta enrutado basado en path ni enrutado a multiple puertos en una única instancia.
Es una solución perfectamente válida para distribuir tráfico entre instancias IaaS (EC2) que alojen servidores web. En el caso de cargas TCP, es válido para distribuir tráfico entre bases de datos. Tambien permite distribuir tráfico entre contenedores.
2. ALB - Application Load Balancer: balanceo avanzado HTTP/HTTPS (capa 7 modelo OSI).
Balanceador completo que ofrece gran variedad de funcionalidades permitiendo enrutamiento avanzado basado en contenido (content-based routing), asi como la capacidad de inspeccionar el tráfico entrante en base a las cabeceras HTTP, path o cookies, permitiendo enrutar el tráfico en base a URL path o nombre de máquina a diferentes destinos.
Soporta HTTP/2, websockets y aplicaciones basadas en contenedores.
Soporta sticky-sessions generadas por el balanceador.
Solución válida para el balanceo de aplicaciones web y distribucion de tráfico entre microservicios.
En general es ideal para aplicaciones web que requieren enrutamiento basado en path y desean conseguir una lógica en el balanceo.
No hay comentarios:
Publicar un comentario