Migrar de AWS NLB a ALB.
En arquitectura en la nube modernas, los balanceadores de carga son piezas crítica para garantizar que nuestras aplicaciones sean escalables, estables y observabl3es. Amazon Web Services (AWS) ofrece varios tipos de balanceadores de carga, entre ellos el Network Load Balancer (NLB) y el Application Load Balancer (ALB). En este post, exploraremos las razones para migrar de un NLB a un ALB, destacando las ventajas en términos de enrutamiento y monitorización.
Recientemente en uno de nuestros proyectos recientes, y por razones técnicas debemos usar NLB, pero, pensé que sería interesante estudiar el uso de ALB como alternativa para mejorar el enrutamiento y la monitorización de nuestras aplicaciones, si bien por defecto NLB es una opción robusta, ALB ofrece características adicionales que pueden ser beneficiosas en muchos escenarios. Así que decidí escribir este post para compartir mi experiencia y conocimientos sobre este tema.

Limitaciones del NLB para aplicaciones web.
El NLB trabaja en capa 4 (transporte) del modelo OSI, lo que signficia que solo ve t´rafico TCP/UDP y distribuye conexiones sin entender el contenido de las solicitudes. Esto está bien para servicios simples, para uso de sockers o protocolos personalizados, pero puede ser limitante para aplicaciones web modernas que requieren un enrutamiento más sofisticado basado en el contenido de las solicitudes HTTP/HTTPS.
Con NLB, No puedes:
- Enrutar según la ruta de la URL o el host.
- aplicar reglas basadas en campos HTTP como encabezados o parámetros de consulta.
- Implementar autenticación o autorización a nivel de balanceador de carga.
- Obtener métricas detalladas sobre el tráfico HTTP/HTTPS.
¿Por qué se debería migrar a ALB?
Al pasar a ALB, se obtienen varias ventajas relevantes para aplicaciones web:
- Enrutamiento inteligente: ALB Opera en Capa 7 (aplicación) del modelo OSI, lo que le permite tomar decisiones de enrutamiento basadas en el contenido de las solicitudes HTTP/HTTPS. Puedes enrutar el tráfico según la ruta de la URL, el host, los encabezados y otros atributos, por lo que podría dirigir tipo:
/api/*a un conjunto de servidores backend y/static/*a otro. - Integración con WAF: ALB se integra fácilmente con AWS WAF (Web Application Firewall), lo que permite proteger las aplicaciones web contra amenazas comunes como ataques de inyección SQL y cross-site scripting (XSS).
- Mejor monitorización: ALB proporciona métricas detalladas a través de Amazon CloudWatch, lo que facilita el seguimiento del rendimiento y la identificación de problemas específicos a nivel de aplicación.
- Soporte para HTTP/2 y WebSockets: ALB soporta protocolos modernos como HTTP/2 y WebSockets, mejorando la eficiencia de la comunicación entre clientes y servidores.
- Autenticación integrada: ALB permite configurar autenticación a nivel de balanceador de carga utilizando servicios como Amazon Cognito o proveedores de identidad externos.
- Escalabilidad automática: ALB puede escalar automáticamente para manejar aumentos en el tráfico, asegurando que las aplicaciones permanezcan disponibles y receptivas.
¿Cómo migrar de NLB a ALB?
La migración de NLB a ALB implica varios pasos clave:
- Evaluar la configuración actual: Revisa la configuración de tu NLB, incluyendo reglas de enrutamiento, grupos de destino y certificados SSL/TLS.
- Crear el ALB: Configura un nuevo ALB en AWS, definiendo los listeners, reglas de enrutamiento y grupos de destino según sea necesario.
- Probar el ALB: Antes de redirigir el tráfico, realiza pruebas exhaustivas para asegurarte de que el ALB funciona correctamente y maneja las solicitudes como se espera.
- Actualizar DNS: Una vez que el ALB esté probado y funcionando, actual iza los registros DNS para apuntar al nuevo ALB en lugar del NLB.
- Monitorear y optimizar: Después de la migración, monitorea el rendimiento del ALB y ajusta la configuración según sea necesario para optimizar el enrutamiento y la seguridad.
Migrar de un Network Load Balancer (NLB) a un Application Load Balancer (ALB) en AWS puede ofrecer beneficios significativos para aplicaciones web que requieren un enrutamiento avanzado y una mejor monitorización. Al aprovechar las capacidades de ALB, las organizaciones pueden mejorar la eficiencia, seguridad y escalabilidad de sus aplicaciones en la nube. Si bien la migración requiere una planificación cuidadosa, los beneficios a largo plazo hacen que valga la pena el esfuerzo. Considera evaluar tus necesidades actuales y futuras para determinar si ALB es la mejor opción para tu arquitectura en la nube.