Ejercicio: Implementación de un conjunto de escalado en Azure Portal

Completado

En el escenario de ejemplo ha decidido usar un conjunto de escalado para ejecutar la aplicación web para la empresa de transportes. Con un conjunto de escalado, la empresa de transportes puede mantener tiempos de respuesta breves para los usuarios a medida que varíe la carga de trabajo.

La primera tarea consiste en crear un conjunto de escalado. Lo configurará para ejecutar un servidor web, en este caso nginx. Después de configurar correctamente el conjunto de escalado, implementará la aplicación web. Después, configurará un sondeo de mantenimiento que Azure usará para comprobar la disponibilidad de cada máquina virtual en el conjunto de escalado. Por último, probará el conjunto de escalado mediante el envío de solicitudes desde un explorador web.

Nota:

Este ejercicio es opcional. Si no tiene una cuenta de Azure, puede leer las instrucciones para entender cómo se usa la API REST para recuperar métricas.

Si quiere completar este ejercicio pero no tiene una suscripción de Azure o prefiere no usar una cuenta propia, cree una cuenta gratuita antes de empezar.

Implementación de un conjunto de escalado de máquinas virtuales

  1. Inicie sesión en Azure Portal y abra Azure Cloud Shell.

  2. En Cloud Shell, inicie el editor de código y cree un archivo llamado cloud-init.yaml.

    code cloud-init.yaml
    
  3. Agregue el texto siguiente al archivo:

    #cloud-config
    package_upgrade: true
    packages:
      - nginx
    write_files:
      - owner: www-data:www-data
      - path: /var/www/html/index.html
        content: |
            Hello world from Virtual Machine Scale Set !
    runcmd:
      - service nginx restart
    

    El archivo contiene la información de configuración para instalar nginx en las máquinas virtuales del conjunto de escalado.

  4. Presione Ctrl-S para guardar el archivo y, después, Ctrl-Q para cerrar el editor de código.

  5. Ejecute el comando siguiente para crear un grupo de recursos denominado scalesetrg para el conjunto de escalado:

    az group create --location eastus --name myResourceGroup
    
  6. Ejecute el comando siguiente para crear el conjunto de escalado de máquinas virtuales:

    az vmss create \
      --resource-group myResourceGroup \
      --name webServerScaleSet \
      --image Ubuntu2204 \
      --upgrade-policy-mode automatic \
      --custom-data cloud-init.yaml \
      --admin-username azureuser \
      --generate-ssh-keys
    

    De forma predeterminada, el nuevo conjunto de escalado de máquinas virtuales tiene dos instancias y un equilibrador de carga.

    Nota:

    La marca custom-data especifica que la configuración de la máquina virtual debe usar los valores del archivo cloud-init.yaml una vez creada la máquina virtual. Puede usar un archivo cloud-init para instalar más paquetes, configurar la seguridad y escribir en archivos después de instalar por primera vez la máquina.

    Para más información, vea Compatibilidad de cloud-init con máquinas virtuales en Azure.

Configuración del conjunto de escalado de máquinas virtuales

  1. Ejecute el comando siguiente para agregar un sondeo de mantenimiento al equilibrador de carga:

    az network lb probe create \
      --lb-name webServerScaleSetLB \
      --resource-group myResourceGroup \
      --name webServerHealth \
      --port 80 \
      --protocol Http \
      --path /
    

    El sondeo de mantenimiento hace ping al directorio raíz del sitio web mediante el puerto 80. Si el sitio web no responde, se considera que el servidor no está disponible. El equilibrador de carga no enrutará el tráfico al servidor.

  2. Ejecute el comando siguiente para configurar el equilibrador de carga de forma que enrute el tráfico HTTP a las instancias del conjunto de escalado:

    az network lb rule create \
      --resource-group myResourceGroup \
      --name webServerLoadBalancerRuleWeb \
      --lb-name webServerScaleSetLB \
      --probe-name webServerHealth \
      --backend-pool-name webServerScaleSetLBBEPool \
      --backend-port 80 \
      --frontend-ip-name loadBalancerFrontEnd \
      --frontend-port 80 \
      --protocol tcp
    

Prueba del conjunto de escalado de máquinas virtuales

  1. En Azure Portal, en la parte izquierda, seleccione Grupos de recursos>scalesetrg.

  2. Seleccione el conjunto de escalado de máquinas virtuales webServerScaleSet.

  3. En la página Información general, fíjese en la dirección IP pública del conjunto de escalado de máquinas virtuales.

    Captura de pantalla de Azure Portal en la que se muestra la página Información general del conjunto de escalado de máquinas virtuales.

  4. En Configuración, seleccione Instancias. Compruebe que el conjunto de escalado contiene dos máquinas virtuales en ejecución.

    Captura de pantalla de Azure Portal en la que se muestran las instancias del conjunto de escalado de máquinas virtuales.

  5. Seleccione una instancia y vaya a la pestaña Propiedades. Compruebe que las máquinas virtuales ejecutan Ubuntu Linux.

    Captura de pantalla de Azure Portal en la que se muestra el sistema operativo del conjunto de escalado de máquinas virtuales.

  6. En el explorador web, vaya a la dirección IP pública del conjunto de escalado. Confirme que aparezca el mensaje Hello World from Virtual Machine Scale Set !.

    Captura de pantalla de la aplicación web ejecutándose en un explorador web con el mensaje deseado.