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

Completado

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

La primera tarea consiste en crear un conjunto de escalado. Lo configura para ejecutar un servidor web, en este caso nginx. Después de configurar el conjunto de escalado correctamente, implemente la aplicación web. Después, configure un sondeo de mantenimiento que Azure usa para comprobar la disponibilidad de cada máquina virtual (VM) en el conjunto de escalado. Por último, pruebe 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 la barra de herramientas de la parte superior de la ventana de Cloud Shell, seleccione Configuración>Ir a la versión clásica.

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

    code cloud-init.yaml
    
  4. 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.

  5. Seleccione Ctrl+S para guardar el archivo y, a continuación, Ctrl+Q para cerrar el editor de código.

  6. Ejecute el comando siguiente para crear un nuevo grupo de recursos para el conjunto de escalado:

    az group create --location eastus --name myResourceGroup
    
  7. 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 enruta 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 8080 \
      --frontend-ip-name loadBalancerFrontEnd \
      --frontend-port 8080 \
      --protocol tcp
    

Prueba del conjunto de escalado de máquinas virtuales

  1. En Azure Portal, en el menú lateral, seleccione Grupos de recursos>myResourceGroup.

  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. 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 página Propiedades. Compruebe que las máquinas virtuales se ejecutan en 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. Compruebe que aparece el mensaje Hello World from Virtual Machine Scale Set ! (¡Hola mundo del conjunto de escalado de máquinas virtuales!).

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