Contenido del curso

Microsoft Azure Fundamentos

Despliega múltiples VMs con Scale Sets

Resumen

Desplegar decenas de máquinas virtuales en Azure una por una es un dolor de cabeza. Por eso existe el Virtual Machine Scale Set, un recurso que permite orquestar la creación de varias VMs idénticas con un solo script de Bash, ahorrando tiempo y abriendo la puerta al escalado automático según demanda.

Qué es un Virtual Machine Scale Set y por qué importa

Un Virtual Machine Scale Set es un grupo de máquinas virtuales con propiedades idénticas que se despliegan y administran como una sola unidad. En lugar de repetir el comando az vm create veinte veces, defines cuántas instancias necesitas y Azure las genera en paralelo.

Esto resuelve un problema concreto: la orquestación. Cuando armas una arquitectura con red virtual, subred, IP pública, gateway y varias VMs, el orden importa. Un script bien escrito te asegura que cada recurso se cree justo después del que depende.

¿Qué hace diferente a un Scale Set frente a crear VMs sueltas? Te permite definir un solo template y multiplicarlo con el parámetro instanceCount, además de aplicar reglas de autoescalado horizontal sobre todo el grupo.

Cómo se estructura el script de despliegue paso a paso

Dentro de Visual Studio Code, en una carpeta llamada VMs, vive un archivo commands.sh que concentra toda la lógica. La clave es que las variables están adaptadas para correr en batch, así que si trabajas en una terminal de Windows necesitarás ajustes [01:05].

El script sigue una secuencia clara:

  • Crear el resource group con un nombre aleatorio tomado desde una variable, en la región East US.
  • Crear la virtual network reutilizando las mismas variables de nombre y ubicación.
  • Agregar una subnet asociada al parámetro vnetName dentro de esa red.
  • Generar una IP pública que servirá como punto de entrada.
  • Desplegar un Application Gateway que actúa como puerta única hacia los recursos internos.
  • Crear el Virtual Machine Scale Set con az vmss y dos instancias iniciales [04:30].
  • Instalar una extensión para que las VMs arranquen con IIS o un servidor web ya configurado.
  • Definir reglas de autoescalado basadas en uso de CPU.

Reutilizar variables en lugar de hardcodear nombres es lo que hace que este flujo sea mantenible. Cambias un valor y se propaga a toda la arquitectura.

Por qué se usa un Application Gateway frente al Scale Set

El Application Gateway funciona como una gran puerta de entrada. Tú entras por una sola IP pública y él decide a qué máquina virtual del Scale Set redirigirte. Es, en la práctica, un balanceador de carga o proxy que distribuye el tráfico sin que tengas que saber con cuál VM estás hablando.

Cuando abres la IP en un navegador y aparece Hello, from your web application, no tienes forma de saber si te respondió la instancia 1 o la 2. Y ese es justamente el punto.

Cómo funcionan las reglas de autoescalado en un Scale Set

Las reglas de autoescalado son lo que convierte a un Scale Set en una arquitectura inteligente. El script define dos condiciones basadas en CPU promedio:

  • Si el porcentaje de CPU supera el 70%, escala hasta tres instancias.
  • Si el porcentaje de CPU baja del 30%, reduce instancias.

Esto te da un sistema capaz de absorber picos de demanda y, al mismo tiempo, ahorrar dinero en periodos de baja actividad. Es escalado horizontal puro: más máquinas cuando hace falta, menos cuando no.

¿Cuándo conviene usar autoescalado por CPU? Cuando tu carga de trabajo es variable y no quieres pagar por instancias inactivas. Defines umbrales y Azure decide cuándo crecer o encoger el grupo.

Cómo extraer datos del despliegue con az show

A lo largo del script casi siempre se usa la acción create, pero al final aparece show. Esta acción devuelve el JSON completo de un recurso ya creado y permite extraer propiedades específicas.

En este caso se extraen dos datos clave:

  • La dirección IP pública para acceder al sitio.
  • El nombre del resource group, que se generó de forma aleatoria.

Sin show tendrías que ir al portal a copiar manualmente esos valores. Con él, todo queda dentro del flujo de comandos.

Cómo ejecutar el script completo desde la terminal

Una vez ubicado en la carpeta correcta con cd vms, basta con un comando para lanzar todo:

bash bash commands.sh

El proceso tarda unos minutos. Al terminar, en el portal de Azure aparecen el resource group, el Application Gateway, la IP pública y el Scale Set con sus dos instancias listas. Pegas la IP en el navegador y ahí está tu aplicación web respondiendo.

Esta es la diferencia real entre clickear en el portal y escribir un script: una arquitectura compleja queda resuelta en una sola línea ejecutable, replicable y versionable. ¿Cuántas instancias agregarías tú a tu primer Scale Set?