Equilibrio de carga elástico en AWS

Publicado: 2022-08-10

Elastic Load Balancing es el corazón de las aplicaciones en AWS. Aprenda todo sobre ELB, sus tipos y características en esta publicación.

Hoy en día, la mayoría de las organizaciones requieren administrar y aumentar la escalabilidad, disponibilidad y tolerancia a fallas de sus aplicaciones. AWS proporciona una excelente solución para esto, es decir, el servicio Elastic Load Balancing. Este servicio consta de un equilibrador de carga que puede distribuir cargas de trabajo entre muchos recursos informáticos, como servidores virtuales.

balanceo de carga

Los servicios de Equilibrio de carga nos permiten configurar comprobaciones de estado para monitorear el estado de los recursos informáticos. También nos permite descargar el trabajo de cifrado y descifrado a su balanceador de carga para que los recursos informáticos puedan concentrarse en su trabajo principal.

Equilibrio de carga elástico (ELB): descripción general

ELB es un servicio que distribuye automáticamente el tráfico entrante entre varias instancias de EC2. Esto ayuda a lograr niveles más altos de tolerancia a fallas en sus aplicaciones al proporcionar la capacidad de balanceo de carga para distribuir el tráfico de aplicaciones.

Equilibrio de carga elástico
Fuente: AWS

Además, Elastic Load Balancing puede detectar instancias EC2 en mal estado, y tan pronto como se descubre que una instancia EC2 no está en buen estado, ELB deja de enviarle tráfico hasta que vuelve a estar en buen estado. Los clientes pueden habilitar fácilmente Elastic Load Balancing dentro de una o varias zonas de disponibilidad para lograr un rendimiento de la aplicación más uniforme.

Funciones de equilibrio de carga elástico

Seguridad

Puede administrar y crear grupos de seguridad asociados con Elastic Load Balancing en Amazon Virtual Private Cloud (VPC) para brindar opciones adicionales de red y seguridad para Application Load Balancer y Classic Load Balancer.

Alta disponibilidad

Un Elastic Load Balancer tiene una alta disponibilidad. Puede distribuir el tráfico entrante a su aplicación a las instancias EC2 en una sola zona de disponibilidad o en varias zonas de disponibilidad.

alto rendimiento

Los Elastic Load Balancers están diseñados para gestionar el tráfico a medida que crece y pueden cargar y equilibrar millones de solicitudes por segundo. También puede manejar picos repentinos de tráfico.

Comprobaciones de salud

Con Elastic Load Balancing, puede mantener bajo control el estado de sus instancias EC2 y no correr el riesgo de enviar tráfico a una instancia en mal estado.

Supervisión operativa y registro

Amazon CloudWatch informa sobre las métricas del Balanceador de carga clásico y de aplicaciones, como recuentos de errores, tipos de errores, latencia de solicitudes, recuentos de solicitudes y más.

Borrar Protección

Puede habilitar Delete Protection en un Elastic Load Balancer para evitar que se elimine accidentalmente.

Video de Youtube

Componentes de Elastic Load Balancers

Oyentes

Debe configurar uno o más oyentes para su balanceador de carga. Es un proceso que verifica las solicitudes de conexión. Está configurado con un protocolo y un puerto para las conexiones de front-end (cliente a balanceador de carga) y un protocolo para las conexiones de back-end (balanceador de carga a instancia de back-end).

Los protocolos admitidos para el equilibrio de carga elástico incluyen:

  • HTTPS (HTTP seguro)
  • TCP
  • SSL (TCP seguro)

Equilibrador de carga

Un balanceador de carga actúa como el "policía de tráfico" frente a sus servidores, distribuyendo las solicitudes de los clientes en todos los servidores equipados para manejarlas de una manera que maximiza la velocidad y la utilización de la capacidad y garantiza que ningún servidor tenga un exceso de trabajo, lo que puede resultar en una degradación del rendimiento.

