- Introducción
- Infraestructura de AWS y Relianoid
- Implementación de dos instancias de Relianoid en AWS Marketplace
- Configuración de la red para las instancias EC2 de Relianoid
- Habilitación de instancias EC2 de Relianoid con licencias temporales
- Configurar la IP virtual para el equilibrio de carga
- Configuración del servicio Relianoid Cluster en Amazon Web Services
- Configuración de un equilibrio de carga L4 simple para servicios web
- Agregar nuevas interfaces al Load Balancer
Introducción #
El siguiente artículo describe cómo configurar servicios avanzados de balanceo de carga con Relianoid Load Balancer para lograr alta disponibilidad en la infraestructura EC2 de Amazon Web Services . Describiremos el procedimiento para configurar un clúster de Relianoid y un perfil de balanceo de carga TCP para distribuir la carga de los servicios HTTP entre tres servidores web backend.
Infraestructura de AWS y Relianoid #
El siguiente diagrama describe la arquitectura que queremos implementar para el equilibrio de carga web con Relianoid Application Delivery Controller en AWS.
Es necesario implementar dos controladores de entrega de aplicaciones Relianoid. Esta plantilla está disponible en el mercado de Amazon Web Services, y cada controlador de entrega de aplicaciones Relianoid se configura en la misma VPC que los servidores backend web, como se muestra en el diagrama anterior con la subred 17.32.16.0./20.
Cada instancia de Relianoid ADC está configurada con una interfaz eth0 , y a cada instancia se le asigna una IP elástica . Además, se asigna una IP elástica adicional a una IP adicional a través de eth0 en la instancia ZLB1-prod , que se utilizará para fines de equilibrio de carga, como se describe a continuación:
Producto ZLB1 está asignado a 172.31.20.89 en eth0, esta instancia será accedida directamente por uno Elástico IP 34.225.30.206
Producto ZLB2 está asignado a 172.31.26.237 en eth0, esta instancia será accedida directamente por uno Elástico IP 54.161.240.226
Se asigna una IP adicional a ZLB1-prod y se configura en el balanceador de carga con el nombre eth0:vip1 y la IP 172.31.26.47 . Esta IP se utiliza para configurar un servicio de balanceo de carga y formar parte del servicio de clúster , por lo que solo funcionará en una de las instancias de Relianoid a la vez, la cual gestiona el rol ACTIVO en el clúster. Esta IP interna está asignada a una IP elástica, a la que acceden los clientes para conectarse al servicio web real publicado.
Finalmente , backend01 , backend02 y backend03 son las instancias EC2 con servidores web basados en Linux; esas instancias forman parte del servicio de equilibrio de carga al que se conecta el cliente cuando solicita http://54.144.190.17/.
Implementación de dos instancias de Relianoid en AWS Marketplace #
Implementemos dos balanceadores de carga Relianoid y configurémoslos como se describió anteriormente.
Dirígete a la sección de instancias EC2 y pulsa en Iniciar instancia.
1. Busque la AMI de Relianoid Load Balancer Enterprise Edition necesaria. Esta AMI se basa en un modelo de licencia BYOL (Traiga su propia licencia). La fase de evaluación es gratuita e incluye asistencia durante un mes; transcurrido este periodo, se requiere una licencia definitiva para su funcionamiento.
2. Elija un tipo de instancia . Seleccione aquí la instancia necesaria según los recursos que desee equilibrar. Una instancia t2.small es adecuada para empezar a trabajar con perfiles L4 , pero si desea utilizar perfiles HTTP , le recomendamos al menos una instancia t2.medium . Sin embargo, una instancia t2.micro es suficiente para realizar pruebas.
3. Configurar detalles de la instancia . Seleccione aquí la VPC que ejecuta las nuevas instancias de Relianoid. En este ejemplo de configuración, introduciremos las instancias EC2 de Relianoid en la misma VPC que los servidores backend web reales ya configurados.
4. Agregar almacenamiento . Por defecto, una instancia EC2 de Relianoid requiere al menos 12 GB de almacenamiento. Si desea activar los registros por defecto, le recomendamos aumentar este tamaño a al menos 20 GB. Relianoid no requiere acceso al disco, solo para guardar los registros, por lo que el tipo de volumen para uso general es una buena opción.
5. Añadir etiquetas . Configure aquí algunas etiquetas descriptivas si lo desea.
6. Configure el grupo de seguridad . Por defecto, Relianoid utiliza el puerto TCP 444 para la administración de la interfaz web HTTPS, el puerto 9999 para el demonio de sincronización de sesiones y el puerto TCP 22 en SSH para la administración de la línea de comandos y la agrupación en clústeres. Además, cada puerto virtual utilizado en los servicios virtuales del balanceador de carga deberá incluirse en su grupo de seguridad. Hemos configurado un grupo de seguridad para las instancias EC2 de Relianoid en un modo menos restrictivo, como se muestra a continuación:
TIPO = Todo el tráfico Protocolo = TODO Rango de puertos = Todo Fuente = 0.0.0.0/0 Descripción = Permitir todo de todos a todos
Este grupo de seguridad se crea con fines de prueba; puede optar por bloquear todos los puertos y permitir solo el uso para administración y equilibrio de carga.
Una vez que el asistente de configuración vuelva a la lista de instancias EC2, el nuevo dispositivo comenzará a desplegarse y se mostrará el estado " Iniciando ". A continuación, configure un nombre descriptivo en el campo "Nombre" ; en nuestro caso, nuestros balanceadores de carga desplegados en EC2 se llaman ZLB1-prod y ZLB2-prod.
Configuración de la red para las instancias EC2 de Relianoid #
Una vez que se hayan desplegado los dispositivos virtuales de Relianoid y los estados de instancia muestren el modo de ejecución , podemos proceder a configurar la red.
Haga clic con el botón derecho sobre el dispositivo ZLB1-prod y seleccione Redes > Administrar direcciones IP . En la ventana emergente Administrar direcciones IP , haga clic en Asignar nueva IP y luego en Sí, actualizar . El sistema asignará una nueva IP a eth0 en la misma VPC. Recuerde esta nueva IP; en nuestro ejemplo, será 172.31.26.47 . El sistema ha asignado una nueva IP que se utilizará para el balanceo de carga en el futuro servicio de clúster.
Dirígete a la sección Direcciones IP elásticas y asigna una nueva dirección IP elástica a cada instancia de Relianoid . Estas se utilizarán para fines de administración, no para el equilibrio de carga.
En la misma sección de IP elástica , asigne una nueva IP a ZLB1-prod , pero en este caso, elija la dirección IP privada 172.31.26.47 . Después de esta configuración, ZLB1-prod será accesible a través de web y ssh con la IP 34.225.30.206 , mientras que ZLB2-prod será accesible a través de los mismos servicios con la IP 54.161.240.226 y la IP elástica 54.144.190.17 asignada a la IP 172.31.26.47.
Habilitación de instancias EC2 de Relianoid con licencias temporales #
Una vez que se hayan configurado las IP elásticas, se podrá acceder a los balanceadores de carga virtuales de la siguiente manera:
Se podrá acceder a ZLB1-prod a través de https://34.225.30.206:444 usuario raíz y contraseña, la identificación de la instancia.
Se podrá acceder a ZLB1-prod a través de ssh en IP 34.225.30.226 con administrador de usuario y archivo de certificado privado, esto se configura en el momento de la implementación de EC2.
Se podrá acceder a ZLB2-prod a través de https://54.161.240.226:444 usuario raíz y contraseña, la identificación de la instancia.
Se podrá acceder a ZLB2-prod a través de ssh en IP 54.161.240.226 con administrador de usuario y archivo de certificado privado, esto se configura en el momento de la implementación de EC2.
Si considera cambiar el nombre de host antes de continuar, de ser así, reinicie la instancia EC2 para aplicar los cambios.
Una vez que acceda correctamente a la interfaz gráfica web, verá dos valores importantes: el nombre de host y la clave del certificado. Ambas informaciones son únicas para cada balanceador de carga y están relacionadas con la licencia de activación. Utilice esta información en la siguiente URL, tal como se describe: https://www.relianoid.com/activate-enterprise-edition-cloud-evaluation/
Una vez completado el formulario el sistema envía automáticamente la licencia al correo electrónico indicado. Cargue la licencia de activación PEM recibida a través de la GUI web en cada balanceador de carga; una vez hecho esto, la GUI web se desbloquea y todas las funciones están totalmente habilitadas y operativas.
Realice el mismo procedimiento de activación en ambos nodos ZLB1-prod y ZLB2-prod.
Configurar la IP virtual para el equilibrio de carga #
En el punto anterior, ya asignamos una IP adicional a eth0 172.31.26.47 en la instancia ZLB1-pro, y esta IP se ha asignado a una IP elástica 54.144.190.17 , ahora está pendiente hacer esta configuración en el balanceador de carga ZBL1-pro.
Acceda al balanceador de carga ZLB1-pro a través de la interfaz web utilizando su IP elástica https://34.225.30.206:444 . Una vez que haya iniciado sesión, vaya al menú de navegación Red > Interfaces virtuales > Crear interfaz virtual y realice la siguiente configuración:
Interfaz principal = eth0 172.31.26.47
*Como las instancias EC2 no saben nada sobre las IP elásticas, necesitamos configurar aquí la IP física de la instancia EC2 vinculada a la IP elástica pública utilizada para fines de equilibrio de carga 54.144.190.17
Nombre de la interfaz virtual = vip1
Dirección IP = 172.31.26.47
Pulse el botón Crear para aplicar la configuración.
Ahora se ha configurado una nueva IP, 172.31.26.47 , con el nombre eth0:vip1 en el balanceador de carga Relianoid EC2 ZLB1-pro, y se puede hacer ping a ella desde cualquier instancia EC2 en esta VPC.
Configuración del servicio Relianoid Cluster en Amazon Web Services #
El clúster Relianoid Load Balancer funciona en modo activo-pasivo con estado , lo que significa que los recursos del clúster están configurados en ambos nodos, pero solo están disponibles en el nodo ACTIVO . Cuando uno de estos nodos falla y se inicia la función en el otro miembro, es necesario volver a acceder a los recursos del clúster. Dado que las direcciones IP virtuales también son recursos del clúster, es necesario notificar a Amazon Web Services que la IP virtual configurada para el balanceo de carga (172.31.26.47) ahora funcionará a través de ZLB2-prod.
Para ello, el servicio Relianoid Cluster utiliza el cliente de AWS, que debe configurarse con permisos en el módulo EC2 para la gestión de interfaces. Por lo tanto, antes de iniciar el servicio Relianoid Cluster, debemos prepararlo. Así pues, configuremos una clave de AWS en su cuenta con permisos para gestionar direcciones IP en EC2, que podrá utilizar en la interfaz de línea de comandos de AWS.
Ve a la consola de Amazon https://console.aws.amazon.com/iam/ , luego en el menú de navegación elige Usuario . Haz clic en el botón Agregar usuario.
Configure un nombre de usuario descriptivo = aws-for-zlb
En Seleccionar tipo de acceso de AWS, elija Acceso programático y pulse el botón Siguiente: Permisos . Ahora, en la sección Establecer permisos , pulse en Crear grupo y, a continuación, en la nueva ventana, rellene el campo Nombre del grupo con un nombre descriptivo, por ejemplo, AmazonEC2 , y, por último, en el campo Filtrar políticas, busque y seleccione la política denominada AmazonEC2FullAccess , que otorga permisos para cambiar las IP asignadas entre las instancias EC2, entre otras.
Pulse en Siguiente: etiquetas y Siguiente: Revisar . Finalmente, pulse en Crear usuario , y la ventana final le mostrará el ID de clave de acceso y la clave de acceso secreta para este usuario; guárdelos para usarlos posteriormente.
Ahora estamos listos para configurar el servicio Relianoid Cluster, así que vaya al panel web en ZLB1-pro a través de la IP pública asignada https://34.225.30.206:444, sección Sistema > Cluster y complete el formulario siguiendo el ejemplo:
Credenciales de AWS : La clave de acceso y la clave secreta son los valores generados previamente. Seleccione aquí la región donde está implementado su controlador de entrega de aplicaciones Relianoid.
Configurar clúster :
IP local: seleccione la IP y la NIC de eth0.
IP remota: ingrese aquí la IP de eth0 en el nodo ZLB2-pro.
Contraseña del nodo remoto y Confirma contraseña: ingrese aquí la contraseña de root para ssh en el otro nodo, por defecto el ID de instancia de ZLB2-pro.
Haz clic en el botón Generar y espera unos segundos; mientras tanto, el nodo donde ejecutes la configuración asumirá el rol ACTIVO (ZLB1-pro) y el otro (ZLB2-pro) asumirá el rol PASIVO.
En este punto, Relianoid Cluster se ha configurado en AWS y está listo para funcionar. Configuremos nuestro primer servicio de equilibrio de carga en clúster.
Configuración de un equilibrio de carga L4 simple para servicios web #
Vaya a LSLB > Granjas > Crear granja con los siguientes parámetros.
Tenga en cuenta que la IP virtual utilizada, 172.31.26.47, es la IP virtual configurada previamente y un recurso del clúster al que siempre se podrá acceder desde el nodo ACTIVO . Pulse Crear y continuar.
Ahora, en la nueva ventana, configure la sección Global como se muestra a continuación:
Y por último, configure la sección Servicios como se describe:
Utilice la persistencia de IP con un tiempo de espera de 60 segundos por si necesita garantizar que la misma IP del cliente se conecte al mismo servidor backend durante un período determinado. Configure las comprobaciones de estado avanzadas con FarmGuardian . Utilice check_tcp como una comprobación de estado simple para verificar que el puerto TCP 80 del servidor backend esté abierto en cada servidor. A continuación, añada las IP y los puertos internos de los servidores backend donde se ejecutan los servicios web.
Ahora pruebe la conexión a la IP elástica http://54.144.190.17/ asignada a la IP interna 172.31.26.47, la conexión pasará a través del balanceador de carga usando eth0:vip1 y se reenviará a uno de los backends disponibles.
Ahora, para cambiar el rol ACTIVO en el clúster, por ejemplo, reiniciando el nodo con dicho rol, el otro asumirá el servicio virtual y se conectará nuevamente a la IP pública. Las conexiones de los clientes, tanto las actuales como las nuevas, se establecerán con el mismo servidor backend, pero esta vez a través del nuevo nodo ACTIVO , sin interrupciones para los clientes.
Agregar nuevas interfaces al Load Balancer #
Para equilibrar la carga o para cualquier otra necesidad, es posible configurar más interfaces en el balanceador de carga. Para ello, basta con seguir los pasos que AWS indica para añadir nuevas interfaces a una instancia EC2. Consulte el artículo de AWS para comprender mejor las mejores prácticas: https://docs.aws.amazon.com/AWSEC2/latest/WindowsGuide/best-practices-for-configuring-network-interfaces.html . Al añadir nuevas interfaces a la instancia EC2, Relianoid las detectará automáticamente, lo que le permitirá configurarlas según sus preferencias.
¡Disfrute del equilibrio de carga y la agrupación en clústeres avanzados en AWS con Relianoid!






