Application Load Balancer

Equilibre la carga del tráfico HTTP y HTTPS con un enrutamiento avanzado de solicitudes orientado a la entrega de aplicaciones modernas.

¿Por qué elegir un equilibrador de carga de aplicación?

El equilibrador de carga de aplicación funciona al nivel de las solicitudes (capa 7) y dirige el tráfico a los destinos (instancias EC2, contenedores, direcciones IP y funciones de Lambda) según el contenido de la solicitud. El equilibrador de carga de aplicación, ideal para el equilibrio de carga avanzado de tráfico HTTP y HTTPS, proporciona un direccionamiento de solicitudes avanzado destinado a la entrega de arquitecturas de aplicaciones modernas, incluidos microservicios y aplicaciones basadas en contenedores. El equilibrador de carga de aplicación simplifica y mejora el nivel de seguridad de su aplicación. Para ello, se asegura de que se utilicen en todo momento los protocolos y cifradores SSL/TLS más recientes.

Page Topics

Características

Características

TLS mutua es un protocolo para la autenticación bidireccional entre clientes y servidores que utilizan identidades basadas en certificados x509. Con esta característica, el equilibrador de carga de aplicación (ALB) autenticará los certificados de los clientes y realizará comprobaciones de revocación de los certificados emitidos por autoridades de certificación (CA) de terceros o por una autoridad de certificación privada (ACM PCA). El equilibrador de carga también transferirá la información del certificado del cliente a los destinos, que la aplicación puede utilizar para tomar decisiones de autorización. 

Las ponderaciones automáticas de destino (ATW) utilizan un nuevo algoritmo de equilibrio de carga aleatorio ponderado que mejora la disponibilidad de las aplicaciones incluso cuando los destinos de la aplicación presentan fallos. El algoritmo analiza los códigos de estado HTTP y las tasas de error de TCP/TLS para identificar los objetivos con tasas de error más altas que los pares del mismo grupo de destino. Cuando ATW identifica destinos de bajo rendimiento, esta característica ajusta el volumen de tráfico dirigido a cada destino en función del rendimiento, lo que ayuda a que el destino en dificultades se recupere correctamente.

Puede equilibrar la carga del tráfico HTTP/HTTPS a los destinos (instancias de Amazon EC2, microservicios y contenedores) en función de los atributos de la solicitud, como los encabezados X-Forwarded-For.

Cuando se utiliza Amazon Virtual Private Cloud (VPC), puede crear y administrar grupos de seguridad asociados a Elastic Load Balancing para proporcionar opciones adicionales de seguridad y de redes. Puede configurar un equilibrador de carga de aplicación para que se pueda obtener acceso a él desde Internet o crear un equilibrador de carga sin direcciones IP públicas para que actúe como equilibrador de carga interno (es decir, sin acceso a Internet).

El ALB admite la implementación de protecciones de desincronización basadas en la biblioteca http_desync_guardian. Con esta nueva característica, las aplicaciones de los clientes están protegidas de las vulnerabilidades HTTP por causa de la desincronización, sin comprometer demasiado la disponibilidad o la latencia. Los clientes también pueden elegir su nivel de tolerancia a las solicitudes sospechosas en función de la arquitectura de sus aplicaciones.

El equilibrador de carga de aplicación (ALB) es compatible con AWS Outposts, un servicio completamente administrado que extiende la infraestructura, los servicios y las herramientas de AWS a prácticamente cualquier centro de datos, espacio de coubicación o complejo local para lograr una experiencia híbrida verdaderamente uniforme. Los clientes pueden aprovisionar los ALB en los tipos de instancias compatibles y el ALB escalará verticalmente de manera automática hasta la capacidad disponible en el bastidor para cumplir los distintos niveles de la carga de la aplicación sin intervención manual. Los clientes también pueden recibir notificaciones que los ayuden a satisfacer sus necesidades de capacidad relacionadas con el equilibrio de carga. Además, pueden usar la misma consola, API y CLI de AWS para aprovisionar y administrar los ALB en Outposts que utilizan actualmente con los ALB de la región.

Un balanceador de carga de aplicaciones es compatible con la terminación HTTPS entre los clientes y el balanceador de carga. Los equilibradores de carga de aplicación también ofrecen la administración de certificados SSL a través de AWS Identity and Access Management (IAM) y AWS Certificate Manager para establecer políticas de seguridad predefinidas.

HTTP/2 es una nueva versión del protocolo de transferencia de hipertexto (HTTP) que utiliza una conexión multiplex para permitir el envío de varias solicitudes en la misma conexión. Además, comprime los datos de encabezado antes de enviarlos en formato binario y es compatible con las conexiones SSL con clientes.