El equilibrador de carga enruta el tráfico a los servidores activos en caso de que un servidor se desconecte. El equilibrador de carga inicia solicitudes a un nuevo servidor cuando se agrega al grupo de servidores.

Grupos destinatarios

Las solicitudes se enrutan a uno o más destinos registrados utilizando cada grupo de destino. Usted define un grupo objetivo y condiciones cuando crea cada regla de escucha. Cuando se cumple una condición de regla, el tráfico se enruta al grupo de destino apropiado.

Para varios tipos de solicitudes, puede crear grupos objetivo separados. Por ejemplo, cree diferentes grupos de destino para solicitudes a los microservicios de su aplicación y solicitudes genéricas.

Tipos de balanceadores de carga

Equilibrador de carga de aplicaciones

Application Load Balancer permite a los desarrolladores configurar y dirigir el tráfico entrante de usuarios finales a aplicaciones que se ejecutan en la nube pública de AWS.

El equilibrio de carga es crucial en un entorno de nube con numerosas aplicaciones web. Un equilibrador de carga garantiza que ningún servidor único se sobrecargue al dividir el tráfico de red y los flujos de información entre varios servidores. Esto mejora las experiencias de los usuarios, aumenta la capacidad de respuesta y la disponibilidad de las aplicaciones, y puede defenderse contra los ataques de denegación de servicio distribuido (DDoS).

Video de Youtube

El acceso a las aplicaciones web ha crecido significativamente en los últimos años. Sin embargo, los aumentos de tráfico inesperados pueden ralentizar los servicios en línea y reducir la disponibilidad. Application Load Balancer distribuye de manera eficiente la carga de la red en la nube pública para aumentar la estabilidad y la disponibilidad.

Application Load Balancer solo dirigirá el tráfico a un destino saludable dentro del recurso de la nube si una aplicación problemática llega a la capa 7. WebSocket es otro protocolo compatible con Application Load Balancer para aumentar la conectividad con el servidor subyacente.

Los sitios web y las aplicaciones móviles que se ejecutan en contenedores o en instancias de AWS EC2 son los que más se benefician del uso de un balanceador de carga de aplicaciones. En una arquitectura de microservicios, Application Load Balancer se puede utilizar como un balanceador de carga interno frente a instancias EC2 o contenedores Docker que implementan un servicio específico. Además, se puede usar frente a una aplicación RESTful API.

Numerosos servicios de AWS son compatibles con el balanceador de carga de aplicaciones, incluidos:

  • Escalado automático de AWS
  • Servicio de contenedores elásticos de Amazon
  • Formación en la nube de AWS
  • AWS CodeDeploy
  • Administrador de certificados de AWS

Equilibrador de carga clásico

El tráfico de las aplicaciones entrantes se divide en numerosas instancias EC2 en varias zonas de disponibilidad mediante un balanceador de carga clásico. Un balanceador de carga clásico actúa como el único punto de contacto del cliente. Esto hace que su aplicación sea más accesible. Sin afectar el flujo general de solicitudes a su aplicación, puede agregar o eliminar instancias de su balanceador de carga clásico a medida que cambien sus necesidades.

Un agente de escucha usa el protocolo y el puerto que configuraste para monitorear las solicitudes de conexión del cliente. Luego, el agente de escucha transmite solicitudes a una o más instancias registradas utilizando el protocolo y el puerto configurados. Usted modifica su balanceador de carga agregando uno o más oyentes.

Para asegurarse de que el balanceador de carga solo enruta las solicitudes a instancias en buen estado, puede configurar comprobaciones de estado, que se utilizan para controlar el estado de las instancias registradas.

El balanceador de carga clásico, de manera predeterminada, distribuye uniformemente el tráfico entre las zonas de disponibilidad que habilite para su balanceador de carga. Habilite el balanceo de carga entre zonas en su balanceador de carga para distribuir el tráfico entre todas las instancias registradas en todas las zonas de disponibilidad activadas.

