Cómo crear y configurar el equilibrador de carga de red en AWS

Cómo crear y configurar el equilibrador de carga de red en AWS
Cuando el usuario solicita una aplicación o un servidor web aumentando más allá de cierto límite, es difícil para un solo servidor manejar la carga, y los usuarios comienzan a enfrentar dificultades para acceder a la aplicación. Para resolver este problema, la mayoría de las aplicaciones web se ejecutan en más de un servidor para administrar la demanda de alta carga de los usuarios. Pero requerimos algún mecanismo para dividir las solicitudes entre diferentes servidores. Para resolver este problema, tenemos que usar un equilibrador de carga que pueda distribuir el tráfico en los servidores en función de algún algoritmo. Los algoritmos más comunes utilizados son Round Robin, Robin redondo ponderado, Mínimo Conexión, Mínimo Tiempo de respuesta, Hash de flujo, etc. Como uno de los mayores proveedores de servicios en la nube, AWS ofrece diferentes tipos de equilibradores de carga, y debe decidir cuál es más adecuado y económico para manejar su trabajo de aplicación.

Tipos de equilibradores de carga en AWS

En AWS, obtienes los siguientes cuatro tipos de equilibradores de carga:

Equilibrador de carga clásico

Funciona en la capa de transporte (TCP) y la capa de aplicación (HTTP). No admite el mapeo de puertos dinámicos y requiere una relación entre el puerto del equilibrador de carga y el puerto de instancia. Ahora, es un servicio heredado y no se recomienda usar mucho.

Balancador de carga de la aplicación

Es el balance de carga más utilizado que enruta el tráfico en función de la capa de aplicación (http/https). También admite la función de mapeo de puertos dinámicos y proporciona un enrutamiento inteligente.

Equilibrador de carga de red

El equilibrador de carga de red utiliza un algoritmo de hash de flujo y funciona en la capa de transporte (TCP), I.mi., Capa 4 del modelo OSI. Puede manejar más solicitudes que el equilibrador de carga de la aplicación y proporciona la menor latencia.

Equilibrador de carga de puerta de enlace

Es un equilibrador de carga que proporciona otros beneficios como la seguridad de la red y el firewall. Tomina las decisiones de enrutamiento en la tercera capa de OSI (capa de red) y utiliza el protocolo Geneve en el puerto 6081.

Creación de equilibrador de carga de red utilizando la consola de administración de AWS

En este artículo, crearemos y configuraremos un equilibrador de carga de red. El primer paso es configurar el servicio sobre el cual queremos aplicar nuestro equilibrador de carga. Puede ser instancias de EC2, funciones lambda, direcciones IP o equilibradores de carga de aplicaciones. Aquí, elegiremos instancias de EC2, así que busque el servicio EC2 en la consola.

Configure tantas instancias como desee para su aplicación.

Antes de crear nuestro equilibrador de carga, necesitamos crear un grupo objetivo. Abra la consola de grupos de destino desde el menú izquierdo en la sección EC2.

Ahora, haga clic en Crear grupo de destino para comenzar.

Primero, debe elegir el servicio que desea crear el grupo de destino. Estas serán las instancias en nuestro caso:

Luego, proporcione el nombre de su grupo objetivo, el protocolo de red, el número de puerto y el VPC (red privada virtual) a la que pertenecen sus instancias de EC2.

Para un grupo de destino que se utilizará con un equilibrador de carga de red, el protocolo debe ser un protocolo de capa 4 como TCP, TLS, UDP o TCP_UDP a medida que el equilibrador de carga de red opera en la capa 4 del modelo OSI de capa.

El puerto aquí muestra el puerto en el que su aplicación se ejecuta en las instancias de EC2. Al configurar su aplicación en múltiples instancias de EC2 con un grupo de destino, asegúrese de que su aplicación en todas las instancias de EC2 se ejecute en el mismo puerto. En esta demostración, nuestra aplicación se ejecuta en el puerto 80 de las instancias de EC2.

Para VPC, debe seleccionar el VPC en el que existen sus instancias EC2. De lo contrario, no puede agregar las instancias de EC2 al grupo de destino.

También puede configurar las verificaciones de salud para que si un objetivo se cae, el equilibrador de carga dejará de enviar automáticamente el tráfico de red a ese objetivo.

Ahora, debe registrar sus instancias a su grupo objetivo. Las solicitudes del usuario se reenviarán a los objetivos registrados.

Para registrar el objetivo, simplemente seleccione esos objetivos o instancias en este caso y haga clic en "Incluir como pendiente a continuación". Aquí, hemos elegido instancias que pertenecen a diferentes zonas de disponibilidad para mantener nuestra aplicación en funcionamiento incluso si un AZ cae.

Finalmente, haga clic en Crear grupo de destino y estará listo para comenzar.

Ahora, crearemos nuestro equilibrador de carga de red, así que abra la sección de equilibrio de carga en el menú y haga clic en Crear el equilibrador de carga.