El ALB puede dirigir el tráfico de gRPC y equilibrar su carga entre microservicios o entre clientes y servicios habilitados para gRPC. Esto permite introducir sin problemas la gestión del tráfico de gRPC en las arquitecturas sin cambiar la infraestructura subyacente de los clientes o los servicios de los clientes. gRPC usa HTTP/2 para el transporte y se está convirtiendo en el protocolo preferido para las comunicaciones entre servicios en las arquitecturas de microservicios. Cuenta con características como la serialización binaria eficiente y la compatibilidad con numerosos lenguajes, además de las ventajas inherentes de HTTP/2, como una menor huella de red, compresión y transmisión bidireccional, lo que lo hace mejor que los protocolos heredados como REST.

Puede crear un agente de escucha de HTTPS que utilice conexiones cifradas (también conocidas como descarga de SSL). Esta característica permite el cifrado del tráfico entre el equilibrador de carga y los clientes que inician las sesiones SSL o TLS. El equilibrador de carga de aplicación admite la finalización de la sesión TLS del cliente. Esto le permite descargar las tareas de terminación de TLS al equilibrador de carga, al mismo tiempo que preserva la dirección IP de origen para sus aplicaciones de backend. Puede elegir entre políticas de seguridad predefinidas para los agentes de escucha TLS a fin de cumplir con los estándares de seguridad y conformidad. AWS Certificate Manager (ACM) o AWS Identity and Access Management (IAM) pueden utilizarse para gestionar sus certificados de servidores.

Puede utilizar la SNI para alojar varios sitios web seguros con un solo agente de escucha TLS. Si el nombre de host en el cliente coincide con varios certificados, el equilibrador de carga selecciona el mejor certificado que se utilizará en función de un algoritmo de selección inteligente.

Las sesiones persistentes son un mecanismo para direccionar solicitudes del mismo cliente al mismo destino. Los equilibradores de carga de aplicación admiten tanto las cookies basadas en la duración como las cookies basadas en aplicaciones. La clave para gestionar las sesiones persistentes es determinar durante cuánto tiempo el equilibrador de carga debe dirigir de forma uniforme la solicitud del usuario al mismo destino. Las sesiones persistentes están habilitadas al nivel del grupo de destino. Puede usar una combinación de persistencia basada en la duración, persistencia basada en la aplicación y ausencia de persistencia en todos sus grupos de destino.

Los equilibradores de carga de aplicación admiten la versión 6 del protocolo de Internet (IPv6) en una VPC. Eso permite a los clientes conectarse al Application Load Balancer mediante IPv4 o IPv6.

El equilibrador de carga de aplicación introduce un nuevo encabezado HTTP "X-Amzn-Trace-Id" identificador personalizado en todas las solicitudes que llegan al balanceador de carga. El seguimiento de solicitudes le permite monitorear la solicitud por su ID único a medida que esta se desplaza por los diversos servicios que forman el volumen de tráfico de sus sitios web y aplicaciones distribuidas. Puede usar el identificador de seguimiento único para detectar cualquier problema de desempeño o de temporización en la pila de su aplicación incluso a nivel de solicitud individual.

El equilibrador de carga de aplicación puede redirigir una solicitud entrante de una URL para otra URL. Esto incluye la capacidad de redirigir las solicitudes de HTTP a las solicitudes de HTTPS, en conformidad con su objetivo de cumplimiento de navegación segura, mientras puede alcanzar una mejor búsqueda clasificación y puntaje SSL/TLS para su sitio. También puede usar la redirección para enviar a los usuarios a diferentes sitios web, por ejemplo, al redirigir de una vieja versión de una aplicación hacia una nueva versión.

El balanceador de carga de aplicaciones puede determinar cuáles son las solicitudes del cliente que se ofrecerán mediante sus aplicaciones. Esto le permite que responda las solicitudes entrantes con códigos de respuesta de error de HTTP y mensajes de error personalizados desde el mismo balanceador de carga sin reenviar la solicitud a la aplicación.

WebSockets permite a un servidor intercambiar mensajes en tiempo real con los usuarios finales sin que estos tengan que solicitar (o sondear) una actualización al servidor. El protocolo WebSockets proporciona canales de comunicación bidireccional entre un cliente y un servidor a través de una conexión TCP de larga distancia.

La indicación de nombre de servidor (SNI) es una extensión del protocolo TLS mediante la cual un cliente indica el nombre de host al cual se debe realizar la conexión al inicio del protocolo de enlace TLS. El balanceador de carga puede presentar varios certificados mediante el mismo agente de escucha seguro, lo que le permite admitir varios sitios web seguros a través del uso de un único agente de escucha seguro. El balanceador de carga de aplicaciones también es compatible con el algoritmo de selección de certificados inteligentes con SNI. Si el nombre de host indicado por un cliente coincide con varios certificados, el balanceador de carga establece cuál es el certificado más adecuado en función de varios factores, entre ellos, las capacidades del cliente.

