GNU/Linux >> Tutoriales Linux >  >> Linux

Cómo configurar el enrutamiento basado en host en el balanceador de carga de aplicaciones de AWS

En AWS, ELB o Elastic Load Balancing es un concepto en el que los servidores se pueden agregar o liberar según la demanda de nuestra aplicación. El tráfico entrante de una aplicación se distribuye entre varios objetivos. Estos objetivos pueden ser instancias EC2, contenedores y direcciones IP en una o varias zonas de disponibilidad. Los tipos admitidos 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. Balanceador 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. Balanceadores 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. Balanceador de carga de puerta de enlace: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. Balanceador de carga clásico:CLB es un balanceador de carga heredado de AWS que se utiliza para equilibrar la 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.

Resumen de esta guía


En este tutorial, configuraremos el enrutamiento basado en rutas para Application Load Balancer en AWS. Vamos a utilizar una cuenta de usuario de IAM con privilegios limitados necesarios para esta tarea. Contamos con los siguientes recursos para este experimento:

  1. Dos zonas de disponibilidad, cada una de las cuales contiene al menos una instancia EC2.
  2. Una VPC tiene 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. Instala un servidor web en cada instancia y permite 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 de Amazon Linux EC2 con apache Httpd instalado en ambas. En un servidor tenemos un directorio de 'inicio de sesión' y un archivo index.html dentro con el contenido:“¿Bienvenido usuario? Inicia sesión para continuar..."

En otro servidor tenemos un directorio de 'registro' y un archivo index.html dentro con el contenido:“¿Usuario nuevo? 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).

Configurar el 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:

  1. Elija un tipo de objetivo:seleccione "Instancias" aquí.
  2. Nombre del grupo objetivo:asigne un nombre adecuado al grupo objetivo ('Iniciar sesión' en nuestro caso).
  3. Protocolo:HTTP
  4. Puerto:80
  5. VPC:seleccione su nombre de VPC aquí.
  6. Versión del protocolo:Mantener la seleccionada por defecto.(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 salud' a su valor predeterminado. Agregue etiquetas si las necesita (opcional). Haga clic en 'Siguiente' para continuar.

Registro de instancias EC2 en los grupos objetivo

Paso 3. 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'


La instancia seleccionada anteriormente aparecerá en "Revisar objetivos". Ahora haga clic en 'Crear grupo objetivo'.


En la siguiente ventana, vuelva a hacer clic en 'continuar'. Ahora repita el mismo procedimiento para otro grupo objetivo y asígnele el nombre "Registrarse". Use otra instancia (en otra zona de disponibilidad) con este grupo objetivo y use una ruta de verificación de estado diferente ('/registro' en nuestro caso):



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:


Paso 2. Asigne un nombre adecuado (aquí 'Mi-Ruta-ALB') a su equilibrador de carga Mantenga el esquema predeterminado ('Orientado a Internet'), seleccione el tipo de dirección IP como IPv4



Paso 3. En la sección Mapeo de red, seleccione la VPC de destino y en En la sección Asignaciones, seleccione las dos zonas de disponibilidad que contienen sus objetivos a las que el balanceador de carga enrutará el tráfico.


Paso 4. Configure los grupos de seguridad para el balanceador de carga y permita su puerto de destino (puerto 80 en nuestro caso) para escuchar en:


Paso 5. Seleccione un oyente (HTTP en nuestro caso) e ingrese un puerto para escuchar o elija quedarse con el puerto predeterminado 80 para solicitudes HTTP. En la acción Predeterminada, seleccione el destino "Iniciar sesión" para la columna "Reenviar a":



Paso 6. Los pasos opcionales se pueden omitir. Ahora revise el resumen y presione el botón 'Crear balanceador de carga':

Agregar reglas de reenvío basadas en host

Paso 1. Ahora vaya de nuevo a la página 'Load Balancers' y encuentre su balanceador de carga de destino aquí:


Paso 2. Una vez que el estado del ALB cambie a Activo, procederemos con las Reglas de reenvío. Haga clic en el nombre del Load Balancer y luego vaya a la pestaña Listeners

Paso 3. Haga clic en 'Ver/Editar reglas' en la columna 'Reglas' y luego haga clic en el símbolo '+' seguido de 'Insertar regla':




Paso 4. En la columna 'SI (todas coinciden), haga clic en la flecha desplegable '+ Agregar condición' y seleccione 'Host' como el tipo de regla y coloque su hostname o nombre de dominio ('www.signin.tecofers.com' en nuestro caso) en el campo de texto correspondiente a la etiqueta 'is'.

Paso 5. En la columna "Entonces", haga clic en la flecha desplegable "+Agregar acción" y seleccione "Reenviar a" como acción. Aquí seleccione el grupo objetivo 'Iniciar sesión'.
Repita los pasos 2 y 3 anteriores para el grupo objetivo 'Registrarse' con nombre de host o nombre de dominio ('www.signup.tecofers.com' en nuestro caso). Después de guardar las reglas, tendremos dos reglas:

La última regla es para la acción predeterminada si no se cumplen las dos condiciones anteriores.

Registrar el dominio en Route 53

Para registrar el host/dominios para el enrutamiento basado en host a través de Internet, debemos agregar el nombre DNS de sus instancias EC2 correspondientes con su nombre de host/dominio dentro de Route 53 .

Paso 1. Abra el panel de control de Route 53 desde la consola de administración y haga clic en 'Crear zona alojada':


Paso 2. En la página de configuración de la zona alojada, ingrese el nombre de dominio y seleccione el tipo como ' Zona alojada pública' y seleccione 'Crear zona alojada':


Paso 3. En la nueva página, haga clic en 'Crear registro':


Paso 4. En la nueva página, haga clic en la etiqueta 'Cambiar a asistente' y seleccione Opción 'Enrutamiento simple'


Paso 5. Aquí haga clic en 'Definir registro simple'


Paso 6. Ingrese varios detalles para este registro:

Dominio:subdominio correspondiente a su zona alojada.

Tipo de registro:Seleccione un tipo aquí.

Valorar/Dirigir el tráfico a:

  1. Seleccione 'Alias ​​para la aplicación y Balanceador de carga clásico'
  2. Seleccione la región donde está el balanceador de carga
  3. Seleccione el equilibrador de carga de destino.




Finalmente presione 'Definir registro simple'.

El registro anterior ahora aparecerá como se muestra aquí:


Repita los pasos anteriores para el otro host.

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) Nombre de host para el objetivo 'Registrarse'



2) Nombre de host para el objetivo de 'Iniciar sesión'





Conclusión

Felicitaciones, finalmente hemos configurado un escenario de trabajo para el enrutamiento basado en host en el balanceador de carga de aplicaciones de AWS.


Linux
  1. Cómo configurar NGINX como equilibrador de carga TCP/UDP en Linux

  2. Cómo configurar el balanceador de carga HAProxy

  3. Cómo instalar y configurar el balanceador de carga HAProxy en Debian 11

  4. Cómo instalar y configurar el balanceador de carga HAProxy en Rocky Linux/Alma Linux 8

  5. Cómo instalar y configurar el balanceador de carga HAProxy en Ubuntu 20.04

Cómo lanzar RHEL 8 desde Amazon EC2 en la nube de AWS

Cómo configurar HAProxy como Load Balancer para Nginx en CentOS 7

¿Cómo funciona un balanceador de carga? ¿Qué es el equilibrio de carga?

Cómo configurar Load Balancing con NGINX en Jelastic Cloud

Configurar un sitio web de WordPress con equilibrio de carga en AWS EC2 - Parte 2

¿Cómo borro las credenciales en AWS Configure?