balanceo de carga

Tipos de balanceador de carga clásico:

  • Equilibradores de carga clásicos orientados a Internet: un equilibrador de carga orientado a Internet puede enrutar las solicitudes de los clientes a las instancias EC2 registradas con el equilibrador de carga a través de Internet, gracias a su dominio DNS que se puede resolver públicamente. Su equilibrador de carga recibe un nombre de DNS público cuando se crea, que los clientes pueden usar para realizar solicitudes. Los servidores DNS traducen el nombre DNS de su balanceador de carga a las direcciones IP públicas de los nodos del balanceador de carga. Las direcciones IP privadas conectan cada nodo de equilibrio de carga con las instancias de back-end.
  • Equilibradores de carga clásicos internos: los nodos de un equilibrador de carga interno solo tienen direcciones IP personales. El nombre DNS de un equilibrador de carga interno se puede resolver públicamente en las direcciones IP de los nodos. Como resultado, las solicitudes solo pueden ser enrutadas por balanceadores de carga internos de clientes que tienen acceso a la VPC del balanceador de carga.

Equilibrador de carga de red

El balanceador de carga de red funciona en la cuarta capa del modelo OSI. Puede manejar millones de solicitudes por segundo.

El equilibrador de carga elige un destino del grupo de destino para la regla predeterminada después de recibir una solicitud de conexión. Intenta establecer una conexión TCP con el destino seleccionado en el puerto indicado en la configuración del oyente.

Video de Youtube

Para aumentar la tolerancia a fallas de su aplicación, puede habilitar múltiples zonas de disponibilidad, un servicio pago en AWS para balanceadores de carga de red. Si una zona de disponibilidad deja de funcionar, su aplicación no dejará de funcionar.

Para el tráfico TCP, se selecciona un objetivo mediante un algoritmo hash de flujo basado en el protocolo, el puerto de origen, la dirección IP de origen, el puerto de destino, la dirección IP de destino y el número de secuencia TCP.

Las conexiones TCP de los clientes tienen diferentes números de secuencia y puertos de origen, por lo que las conexiones se enrutan a otros destinos. Cada conexión TCP única se enruta a un solo destino durante la duración de la conexión.

Equilibrador de carga de puerta de enlace

Sus dispositivos virtuales de terceros se pueden implementar, escalar y administrar fácilmente con la ayuda de Gateway Load Balancer. Proporciona una puerta de enlace única para dividir el tráfico entre numerosos dispositivos virtuales y escalarlos hacia arriba o hacia abajo en respuesta a la demanda. Esto elimina posibles puntos de falla en su red y aumenta la disponibilidad.

Video de Youtube

Los dispositivos virtuales de fabricantes independientes se pueden encontrar, probar y comprar directamente a través de AWS Marketplace. Ya sea que desee continuar trabajando con sus proveedores actuales o probar algo nuevo, esta experiencia integrada acelera el proceso de implementación para que pueda beneficiarse de sus dispositivos virtuales más rápidamente.

Beneficios del equilibrador de carga de puerta de enlace:

  • Implementación más rápida de dispositivos virtuales de terceros.
  • Escalar sus dispositivos virtuales mientras administra los costos.
  • Mejore la disponibilidad del dispositivo virtual

Ultimas palabras

Los Elastic Load Balancers son una parte fundamental de muchas infraestructuras creadas en AWS. Las características que obtenemos de un ELB facilitan la administración de su infraestructura. Elastic Load Balancing es un método probado y verdadero para distribuir las solicitudes de tráfico web y de aplicaciones entre varios objetivos o instancias.

Puede escalar automáticamente sus diversas cargas de trabajo con Elastic Load Balancer. Hemos cubierto todos los tipos de balanceadores de carga proporcionados por AWS y puede usarlos según las demandas de su aplicación.