Puede equilibrar la carga de cualquier aplicación local o alojada en AWS mediante el uso de direcciones IP de los backends de las aplicaciones como destinos. Esto permite equilibrar cargas a un backend de aplicación alojado en cualquier dirección IP y con cualquier interfaz de una instancia. Cada aplicación alojada en la misma instancia puede tener un grupo de seguridad asociado y utilizar el mismo puerto. También puede usar direcciones IP como destinos para equilibrar cargas de aplicaciones alojadas en ubicaciones locales (a través de una conexión de VPN o de Direct Connect), VPC emparejadas y EC2-Classic (con ClassicLink). La capacidad para equilibrar cargas entre recursos locales y alojados en AWS lo ayuda a migrar a la nube, solicitar ráfagas a la nube y conmutar por error en la nube.

Los balanceadores de carga de aplicaciones son compatibles con las funciones de Lambda para poder atender solicitudes HTTP, permitiendo a los usuarios acceder a aplicaciones sin servidor desde cualquier cliente HTTP, incluyendo navegadores web. Puede registrar sus funciones Lambda como destinos para un balanceador de carga y utilizar el soporte para reglas de direccionamiento basadas en contenido para dirigir solicitudes a distintas funciones Lambda. Puede utilizar el balanceador de carga de aplicaciones como un punto de enlace HTTP común para aplicaciones que utilizan servidores e informática sin servidor. Puede crear un sitio web completo por medio de las funciones de Lambda o combinar instancias EC2, contenedores, servidores locales y funciones de Lambda para crear aplicaciones.

Si la aplicación está compuesta por varios servicios individuales, un equilibrador de carga de aplicación puede dirigir una solicitud a un servicio en función del contenido de la solicitud, como el campo Host, la URL de la ruta, el encabezado HTTP, el método HTTP, la cadena de consulta o la dirección IP de origen.

Enrutamiento basado en el host: permite dirigir la solicitud de un cliente en función del campo Host del encabezado HTTP, lo que le permitirá dirigir varios dominios desde el mismo equilibrador de carga.

Enrutamiento basado en la ruta: permite dirigir la solicitud de un cliente en función de la ruta de la URL del encabezado HTTP.

Enrutamiento basado en el encabezado HTTP: permite dirigir la solicitud de un cliente en función del valor de cualquier encabezado HTTP personalizado o estándar.

Enrutamiento basado en el método HTTP: permite dirigir la solicitud de un cliente en función de cualquier método HTTP personalizado o estándar.

Enrutamiento basado en los parámetros de las cadenas de consulta: permite dirigir la solicitud de un cliente en función de las cadenas o los parámetros de consulta.

Enrutamiento basado en el CIDR para direcciones IP de origen: permite dirigir la solicitud de un cliente en función del CIDR para direcciones IP de origen desde donde se origina la solicitud.

Un equilibrador de carga de aplicación ofrece una compatibilidad con contenedores optimizada mediante el equilibrio de carga entre varios puertos de una única instancia de Amazon EC2. La profunda integración a Amazon Elastic Container Service (ECS) ofrece una solución de contenedores completamente administrada. ECS le permite especificar un puerto dinámico en la definición de tarea de ECS, lo que asigna al contenedor un puerto sin utilizar cuando se programa en la instancia EC2. El programador de ECS agrega automáticamente la tarea al equilibrador de carga mediante este puerto.

Ya puede utilizar AWS WAF para proteger sus aplicaciones web en sus balanceadores de carga de aplicaciones. AWS WAF es un firewall para aplicaciones web que ayuda a proteger sus aplicaciones web de ataques web comunes que podrían afectar la disponibilidad de la aplicación, comprometer la seguridad o consumir demasiados recursos.

El equilibrador de carga de aplicación es compatible con el algoritmo de equilibrio de cargas de turno rotativo. Además, el equilibrador de carga de aplicación es compatible con un modo de inicio lento con el algoritmo de turno rotativo que le permite agregar nuevos objetivos sin sobrecargarlos con un aluvión de solicitudes. Con el modo de inicio lento, los objetivos se activan antes de aceptar su parte equitativa de solicitudes en función de un período de refuerzo que usted especifique. El inicio lento es muy útil para las aplicaciones que dependen de la caché y que necesitan un período de activación antes de poder responder solicitudes con un nivel de desempeño óptimo.

Puede quitar la carga de la funcionalidad de autenticación de sus aplicaciones y pasarla al equilibrador de carga de aplicación. El equilibrador de carga de aplicación autenticará los usuarios de manera segura a medida que obtengan acceso a las aplicaciones de la nube. El balanceador de carga de aplicaciones se integra sin problemas con Amazon Cognito, lo que les permite a los usuarios finales realizar autenticaciones mediante proveedores de identidades de redes sociales, como Google, Facebook y Amazon, y mediante proveedores de identidades empresariales, como Microsoft Active Directory a través de SAML o cualquier proveedor de identidades que cumpla con OpenID Connect (IdP). Si ya cuenta con una solución IdP personalizada compatible con OpenID Connect, Application Load Balancer también puede autenticar usuarios empresariales mediante una conexión directa con su proveedor de identidades.