Elastic Load Balancing
Application Load Balancers

¿Qué es un Application Load Balancer?

Elastic Load Balancing admite tres tipos de balanceadores de carga: Application Load Balancers, Network Load Balancers y Classic Load Balancers. En esta guía, se explican los Application Load Balancers. Para obtener más información sobre Network Load Balancers, consulte la Guía del usuario de Network Load Balancers. Para obtener más información sobre Classic Load Balancers, consulte Guía del usuario de Classic Load Balancers.

Componentes de Balanceador de carga de aplicaciones

Un balanceador de carga actúa como único punto de contacto para los clientes. El balanceador de carga distribuye el tráfico entrante de aplicaciones entre varios destinos, tales como instancias EC2, en varias zonas de disponibilidad. Esto aumenta la disponibilidad de la aplicación. Puede agregar uno o varios agentes de escucha al balanceador de carga.

Un agente de escucha comprueba las solicitudes de conexión de los clientes mediante el protocolo y el puerto que haya configurado; a continuación, reenvía las solicitudes a uno o más grupos de destino, según las reglas que haya definido. Cada regla especifica un grupo de destino, una condición y una prioridad. Cuando se cumple la condición, el tráfico se reenvía al grupo de destino. Debe definir una regla predeterminada para cada agente de escucha y agregar reglas que especifiquen diferentes grupos de destino en función del contenido de la solicitud (esto también se denomina direccionamiento basado en contenido).

Cada grupo de destino direcciona las solicitudes a uno o varios destinos registrados (tales como instancias EC2) utilizando el protocolo y el número de puerto que ha especificado. Puede registrar un destino en varios grupos de destino. Puede configurar las comprobaciones de estado de cada grupo de destino. Las comprobaciones de estado se llevan a cabo en todos los destinos registrados en un grupo de destino especificado en la regla del agente de escucha del balanceador de carga.

En el siguiente diagrama se ilustran los componentes básicos. Observe que cada agente de escucha contiene una regla predeterminada y que un agente de escucha contiene otra regla que direcciona las solicitudes a un grupo de destino diferente. Un destino se ha registrado en dos grupos de destino.


                Componentes de un Balanceador de carga de aplicaciones básico

Para obtener más información, consulte la documentación siguiente:

Información general de Balanceador de carga de aplicaciones

Un Balanceador de carga de aplicaciones actúa como la capa de aplicación, es decir, la séptima capa del modelo de interconexión de sistemas abiertos (OSI). Una vez que el balanceador de carga ha recibido una solicitud, evalúa las reglas del agente de escucha por orden de prioridad con el fin de determinar qué regla se debe aplicar. A continuación, selecciona un destino en el grupo de destino para la acción de la regla. Puede configurar las reglas del agente de escucha de tal forma que las solicitudes se direccionen a diferentes grupos de destino en función del contenido del tráfico de aplicación. El direccionamiento se lleva a cabo de manera independiente para cada grupo de destino, aunque un destino se haya registrado en varios grupos de destino.

Puede agregar y eliminar destinos del balanceador de carga en función de sus necesidades sin interrumpir el flujo general de solicitudes a la aplicación. Elastic Load Balancing escala el balanceador de carga a medida que cambia el tráfico dirigido a la aplicación y es capaz de adaptarse automáticamente a la mayoría de cargas de trabajo. Elastic Load Balancing puede escalarse automáticamente para adaptarse a la mayoría de las cargas de trabajo.

Puede configurar las comprobaciones de estado, que se utilizan para monitorizar el estado de los destinos registrados, de tal forma que el balanceador de carga solo pueda enviar solicitudes a los destinos en buen estado.

Para obtener más información, consulte Cómo funciona Elastic Load Balancing en la Guía del usuario de Elastic Load Balancing.

Beneficios de la migración desde un Classic Load Balancer

Usar un Balanceador de carga de aplicaciones en lugar de un Classic Load Balancer presenta los siguientes beneficios:

  • Compatibilidad con el direccionamiento basado en rutas. Puede configurar reglas para el agente de escucha que reenvíen las solicitudes en función de la dirección URL contenida en la solicitud. Esto permite estructurar la aplicación en servicios de menor tamaño y direccionar las solicitudes al servicio correcto según el contenido de la URL.

  • Compatibilidad con el direccionamiento basado en host. Puede configurar reglas para el agente de escucha que reenvíen las solicitudes en función del campo de host en el encabezado HTTP. Esto permite direccionar solicitudes a varios dominios a través de un único balanceador de carga.

  • Compatibilidad para direccionamiento basado en campos en la solicitud, tales como encabezados y métodos HTTP estándar o personalizados, parámetros de la consulta y direcciones IP de origen.

  • Compatibilidad con el direccionamiento de solicitudes a varias aplicaciones en una sola instancia EC2. Puede registrar cada instancia o dirección IP con el mismo grupo de destino utilizando varios puertos.

  • Compatibilidad con el redireccionamiento de solicitudes de una URL a otra.

  • Compatibilidad con la devolución de una respuesta HTTP personalizada.

  • Compatibilidad con el registro de destinos por dirección IP, incluidos los destinos situados fuera de la VPC para el balanceador de carga.

  • Compatibilidad para registrar funciones Lambda como destinos.

  • Compatibilidad para que el balanceador de carga pueda autenticar a los usuarios de sus aplicaciones a través de sus identidades corporativas o sociales antes de enviar solicitudes.

  • Compatibilidad con las aplicaciones en contenedores. Amazon Elastic Container Service (Amazon ECS) permite seleccionar un puerto no utilizado al programar una tarea y registrarla en un grupo de destino mediante este puerto. De este modo, puede hacer un uso eficiente de los clústeres.

  • Compatibilidad con la monitorización independiente del estado de cada servicio, pues las comprobaciones de estado se definen para cada grupo de destino y muchas métricas de CloudWatch se notifican también para cada grupo de destino. Si adjunta un grupo de destino a un grupo de Auto Scaling, podrá escalar cada servicio dinámicamente en función de la demanda.

  • Los logs de acceso contienen información adicional y se almacenan en formato comprimido.

  • Mejora del desempeño del balanceador de carga.

Para obtener más información sobre las características admitidas por cada tipo de balanceador de carga, consulte Comparación de productos de Elastic Load Balancing.

Cómo empezar

Para crear un Balanceador de carga de aplicaciones, pruebe con uno de los siguientes tutoriales:

Elastic Load Balancing se combina con los siguientes servicios para mejorar la disponibilidad y la escalabilidad de las aplicaciones.

  • Amazon EC2 — Servidores virtuales que ejecutan las aplicaciones en la nube. Puede configurar el balanceador de carga de modo que direccione el tráfico a las instancias EC2.

  • Amazon EC2 Auto Scaling: se asegura de que se ejecute la cantidad deseada de instancias, aunque una de ellas sufra un error, y permite aumentar o reducir automáticamente el número de instancias a medida que cambia la demanda de ellas. Si habilita Auto Scaling con Elastic Load Balancing, las instancias que Auto Scaling lanza se registran automáticamente en el balanceador de carga y se anula automáticamente el registro en el balanceador de carga de las instancias que se Auto Scaling termina.

  • AWS Certificate Manager: al crear un agente de escucha HTTPS, puede especificar los certificados proporcionados por ACM. El balanceador de carga utiliza certificados para terminar las conexiones y descifrar las solicitudes de los clientes. Para obtener más información, consulte Certificados SSL.

  • Amazon CloudWatch — Permite monitorizar el balanceador de carga y adoptar las medidas necesarias. Para obtener más información, consulte Métricas de CloudWatch para el Application Load Balancer.

  • Amazon ECS — Permite ejecutar, detener y administrar contenedores Docker en un clúster de instancias EC2. Puede configurar el balanceador de carga de forma que direccione el tráfico a los contenedores. Para obtener más información, consulte Balanceo de carga de servicios en la Amazon Elastic Container Service Developer Guide.

  • Route 53 — Ofrece una forma rentable y de confianza de direccionar a los visitantes a los sitios web convirtiendo los nombres de dominio (como www.example.com) en direcciones IP numéricas (como 192.0.2.1) que los equipos utilizan para comunicarse entre sí. AWS asigna direcciones URL a los recursos, tales como los balanceadores de carga. No obstante, puede ser conveniente utilizar una URL que los usuarios puedan recordar fácilmente. Por ejemplo, puede asignar el nombre de dominio a un balanceador de carga.

  • AWS WAF: puede utilizar AWS WAF con su Balanceador de carga de aplicaciones para permitir o bloquear las solicitudes en función de las reglas de una lista de control de acceso web (ACL web). Para obtener más información, consulte Application Load Balancers y AWS WAF.

Para ver información acerca de los servicios que se integran con el balanceador de carga, seleccione el balanceador de carga en la Consola de administración de AWS y elija la pestaña Integrated services (Servicios integrados).

Precios

Con el balanceador de carga, solo se paga por lo que se usa. Para obtener más información, consulte Precios de Elastic Load Balancing.