De los siguientes tipos, seleccione el equilibrador de carga de red:

Primero, defina el nombre de su equilibrador de carga de red en la sección de configuración básica.

Ahora, elige el esquema de red, yo.mi., O desea que su equilibrador de carga sea público o simplemente quiere usarlo en su red privada (VPC).

El tipo de dirección IP define si sus instancias EC2 están utilizando direcciones IPv4 o IPv6. Si sus instancias EC2 usan solo direcciones IPv4, puede seleccionar la IPv4 opción. De lo contrario, seleccione el Doble pila opción.

Seleccione el VPC para el equilibrador de carga. Debe ser lo mismo que el de los casos y los grupos objetivo.

Luego, puede seleccionar las zonas y subredes de disponibilidad en las que existen las instancias de EC2 objetivo. Más zonas de disponibilidad significan cuanto más sus aplicaciones estén altamente disponibles. Mientras ejecuta su aplicación en más de una instancia de EC2, asegúrese de que sus instancias de EC2 se ejecuten en diferentes zonas de disponibilidad.

Como nuestras instancias pertenecen a cada una de las zonas de disponibilidad presentes en la región, las seleccionaremos todas con sus respectivas subredes.

US-East-2A

US-East-2B

US-East-2c

Ahora, tenemos que establecer el protocolo y el puerto de red, y seleccionar nuestro grupo de destino para nuestro equilibrador de carga. El equilibrador de carga enrutará todo el tráfico a este objetivo.

Finalmente, nuestra configuración está completa. Simplemente haga clic en Crear equilibrador de carga en la esquina derecha del botón, y estamos listos para irnos.

Una vez configurado, encontrará un punto final para su equilibrador de carga en la sección Descripción. Utilizará este punto final para acceder a su aplicación.

Las solicitudes de usuario se recibirán a través del punto final del equilibrador de carga, que lo enrutará a la instancia configurada a través del grupo de destino. Si prueba varias solicitudes, sus solicitudes se cumplirán al azar con cualquier instancia.

Por lo tanto, hemos creado y configurado con éxito un equilibrador de carga de red utilizando la consola de administración de AWS.

Creación del equilibrador de carga de red utilizando AWS CLI

La consola de AWS es fácil de usar y administrar servicios y recursos en su cuenta, pero la mayoría de los profesionales de la industria prefieren la interfaz de línea de comandos. Es por eso que AWS ha presentado la solución de proporcionar CLI para sus usuarios, que se pueden configurar en cualquier entorno, ya sea Windows, Linux o Mac. Entonces, veamos cómo podemos crear un equilibrador de carga utilizando la interfaz de línea de comandos.

Entonces, después de haber configurado su CLI, simplemente ejecute el siguiente comando para crear un equilibrador de carga de red:

$: AWS Elbv2 create-load-balancer--name --Tipo de red -subnets

A continuación, debemos crear un grupo objetivo para este equilibrador de carga de red.

$: AWS Elbv2 Create-Target-Group-Nombre --Protocolo TCP --Port 80 --VPC-ID

Luego, necesitamos agregar objetivos a nuestro grupo de destino utilizando el siguiente comando:

$: AWS Elbv2 Registro-Targets--Target-Group-Arn --ID de objetivos =

Finalmente, como oyente, adjuntaremos nuestro grupo objetivo a nuestro equilibrador de carga.

$: AWS Elbv2 Create-Listener --Load-Balancer-Arn --Protocolo TCP --Port 80 --default -acts type = hacia adelante, TargetGrouparn =

Por lo tanto, hemos creado con éxito un equilibrador de carga de red y agregamos un grupo de destino como oyente al equilibrador de carga utilizando la interfaz de línea de comandos AWS.

Conclusión

El equilibrio de carga es fundamental para cualquier tipo de aplicación web, ya que esto ayuda a proporcionar una gratificación del usuario mediante una disponibilidad prometedora y un buen tiempo de respuesta. Reducen el tiempo de inactividad al proporcionar las verificaciones de salud necesarias, aliviar la implementación del grupo de autoscalización, enrutar el tráfico al servidor, proporcionando la menor latencia y enrutar el tráfico a otra zona de disponibilidad en caso de falla del sistema. Para manejar solicitudes masivas en nuestro servidor, podemos aumentar los recursos de nuestra instancia, como más CPU, memoria y más ancho de banda de red. Pero esto solo se puede lograr a un cierto nivel y no será exitoso y adecuado en muchos aspectos, como el costo, la confiabilidad y la escalabilidad. Así que definitivamente, tendremos que aplicar más servidores para nuestra aplicación. Solo un punto para recordar es que el balancer de carga elástico de AWS (ELB) es responsable solo de enrutar y distribuir las solicitudes del usuario. Esto no agregará ni eliminará servidores o instancias en su infraestructura. Usamos AWS Auto Scaling Group (ASG). Esperamos que hayas encontrado este artículo útil. Consulte los otros artículos de Sugerencia de Linux para obtener más consejos y tutoriales.