Uso de balanceadores de carga compartidos (nivel de entrada)
Escenarios
Tiene una aplicación web, que a menudo necesita manejar tráfico pesado y se implementa en dos ECS para equilibrar la carga.
Puede crear un balanceador de carga para distribuir el tráfico uniformemente entre los dos ECS, lo que elimina los SPOF y hace que su aplicación esté más disponible.
Requisitos previos
Para garantizar las comunicaciones normales entre el balanceador de carga y los servidores backend, debe comprobar las reglas de grupo de seguridad y las reglas de ACL de red configuradas para los servidores backend.
Cuando los servidores backend reciben solicitudes del balanceador de carga, las direcciones IP de origen se traducen en 100.125.0.0/16.
- Las reglas de grupo de seguridad deben permitir el tráfico desde 100.125.0.0/16 a los servidores backend.
- Las reglas de ACL de red son opcionales para las subredes. Si se configuran reglas de ACL de red para la subred backend del balanceador de carga, las reglas de ACL de red deben permitir el tráfico desde la subred backend del balanceador de carga a los servidores backend.
Si Transfer Client IP Address está habilitado para los oyentes TCP o UDP, las reglas de ACL de red y las reglas de grupo de seguridad no tendrán efecto. Puede usar el control de acceso para limitar qué direcciones IP pueden acceder al oyente.
Creación de ECS
Los ECS se utilizan como servidores backend.
- Inicie sesión en la consola de gestión.
- En la esquina superior izquierda de la página, haga clic en y seleccione la región y el proyecto deseados.
- Pase el ratón sobre en la esquina superior izquierda para mostrar Service List y elija Compute > Elastic Cloud Server.
- Haga clic en Buy ECS, configure los parámetros y haga clic en Next.
La siguiente tabla enumera las especificaciones de los dos ECS.
Tabla 1 Especificaciones de ECS Concepto
Valor de ejemplo
Nombre
ECS01 and ECS02
Sistema operativo
CentOS 7.2 64bit
vCPUs
2
Memoria
4 GiB
Disco de sistema
40 GiB
Disco de datos
100 GiB
Ancho de banda
5 Mbit/s
- Envíe su solicitud.
Despliegue de la aplicación
Despliegue Nginx en los dos ECS y edite dos páginas HTML para que una página con el mensaje "Welcome to ELB test page one!" se devuelva cuando se acceda a ECS01, y la otra página con el mensaje "Welcome to ELB test page two!" se devuelve cuando se accede a ECS02.
- Inicie sesión en los ECS.
- Instalar e iniciar Nginx.
- Ejecute el comando wget para descargar el paquete de instalación de Nginx para su sistema operativo en uso. CentOS 7.6 se usa como ejemplo aquí.
wget http://nginx.org/packages/centos/7/noarch/RPMS/nginx-release-centos-7-0.el7.ngx.noarch.rpm
- Ejecute el siguiente comando para crear el repositorio Nginx yum:
rpm -ivh nginx-release-centos-7-0.el7.ngx.noarch.rpm
- Ejecute el siguiente comando para instalar Nginx:
yum -y install nginx
- Ejecute los siguientes comandos para iniciar Nginx y configurar la habilitación automática de Nginx al iniciar ECS:
systemctl start nginx systemctl enable nginx
- Ingrese http://EIP bound to the ECS en el cuadro de dirección de su navegador. Si se muestra la siguiente página, se ha instalado Nginx.
Figura 1 Nginx instalado correctamente
- Ejecute el comando wget para descargar el paquete de instalación de Nginx para su sistema operativo en uso. CentOS 7.6 se usa como ejemplo aquí.
- Modifique la página de HTML de ECS01.
Modifique el archivo index.html en el directorio root predeterminado de Nginx /usr/share/nginx/html para identificar el acceso a ECS01.
- Abra el archivo index.html.
vim /usr/share/nginx/html/index.html
- Pulse i para entrar en el modo de edición.
- Modifique el archivo index.html para que sea el siguiente:
... <body> <h1>Welcome to <strong>ELB</strong> test page one!</h1> <div class="content"> <p>This page is used to test the <strong>ELB</strong>!</p> <div class="alert"> <h2>ELB01</h2> <div class="content"> <p><strong>ELB test (page one)!</strong></p> <p><strong>ELB test (page one)!</strong></p> <p><strong>ELB test (page one)!</strong></p> </div> </div> </div> </body>
- Pulse Esc para salir del modo de edición. A continuación, escriba :wq para guardar la configuración y salir del archivo.
- Abra el archivo index.html.
- Modifique la página HTML de ECS02.
Modifique el archivo index.html en el directorio root predeterminado de Nginx /usr/share/nginx/html para identificar el acceso a ECS02.
- Abra el archivo index.html.
vim /usr/share/nginx/html/index.html
- Pulse i para entrar en el modo de edición.
- Modifique el archivo index.html para que sea el siguiente:
... <body> <h1>Welcome to <strong>ELB</strong> test page two!</h1> <div class="content"> <p>This page is used to test the <strong>ELB</strong>!</p> <div class="alert"> <h2>ELB02</h2> <div class="content"> <p><strong>ELB test (page two)!</strong></p> <p><strong>ELB test (page two)!</strong></p> <p><strong>ELB test (page two)!</strong></p> </div> </div> </div> </body>
- Pulse Esc para salir del modo de edición. A continuación, escriba :wq para guardar la configuración y salir del archivo.
- Abra el archivo index.html.
- Utilice su navegador para acceder a http://ECS01 EIP y http://ECS02 EIP para verificar que Nginx se ha desplegado.
Si se muestran las páginas HTML modificadas, se ha desplegado Nginx.
- Página de HTML de ECS01
Figura 2 Nginx desplegado correctamente en ECS01
- Página de HTML de ECS02
Figura 3 Nginx desplegado correctamente en ECS02
- Página de HTML de ECS01
Creación de un balanceador de carga
El balanceador de carga necesita una EIP para acceder a la aplicación desplegada en los ECS por Internet. Puede determinar si desea vincular una EIP al balanceador de carga en función de sus requisitos. Para obtener más información, consulte Equilibrio de carga en una red pública o privada.
- En la esquina superior izquierda de la página, haga clic en y seleccione la región y el proyecto deseados.
- Pase el ratón sobre en la esquina superior izquierda para mostrar Service List y elija Networking > Elastic Load Balance.
- Haga clic en Buy Elastic Load Balancer y, a continuación, configure los parámetros.
- Haga clic en Next.
- Confirme la configuración y envíe su solicitud.
- Vea el balanceador de carga recién creado en la lista de balanceadores de carga.
Adición de un oyente
Agregue un oyente al balanceador de carga creado. Cuando agregue el oyente, cree un grupo de servidores backend, configure una comprobación de estado y agregue los dos ECS al grupo de servidores backend creado.
- Pase el ratón sobre en la esquina superior izquierda para mostrar Service List y elija Networking > Elastic Load Balance.
- Busque el balanceador de carga creado (elb-01) y haga clic en su nombre.
- En Listeners, haga clic en Add Listener.
- Configure los parámetros de la siguiente manera:
- Name: Introduzca un nombre, por ejemplo, listener-HTTP.
- Frontend Protocol: Seleccione un protocolo, por ejemplo, HTTP.
- Frontend Port: Ingrese un puerto, por ejemplo, 80.
- Haga clic en Next: Configure Request Routing Policy, seleccione o cree un grupo backend y seleccione un algoritmo de equilibrio de carga.
- Backend Server Group: Seleccione Use existing o Create new.
Aquí creamos un grupo de servidores backend llamado server_group-ELB.
- Load Balancing Algorithm: Seleccione un algoritmo que el balanceador de carga utilizará para enrutar solicitudes, por ejemplo, Weighted round robin.
- Backend Server Group: Seleccione Use existing o Create new.
- Haga clic en Next: Add Backend Server y active la comprobación de estado.
Configure la comprobación de estado de la siguiente manera:
- Protocol: Seleccione un protocolo para que el balanceador de carga realice comprobaciones de estado en los servidores backend. Si el balanceador de carga utiliza TCP, HTTP o HTTPS para recibir solicitudes, el protocolo de comprobación de estado puede ser TCP o HTTP. Aquí usamos HTTP como ejemplo.
- Domain Name: Ingrese un nombre de dominio que se utilizará para las comprobaciones de estado, por ejemplo, www.example.com.
- Health Check Port: Ingrese un puerto para que el balanceador de carga realice comprobaciones de estado en servidores backend, por ejemplo, 80.
Si no especifica un puerto de comprobación de estado, el puerto backend se usará para las comprobaciones de estado de forma predeterminada. Si especifica un puerto, se utilizará para la comprobación de estado.
- Haga clic en Next: Confirm, confirme las configuraciones y haga clic en Submit.
- En la ficha Listeners, localice el oyente de destino. En la columna Default Backend Server Group, haga clic en View/Add Backend Server.
- En la ficha Backend Servers, haga clic en la ficha Backend Servers y haga clic en Add en la parte superior derecha.
- Seleccione los servidores que desea agregar, establezca el puerto de backend y haga clic en Finish.
- Servidores backend: seleccione ECS01 y ECS02.
- Puerto backend: configúrelo en 80. Los servidores backend usarán este puerto para comunicarse con el balanceador de carga.
Verificación del equilibrio de carga
Después de configurar el balanceador de carga, puede acceder al nombre de dominio para comprobar si los dos ECS son accesibles.
- Modifique el archivo C:\Windows\System32\drivers\etc\hosts en su PC para asignar el nombre de dominio al EIP del balanceador de carga.
Vea el balanceador de carga de EIP en la página Summary del balanceador de carga.Figura 5 Archivo hosts en su PC
- En la CLI de su PC, ejecute el siguiente comando para comprobar si el nombre de dominio está asignado al EIP del balanceador de carga:
Si se devuelven paquetes de datos, el nombre de dominio se ha asignado al EIP del balanceador de carga.
- Utilice su navegador para acceder a http://www.example.com. Si se muestra la página siguiente, el balanceador de carga ha enrutado la solicitud a ECS01.
Figura 6 Acceso a ECS01
- Utilice su navegador para acceder a http://www.example.com. Si se muestra la página siguiente, el balanceador de carga ha enrutado la solicitud a ECS02.
Figura 7 Acceso a ECS02