Microsoft Azure – Balanceo de cargas entre servidores Windows

 

El balanceador de carga de Azure proporciona una alta disponibilidad y un elevado rendimiento de red para sus aplicaciones. Se trata de un balanceador de carga de nivel 4 (TCP y UDP) que distribuye el tráfico entrante entre las instancias de servicio. En este artículo se describirá cómo balancear la carga entre servidores Windows Server 2016 en Microsoft Azure.

A continuación se detalla la arquitectura de este ejercicio y los diferentes recursos de Azure utilizados.

A continuación se describe el paso a paso de cómo se configura el balanceador de carga entre servidores Windows Server 2016.

Nos logueamos en el portal de Azure y seleccionamos la suscripción con la que queremos trabajar.

Para configurar el balanceo de cargas en Microsoft Azure, necesitamos de los siguientes recursos:

  • Resource Group o Grupo de Recursos.
  • Storage Account o Cuenta de Almacenamiento.
  • Virtual Network o Red Virtual
  • Network Security Group o Grupo de Seguridad de Red (Opcional)
  • Virtual Machine o Máquina Virtual (Mínimo 2, en este caso con SO Windows Server 2016)
  • External Load Balance o Balanceador de Carga Externo.

RESOURCE GROUP

1.   Lo primero que hacemos es crear el Grupo de Recursos para agrupar los recursos anteriormente mencionados que se crearan para la solución.

2.   A continuación se adicionan los siguientes valores a los parámetros:

         *  Resource group name: solution-rg
         *  Subscription: Seleccionar una suscripción activa (debe ser la misma para todos los recursos que se vaya a crear para esta solución)
         *  Resource group location: South Central US

STORAGE ACCOUNT

1.   Creamos una cuenta de almacenamiento, donde se almacenarán los discos de las máquinas virtual que se crearán posteriormente.

 

2.   A continuación se adicionan los siguientes valores a los parámetros:

         *  Name: solutionstg
         *  Deployment Model: Resource manager
         *  Account Kind: General purpose
         *  Performance: Standard
         *  Replication: Locally-redundant storage (LRS)
         *  Storage service encryption: Disabled
         *  Subscription: Seleccionar una suscripción activa (debe ser la misma para todos los recursos que se vaya a crear para esta solución)
         *  Resource group: solution-rg
         *  Location: South Central US

VIRTUAL NETWORK

1. Creamos una red virtual para poder conectar las máquinas posteriormente.

2. A continuación se adicionan los siguientes valores a los parámetros:

         *  Name: solution-vn
         *  Address space: 10.2.0.0/27 (Se puede cambiar)
         *  Subnet name: solution-vn-front
         *  Subnet address range: 10.2.0.0/28 (Se puede cambiar)
         *  Subscription: Seleccionar una suscripción activa (debe ser la misma para todos los recursos que se vaya a crear para esta solución)
         *  Resource group: solution-rg
         *  Location: South Central US

NETWORK SECURITY GROUP (OPCIONAL)

1. Creamos un grupo de seguridad de red que va a contener la lista de reglas de control de acceso que permiten o deniegan el tráfico de red a sus instancias de máquina virtual en una red virtual.

2. A continuación se adicionan los siguientes valores a los parámetros:

         *  Name: solution-ngs-front
         *  Subscription: Seleccionar una suscripción activa (debe ser la misma para todos los recursos que se vaya a crear para esta solución)
         *  Resource group: solution-rg
         *  Location: South Central US

3. Abrimos el Grupo de seguridad de red creado en al anterior paso.

4. Damos click en la opción de Inbound Security Rules para adicionar las reglas de entrada.

5. Damos click en Add (Regla RDP)

         *  Name: RDP
         *  Priority: 1000
         *  Source: Any
         *  Service: RDP
         *  Action: Allow

6. Damos click en Add (Regla HTTP)

         *  Name: HTTP
         *  Priority: 1010
         *  Source: Any
         *  Service: HTTP
         *  Action: Allow

7. Damos click en Add (Regla HTTPS)

         *  Name: HTTPS
         *  Priority: 1020
         *  Source: Any
         *  Service: HTTPS
         *  Action: Allow

 

VIRTUAL MACHINE 1

1. Creamos la primera Máquina Virtual con Windows Server 2016 Datacenter.

2. A continuación se adicionan los siguientes valores a los parámetros:

    Paso 1 – Configuración básica

         *  Name: solution-vm1
         *  VM disk type: HDD
         *  User name: johnbulla
         *  Password: Escribir una contraseña
         *  Confirm password: Escribir nuevamente la contraseña
         *  Subscription: Seleccionar una suscripción activa (debe ser la misma para todos los recursos que se vaya a crear para esta solución)
         *  Resource group: solution-rg
         *  Location: South Central US

    Paso 2 – Seleccionar el tamaño de la máquina virtual

         *  Size: DS1_V2 Standard

 

    Paso 3 – Configuración opcional de características

        *  Storage: solutionstg
         *  Network: solution-vn
         *  Subnet: solution-vn-front
         *  Public IP: Crear una nueva
                  *  Name: solution-vm1-ip
                  *  Assignment: Static
        *  Network Security Group: solution-ngs-front
        *  Extensions: No extensions
         *  Availability Set: Crear uno nuevo
                  *  Name: solution-vm-av
         *  Boot Diagnostics: Enabled
         *  Guest OS Diagnostics: Enabled
         *  Diagnostics Storage: solutionstg

    Paso 4 – Resumen

VIRTUAL MACHINE 2

1. Creamos la segunda Máquina Virtual con Windows Server 2016 Datacenter.

2. A continuación se adicionan los siguientes valores a los parámetros:

    Paso 1 – Configuración básica

         *  Name: solution-vm2
         *  VM disk type: HDD
         *  User name: johnbulla
         *  Password: Escribir una contraseña
         *  Confirm password: Escribir nuevamente la contraseña
         *  Subscription: Seleccionar una suscripción activa (debe ser la misma para todos los recursos que se vaya a crear para esta solución)
         *  Resource group: solution-rg
         *  Location: South Central US

    Paso 2 – Seleccionar el tamaño de la máquina virtual

         *  Size: DS1_V2 Standard

      Paso 3 – Configuración opcional de características

        *  Storage: solutionstg
         *  Network: solution-vn
         *  Subnet: solution-vn-front
         *  Public IP: Crear una nueva
                  *  Name: solution-vm2-ip
                  *  Assignment: Static
        *  Network Security Group: solution-ngs-front
        *  Extensions: No extensions
         *  Availability Set: solution-vm-av
         *  Boot Diagnostics: Enabled
         *  Guest OS Diagnostics: Enabled
         *  Diagnostics Storage: solutionstg

    Paso 4 – Resumen

LOAD BALANCE – EXTERNAL

1. Creamos el balanceador de cargas externo.

2.   A continuación se adicionan los siguientes valores a los parámetros:

         *  Name: solution-elb
         *  Type: Public
         *  Public IP: Crear una nueva
                         *  Name: solution-elb-ip
                         *  Assignment: Static
         *  Subscrption: Seleccionar una suscripción activa (debe ser la misma para todos los recursos que se vaya a crear para esta   solución)
        *  Resource group: solution-rg
        *  Location: South Central US

 

SETUP A BACKEND POOL

El backend pool es la opción del balanceador de cargas donde configuramos que máquinas virtuales deseamos balancear.

1. Abrimos el balanceador de carga externo (solution-elb) creado en el paso anterior.

2. Damos click en la opción de Backend pools del blade Settings

3. Damos click en Add

        *  Name: solution-elb-bp
         *  + Add a virtual machine
                    *  Availability Set: solution_vm_av
                    *  Virtual Machine: solution_vm1 y solution_vm2

4. Cerrar el blade de Backend pools

SETUP A HEALTH CHECK PROBE

Ahora puede crear una sonda para verificar el estado de salud de su aplicación. En el ejemplo siguiente, crea una sonda para un servicio web que escucha en HTTP / 80.

1. Abrimos el balanceador de carga externo (solution-elb).

2. Damos click en la opción de Probes del blade Settings

3. Damos click en Add

 

         *  Name: solution-elb-pr
         *  Protocol: HTTP
         *  Port: 80
         *  Path: /
         *  Interval: 5
         *  Unhealthy threshold: 2

 

5. Cerrar el blade de Probes

SETUP LOAD BALANCING RULES

Una vez creada la sonda, podemos crear una regla de equilibrio de carga relacionada con la salud de la sonda, es decir si un servidor no es saludable, el equilibrador de carga no enviará tráfico a este servidor.

1. Abrimos el balanceador de carga externo (solution-elb).

2. Damos click en la opción de Loas Balancing rules del blade Settings

3. Damos click en Add

         *  Name: HTTP
         *  Frontend IP address:  IP Address Load Balancer
         *  Protocol: TCP
         *  Port: 80
         *  Backend port: 80
         *  Backend pool: solution-elb-bp (2 virtual machines)
         *  Health probe: solution-elb-pr (HTTP:80)
         *  Session persistence: None
         *  Idle timeout (minutes): 4
         *  Floating IP (direct server return): Disabled

5. Cerrar el blade de Probes

INTALACIÓN Y CONFIGURACIÓN DE IIS – solution-vm1 y solution-vm2

Una vez creada la regla de balanceo procedemos a entrar a cada una de las máquinas virtuales creadas e instalar y configurar Internet Information Services (IIS). 

1. Nos conectamos a la máquina virtual loadbalance-vm1

2. Abrimos el Server Manager

3. Click en la opción de Add roles and features para iniciar el wizard.

4. En la página Before You Begin –> Damos click en el botón Next

5. En la página Select installation type –> Seleccionamos la opción Role-based or feature-based installation -> Damos click en el botón Next

6. En la página Select destination Server -> Seleccionamos la opción Select a server from the server pool –> seleccionamos la máquina virtual solution-vm1 -> Damos click en el botón Next

7. En la página Select server roles –> Seleccionamos el Role Web Server IIS ->Damos click en el botón Next

8. En la página features -> Damos click en el botón Next

9. En la página Web Server Role (IIS) -> Damos click en el botón Next

10. En la página Select role services -> Damos click en el botón Next

11. En la página Confirmation –> chequeamos la opción Restart the destination server automatically if required -> Damos click en el botón Install

12. Cuando la instalación es exitosa damos click en el botón Close

13. Abrimos el explorador de Windows en la ruta C:\inetpub\wwwroot

14. Damos click derecho en el archivo iisstart.html –> Damos click en la opción Abrir con y seleccionamos Notepad

15. Adicionamos la siguiente línea después de la etiqueta Body

<h1>Virtual Machine 1</h1>

16. Guardamos el archivo.

Nota: Repetir este proceso en la máquina virtual loadbalance-vm2

PRUEBA DEL BALANCEADOR DE CARGA

1. Abrimos un Browser

2. En el campo de la URL digitamos la dirección IP pública de la máquina virtual – solution-vm1

3. En el campo de la URL digitamos la dirección IP pública de la máquina virtual – solution-vm2

4. En el campo de la URL digitamos la dirección IP pública del balanceador de carga – solution-elb

5. Ahora en el Browser damos click en la tecla F5, donde notaremos como se balancea la carga entre los servidores.

 

Espero este artículo sea de utilidad.

Saludos