Puntos clave: El Balanceo de Carga Elástico de AWS distribuye el tráfico entrante entre múltiples instancias EC2, mejorando la disponibilidad y escalabilidad de las aplicaciones mediante la monitorización del estado de la instancia. Incluye Equilibradores de Carga Clásicos, de Aplicaciones y de Red para adaptarse a diversas necesidades.
- Redirige automáticamente el tráfico de instancias poco saludables para mantener el rendimiento.
- Soporta aplicaciones diversas, incluyendo contenedores y microservicios, con capacidades de escalado dinámico.
AWS Elastic Load Balancing permite a los usuarios enrutar el tráfico entrante entre múltiples instancias EC2, servidores en la nube de cómputo elástico, contenedores y direcciones IP según corresponda. La distribución del tráfico/cargas de trabajo dentro de una sola o entre varias zonas de disponibilidad se realiza automáticamente, permitiendo a los usuarios escalar las capacidades de cómputo manteniendo la alta disponibilidad a medida que crece la demanda de uso de aplicaciones. Cuando el balanceador de carga recibe una solicitud de un usuario final para acceder a una aplicación, enruta el tráfico según la salud de las instancias objetivo. Monitoriza continuamente el estado de salud y las solicitudes de usuario son siempre dirigidas a instancias sanas. En caso de que se están detectada una instancia inestable, el balanceador de carga enruta automáticamente todo el tráfico a otros objetivos sanos según estén disponibles. Las solicitudes son enrutadas de vuelta al servidor cuando este vuelve a un estado saludable. Con la capacidad Elastic Load Balance, los usuarios configuran el protocolo y el puerto de un Listener, un proceso que identifica las solicitudes de conexión entre clientes y el balanceador de carga, así como el balanceador de carga y los objetivos de la instancia. El Listener sigue las reglas y políticas predefinidas para enrutar el tráfico entre el cliente y las instancias del backend. Estas reglas son evaluadas en función de la prioridad, condiciones y acciones configurables, tal y como se describe en el recurso de AWS aquí.
Tipos de balanceo elástico de carga
El servicio ELB comenzó en 2009 con la capacidad de balanceo de carga basada en software para enrutar el tráfico, realizar comprobaciones de estado de instancias y responder en consecuencia para maximizar la disponibilidad y tolerancia a fallos de las aplicaciones alojadas en AWS. Ese servicio de balanceo de carga están ahora el Classic Load Balancer (CLB), y AWS ha añadido desde entonces dos nuevos servicios mejorados a la cartera de balanceo de carga: Application Load Balancer (ALB) y Network Load Balancer (NLB).
Balanceador de Carga Clásico
El Classic Load Balancer se está desarrollado principalmente para ofrecer servicios de balanceo para la red de instancias EC2 en el Nivel 4 del modelo OSI. La mayoría de las aplicaciones web utilizan el protocolo TCP/IP en la capa de Transporte de Nivel 4, y en algunos casos también emplean el protocolo UDP. Sin embargo, los servicios de balanceo de carga de AWS actualmente no soportan UDP. El Classic Load Balancer utiliza la información de los protocolos y los números de puerto de las solicitudes entrantes para enrutar el tráfico a instancias AWS EC2 apropiadas que alojan la aplicación web. El proceso es similar al enrutamiento tradicional del tráfico para fines de balanceo de carga usando dispositivos físicos, salvo que el CLB realiza esta tarea de forma eficiente y automática dentro de un entorno virtual. La mayoría de las funciones de Classic Load Balancing son ofrecidas tanto con el Balanceador de Carga de Aplicación como de Red. Estas incluyen:
- Distribución de alta disponibilidad, incluyendo escalado automatizado en respuesta a los cambios en los requisitos de capacidad de tráfico.
- Comprobaciones de salud de las instancias EC2 objetivo. Los objetivos no saludables son descargados automáticamente hasta que el servidor recupera la capacidad óptima de rendimiento.
- Grupos de seguridad para la gestión adicional de redes y seguridad, incluyendo la capacidad de Crea CLB interno.
- Gestión centralizada de certificados SSL que incluye el cifrado de servidores EC2 objetivo, control de cifrados y protocolos y descarga de descifrado SSL.
- Sesiones fijas para enrutar a los usuarios a las mismas instancias objetivo usando cookies. Este servicio no está disponible para el balanceador de carga de aplicaciones.
- Monitorización operativa mediante métricas de CloudWatch que informa para activar acciones basadas en eventos asociados al rendimiento de la red y los requisitos de tráfico.
- Soporte tanto para IPv4 como para IPv6 para aplicaciones que dependen de TCP y HTTP/HTTPS respectivamente.
- Registro de las solicitudes del balanceador de carga para diagnóstico y análisis.
Balanceador de Carga de Aplicaciones
El ALB permite el balanceo de carga para tráfico HTTP/HTTPS en la Capa 7 del modelo OSI y puede enrutar el tráfico a arquitecturas de aplicaciones modernas que incluyen contenedores, direcciones IP, servidores EC2, funciones Lambda y microservicios. El ALB ofrece las siguientes mejoras de características respecto al CLB:
- Enrutamiento basado en rutas basado en la información especificada en el encabezado HTTP. El Listener puede configurarse para enrutar diferentes contenidos de URL al servicio de aplicación correspondiente.
- El enrutamiento basado en host permite que la configuración del Oyente enrute múltiples dominios URL desde el mismo ALB.
- Redirige las solicitudes entre diferentes URLs, devuelve respuestas HTTP personalizadas o enruta el tráfico según las direcciones IP.
- Soporte para funciones AWS Lambda y aplicaciones contenedorizadas para maximizar la utilización de recursos del clúster.
- Escalado automático dinámico de servicios de aplicación independientes adjuntos a instancias objetivo específicas. Cada servicio de aplicación también puede ser monitorizado de forma independiente.
- Capacidades de seguridad como la autenticación de usuario antes de enrutar el tráfico.
- Los datos de registro incluyen información adicional. El rendimiento general del ALB también está mejor que el del CLB.
Balanceador de Carga de Red
El balanceo de carga con el NLB funciona en la Capa 4, la Capa de Transporte. Network Load Balancer está capaz de gestionar millones de solicitudes de enrutamiento por segundo entre clientes y sistemas objetivo usando direcciones IP, TCP y números de puerto. Aunque Network Load Balancer no ofrece enrutamiento basado en Path and Host, ni capacidades de Sticky Sessions del Application Load Balancer, sí ofrece las siguientes ventajas sobre el AWS Classic Load Balancer:
- Una solución robusta de balanceo de carga para cargas de trabajo volátiles.
- Enrutamiento de tráfico a múltiples aplicaciones en una sola instancia o grupo objetivo.
- Enrutamiento de tráfico hacia grupos objetivo fuera de la Nube Privada Virtual usando direcciones IP.
- Soporta tanto direcciones IP estáticas como elásticas.
- Seguridad manejable usando permisos de Gestión de Identidad y Acceso basada en Etiquetas (AWS IAM).
- Utiliza eficiente de clústeres con soporte para Elastic Container Service (AWS ECS).
- Soporta comprobaciones de salud para cada servicio de forma independiente, dentro de contenedores o instancias EC2 objetivo. El NLB también equilibra los servicios que escalan dinámicamente en respuesta a la demanda variable como parte de la capacidad AWS Auto Scaling.
La elección entre Classic, Application y Network Load Balancer depende en gran medida del entorno de infraestructura, los costes, la seguridad y cómo debe gestionarse el tráfico entre los usuarios finales y los grupos objetivo. Para la mayoría de los casos de utiliza general en los que el tráfico se están gestionados usando direcciones IP y puertos TCP, el CLB puede ser una opción adecuada, especialmente cuando el mapeo de rutas entre los dos puntos finales es directo. Para entornos que manejan reglas complejas para el enrutamiento del tráfico a nivel de aplicación, el ALB sería una opción adecuada. Para cargas de trabajo que requieren un rendimiento extremo y enrutamiento mediante direcciones IP estáticas y elásticas, o cuando las direcciones IP de origen deben preservarse, el AWS Network Load Balancer sería la opción más adecuada.
Guía AWS
- Guía para principiantes para dominar el modelo de aplicaciones serverless de AWS
- AWS Well Architected Framework: 6 Pilares y Mejores Prácticas
- Infraestructura Global de Nube de AWS: Regiones, Zonas y Más
- ¿Qué es Amazon VPC? Explicación de Amazon Virtual Private Cloud
- ¿Qué es el EFS? Explicación del sistema de archivos Amazon Elastic
- Herramientas de gestión de AWS: Qué está disponible y cómo elegir
- ¿Qué están las organizaciones de AWS? Características clave, beneficios y mejores prácticas
- Introducción a las instancias AWS Spot
- Introducción a las Instancias Reservadas de AWS
- Introducción a AWS Route 53
- ¿Qué es el Equilibrio de Carga Elástico de AWS?
- AWS ECS vs AWS Lambda: ¿Cuál es la diferencia? & Cómo elegir
- AWS ECS vs. EKS: ¿Cuál es la diferencia y cómo elegir?
- ¿Qué es AWS EBS (Elastic Block Almacena)?
- AWS Snowball Edge: transferencia de datos con edge computing
- Patrones de diseño en la nube de AWS
- Explicación de las bases de datos en la nube de AWS: innovación en la multi-nube
- AWS Braket Computación Cuántica: Cómo Obtén
- AWS vs Azure vs GCP: Comparando las tres grandes plataformas en la nube
Estas publicaciones son mías y no representan necesariamente la posición, estrategias u opinión de BMC.