Búsqueda de sitios web

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


En esta página

  1. Resumen de esta guía
  2. Configuración de instancias EC2
  3. Configuración del grupo objetivo
  4. Registro de instancias EC2 en los grupos de destino
  5. Creación del balanceador de carga de aplicaciones
  6. Agregar reglas de reenvío basadas en host
  7. Registrar el dominio en Route 53
  8. Verificando la configuración...
  9. Conclusión

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 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. 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.

Descripción general 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 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? Inicie sesión para continuar...

En otro servidor tenemos un directorio de 'registro' y un archivo index.html dentro 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':

  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 control de salud: 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' por defecto. Agregue etiquetas si las necesita (opcional). Haga clic en Siguiente para continuar.

Registro de instancias EC2 para 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'

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 6. Los pasos opcionales se pueden omitir. Ahora revise el resumen y presione el botón 'Crear balanceador de carga':

Adición de reglas de reenvío basadas en host

Paso 1. Ahora ve de nuevo a la página Equilibradores de carga y encuentra tu 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 Tipo de regla y coloque su nombre de host o nombre de dominio ('www.signin.tecofers.com ' en nuestro caso) en el campo de texto correspondiente a la etiqueta 'es'.

Paso 5. 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 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.

Registrando el dominio en Ruta 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:

Dominio: subdominio correspondiente a tu zona alojada.

Tipo de registro: Seleccione un tipo aquí.

Valorar/Enrutar el tráfico a:

  1. Seleccione el alias de la aplicación y el balanceador de carga clásico
  2. Seleccione la región donde está el balanceador de carga
  3. Seleccione el equilibrador de carga de destino.

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

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.

Artículos relacionados: