En esta ocasión vamos a utilizar otra de las poderosas características de Azure y es el
balanceo de carga nativo que incorpora, lo utilizaremos para balancear un sitio web que se encuentran en dos instancias de máquina virtual en Azure (IaaS).
En esencia lo que tendremos es un sitio web publicado hacia Internet, el cual será atendido por dos máquinas virtuales en Azure, una imagen vale más que mil palabras, a continuación muestro el diagrama de lo que vamos a implementar en este artículo.
Como se puede apreciar en la imagen, Azure incluye un balanceador de carga nativo, el cual podemos usar y no genera costo adicional alguno, todo el tráfico que reciba de los clientes web a través del puerto 80 (http) será distribuido entre las dos máquinas virtuales (VM1 y VM2) al puerto 80 de cada una de ellas. Claramente puedo tener las instancias de máquina virtual que quiera, para esta demostración utilizaré dos instancias. Ahora veamos el proceso.
Lo primero es crear las máquinas virtuales a través del portal de Azure, crearé dos máquinas.
Algo muy importante a tener en cuenta, es que las máquinas virtuales que deseemos balancear deben estar en el mismo Cloud Service, para esta demostración las máquinas VM1 y VM2 las he puesto en el mismo servicio en la nube: mvpconf
La siguiente imagen muestra las dos máquinas creadas.
Bien, ahora que han sido creadas, voy a instalar el rol de servidor web (IIS) en cada una de ellas. Entiendo que esto es algo que sabemos hacer y no detallaré el proceso en este artículo,
Una vez listo el rol de servidor web en cada máquina, desde el portal de Azure seleccionamos la primer máquina (VM1) y hacemos clic en Extremos en la parte superior.
Un extremo (Endpoint en inglés) es básicamente lo que conocemos como un puerto, si observamos en la siguiente imagen, ya vienen por defecto dos "extremos" (puertos), para RDP y PowerShell, así que simplemente lo que haremos es agregar el "extremo" (puerto) para el servicio web http, es decir el puerto 80
En las opciones de la parte inferior seleccionamos Agregar
En Agregar Extremo estará seleccionada la opción Agregar un extremo independiente hacemos clic en el símbolo de flecha en la parte inferior.
De la lista desplegable Nombre seleccionamos el protocolo, en este caso HTTP, automáticamente nos traerá el protocolo TCP y el puerto 80, tanto de manera privada como pública (recordemos que tenemos una IP pública mediante la cual publicaremos el servicio y una IP privada para cada máquina virtual), activamos la casilla Crear un conjunto de carga equlibrada y continuamos.
Ponemos un nombre al conjunto de carga equilibrada y dejamos las demás opciones por defecto, estas pueden ser cambiadas según sus propias necesidades.
Al final veremos el extremo con un conjunto de carga asociado.
Ahora nos pasamos a la VM2 y llevamos a cabo las mismas acciones
Agregamos un nuevo extremo
En esta ocasión en lugar de crear un nuevo extremo, seleccionamos Agregar un extremo a un conjunto de carga equilibrada y elegimos de la lista de desplegable el que recién creamos (LB-HTTP)
Elegimos un nombre, debí haber elegido HTTP para guardar uniformidad con el anterior, dejamos el resto de opciones como aparecen
Bien, de este modo ya tenemos listo nuestro balanceador de carga, ahora lo que voy hacer es realizar una modificación en cada sitio web para saber a cuál máquina me estoy conectando, para ello vamos al directorio wwwroot y editamos el archivo de imagen iis-85
Voy simplemente a poner un cuadro de texto con el nombre de cada máquina virtual, empecemos con VM1
Ahora editemos el mismo archivo en
VM2
Guardamos los cambios, y simplemente para probar nos abrimos la URL con la cual publicamos el servicio, a continuación la prueba desde el navegador.
Como podemos apreciar, nos ha respondido VM1, si recargamos la página varias veces (F5), podemos notar que de repente nos pasará a VM2, pero si queremos ser más agresivos podemos detener el servicio web en VM1 para obligar al balanceador a dirigirnos a VM2, para ello abrimos el administrador de tareas y finalizamos el proceso IIS Worker Process
Volvemos al navegador, presionamos F5, y veremos como se cambiará de forma transparente a VM2
Y bien, esto ha sido todo. Espero les sea de utilidad esta información.