sábado, 23 de marzo de 2024

Balanceadores de carga en AWS

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. 

3. NLB - Network Load Balancer. Trabaja en la capa 4 del modelo OSI.

Elección adecuada en caso de requerir alto rendimiento (millones de peticiones por segundo) con baja latencia en cargas de tipo TCP/UDP.

Por ello, este tipo de balanceador de carga es especialmente recomendado para aplicaciones de juegos, inversión en bolsa, streaming de video  y plataformas de mensajería (chats). 

4. GWLB - Gateway Load Balancer: para balanceo de cargas hacía virtual appliances (firewalls y sistemas de deteción de intrusiones).  Trabaja entre las capas 3 y 7 del modelo OSI. 

Esta diseñado para trabajar con endpoints de tipos gateway load balancer desde los cuales se puede enviar tráfico desde cuentas spoke para ser inspeccionado por la cuenta hub donde se encuentran los sistemas de detección de intrusiones o firewalls. 

Soporta tráfico HTTP y TCP.

No hay comentarios:

Publicar un comentario

Mis notas sobre AWS Detective: AWS Certified Security - Specialty

Amazon Detective elimina la recopilación y análisis manual de datos. Permite a los equipos de seguridad comprender rápidamente un contexto ...