Cómo configurar el enrutamiento basado en rutas en un balanceador de carga de aplicaciones de AWS
En esta página
- Resumen de esta guía
- Configuración de instancias EC2
- Configuración del grupo objetivo
- Registro de instancias EC2 en los grupos de destino
- Creación del balanceador de carga de aplicaciones
- Agregar reglas de reenvío basadas en rutas
- Verificando la configuración...
- Conclusión
En AWS, ELB y Elastic Load Balancing existe un concepto en el que los servidores se pueden agregar o liberar según la demanda de nuestra aplicación y el tráfico entrante de una aplicación se distribuye entre múltiples objetivos. Estos objetivos pueden ser instancias EC2, contenedores y direcciones IP en una o varias zonas de disponibilidad. Los tipos compatibles de AWS Elastic Load Balancers son Application Load Balancers (ALB), Network Load Balancers (NLB), Gateway Load Balancers (recientemente lanzados) y Classic Load Balancers. Estos balanceadores de carga tienen diferentes configuraciones, por ejemplo,
1. Equilibrador de carga de aplicaciones: funciona distribuyendo automáticamente el tráfico de aplicaciones entrantes entre dos o más instancias EC2. Podemos definir reglas de enrutamiento según el contenido de la solicitud (enrutamiento basado en contenido). Es un equilibrador de carga de capa 7.
2. Equilibradores de carga de red: NLB utiliza datos de protocolo IP (TCP y UDP) para enrutar conexiones a recursos de AWS como EC2, microservicios y contenedores. Es un equilibrador de carga de capa 4.
3. Gateway Load Balancer: se utilizan con dispositivos virtuales de terceros, como firewalls NextGen (NGFW), IPS, IDS, etc., que se ejecutan en instancias EC2. Funciona colocando una sola puerta de enlace para el tráfico de múltiples dispositivos virtuales y estos múltiples dispositivos virtuales se pueden ampliar o reducir según la demanda. Esto es bueno para la estabilidad de la red. Es un balanceador de carga de capa 3 (Puerta de enlace) más capa 4 (Equilibrio de carga).
4. Equilibrador de carga clásico: CLB es un equilibrador de carga heredado de AWS que se utiliza para el equilibrio de carga en varias instancias de EC2. Se recomienda para aplicaciones diseñadas dentro de la red EC2-Classic. Es un equilibrador de carga de capa 4/7. AWS recomienda evitar este balanceador de carga.
Descripción general de esta guía
En este tutorial, configuraremos el enrutamiento basado en rutas para un balanceador de carga de aplicaciones en AWS. Vamos a utilizar una cuenta de usuario de IAM para esta tarea. Tenemos los siguientes recursos para esta configuración:
1. Dos zonas de disponibilidad, cada una de las cuales contiene al menos una instancia EC2.
2. Una VPC que tenga como mínimo una subred pública en cada una de las dos zonas de disponibilidad anteriores. Esta subred pública se usará para configurar el balanceador de carga.
3. Instale un servidor web en cada instancia y permita el acceso al puerto 80 en estas instancias mediante el grupo de seguridad.
Configuración de instancias EC2
Para esta guía, hemos configurado dos instancias Amazon Linux EC2 con el servidor web Apache Httpd instalado en ambas. En un servidor tenemos un directorio de 'inicio de sesión' que contiene un archivo index.html con el contenido: \¿Bienvenido usuario? Inicie sesión para continuar...
En otro servidor tenemos un directorio de registro que contiene un archivo index.html con el contenido: \¿Nuevo usuario? Regístrese primero...
Tanto el directorio de inicio de sesión como el de registro se encuentran dentro del directorio raíz(/var/www/html)
Configuración del grupo objetivo
Paso 1. Para enrutar la solicitud, primero crearemos dos grupos objetivo, uno para cada servidor. Abra la consola de EC2 y, en el panel lateral izquierdo, busque y seleccione Grupos de destino (se encuentra en Equilibrio de carga).
Paso 2. En la nueva página, haga clic en el botón 'Crear grupo objetivo':
Paso 3. Ahora estamos en la página Especificar detalles del grupo. En la configuración básica, haga lo siguiente:
- Elija un tipo de objetivo: seleccione Instancias aquí.
- Nombre del grupo objetivo: asigne un nombre adecuado al grupo objetivo (Iniciar sesión en nuestro caso).
- Protocolo: HTTP
- Puerto: 80
- VPC: seleccione su nombre de VPC aquí.
- Versión del protocolo: mantenga la predeterminada seleccionada. (HTTP1)
En la configuración de Comprobaciones de estado:
- Protocolo de verificación de estado: HTTP
- Ruta de verificación de estado: 'Ruta que desea usar'('/iniciar sesión' en nuestro caso)
- Mantenga la 'Configuración avanzada de verificación de estado' en su valor predeterminado. Agregue etiquetas si las necesita (opcional). Haga clic en Siguiente para continuar.
Registro de instancias EC2 para los grupos objetivo
Paso 1. Ahora agregue una de las instancias EC2 a los grupos objetivo anteriores. Seleccione una instancia y luego haga clic en el botón 'Incluir como pendiente a continuación'
Paso 2. La instancia seleccionada anteriormente aparecerá en Revisar objetivos. Ahora haga clic en 'Crear grupo objetivo'.
Creación del balanceador de carga de aplicaciones
Paso 1. Desde la consola EC2, diríjase a Load Balancers y haga clic en el botón Create Load Balancer y luego seleccione 'Application Load Balancer' que se muestra en la nueva página:
Adición de reglas de reenvío basadas en rutas
Paso 1. Una vez que el estado del ALB cambie a Activo, procederemos con las Reglas de reenvío. Haga clic en el nombre de Load Balancer y luego vaya a la pestaña Listeners.
Paso 2. Haga clic en 'Ver/Editar reglas' en la columna 'Reglas' y luego haga clic en el símbolo '+' seguido de 'Insertar regla':
Paso 3. En la columna 'SI (todas coinciden), haga clic en la flecha desplegable '+ Agregar condición' y seleccione 'Ruta' como tipo de regla y coloque '/iniciar sesión*' en el campo de texto correspondiente a la etiqueta 'es' .
Paso 4. En la columna Entonces, haga clic en la flecha desplegable +Agregar acción y seleccione Reenviar a como la acción. Aquí seleccione el grupo objetivo 'Iniciar sesión'.
Repita los pasos 2 y 3 anteriores para el grupo objetivo 'Registrarse' con la ruta como '/registrarse*'. Después de guardar las reglas, tendremos dos reglas:
Verificando la configuración...
Para verificar si todo funciona como se esperaba, abra un navegador web y pegue el DNS del balanceador de carga y agréguelo con:
1) Ruta del grupo objetivo 'Registrarse': /registrar
2) Ruta del grupo objetivo 'Iniciar sesión': /iniciar sesión
Conclusión
Felicitaciones, finalmente hemos configurado un escenario de trabajo para el enrutamiento basado en rutas en el balanceador de carga de aplicaciones de AWS.