Inicio rápido: Creación de un conjunto de escalado de máquinas virtuales con la CLI de AzureQuickstart: Create a virtual machine scale set with the Azure CLI

El conjunto de escalado de máquinas virtuales le permite implementar y administrar un conjunto de máquinas virtuales de escalado automático.A virtual machine scale set allows you to deploy and manage a set of auto-scaling virtual machines. Puede escalar el número de máquinas virtuales del conjunto de escalado manualmente o definir reglas de escalado automático según el uso de recursos tales como la CPU, la demanda de memoria o el tráfico de red.You can scale the number of VMs in the scale set manually, or define rules to autoscale based on resource usage like CPU, memory demand, or network traffic. Un equilibrador de carga de Azure distribuirá el tráfico a las instancias de máquina virtual del conjunto de escalado.An Azure load balancer then distributes traffic to the VM instances in the scale set. En esta guía de inicio rápido creará un conjunto de escalado de máquinas virtuales e implementará una aplicación de ejemplo con la CLI de Azure.In this quickstart, you create a virtual machine scale set and deploy a sample application with the Azure CLI.

Si no tiene una suscripción a Azure, cree una cuenta gratuita antes de empezar.If you don't have an Azure subscription, create a free account before you begin.

Requisitos previosPrerequisites

  • Use Azure Cloud Shell con el entorno de Bash.Use Azure Cloud Shell using the bash environment.

    Insertar inicioEmbed launch

  • Si lo prefiere, instale la CLI de Azure para ejecutar sus comandos de referencia.If you prefer, install the Azure CLI to run CLI reference commands.

    • Si usa una instalación local, inicie sesión con la CLI de Azure mediante el comando az login.If you're using a local install, sign in with Azure CLI by using the az login command. Siga los pasos que se muestran en el terminal para completar el proceso de autenticación.To finish the authentication process, follow the steps displayed in your terminal. Para ver otras opciones de inicio de sesión, consulte Inicio de sesión con la CLI de Azure.See Sign in with Azure CLI for additional sign-in options.
    • Cuando se le solicite, instale las extensiones de la CLI de Azure la primera vez que la use.When you're prompted, install Azure CLI extensions on first use. Para más información, consulte Uso de extensiones con la CLI de Azure.For more information about extensions, see Use extensions with Azure CLI.
    • Ejecute az version para buscar cuál es la versión y las bibliotecas dependientes que están instaladas.Run az version to find the version and dependent libraries that are installed. Para realizar la actualización a la versión más reciente, ejecute az upgrade.To upgrade to the latest version, run az upgrade.
  • En este artículo se necesita la versión 2.0.29 o posterior de la CLI de Azure.This article requires version 2.0.29 or later of the Azure CLI. Si usa Azure Cloud Shell, ya está instalada la versión más reciente.If using Azure Cloud Shell, the latest version is already installed.

Creación de un conjunto de escaladoCreate a scale set

Antes de poder crear un conjunto de escalado, cree un grupo de recursos con az group create.Before you can create a scale set, create a resource group with az group create. En el ejemplo siguiente, se crea un grupo de recursos denominado myResourceGroup en la ubicación eastus:The following example creates a resource group named myResourceGroup in the eastus location:

az group create --name myResourceGroup --location eastus

Ahora, cree un conjunto de escalado de máquinas virtuales con az vmss create.Now create a virtual machine scale set with az vmss create. En el ejemplo siguiente se crea un conjunto de escalado llamado myScaleSet que se establece para actualizarse automáticamente a medida que se aplican los cambios, y se generan claves SSH si no existen en ~/.ssh/id_rsa.The following example creates a scale set named myScaleSet that is set to automatically update as changes are applied, and generates SSH keys if they do not exist in ~/.ssh/id_rsa. Estas claves SSH se usan si necesita iniciar sesión en las instancias de máquina virtual.These SSH keys are used if you need to log in to the VM instances. Para usar un conjunto existente de claves SSH, utilice en su lugar el parámetro --ssh-key-value y especifique la ubicación de las claves.To use an existing set of SSH keys, instead use the --ssh-key-value parameter and specify the location of your keys.

az vmss create \
  --resource-group myResourceGroup \
  --name myScaleSet \
  --image UbuntuLTS \
  --upgrade-policy-mode automatic \
  --admin-username azureuser \
  --generate-ssh-keys

Se tardan unos minutos en crear y configurar todos los recursos de conjunto de escalado y máquinas virtuales.It takes a few minutes to create and configure all the scale set resources and VMs.

Implementación de una aplicación de ejemploDeploy sample application

Para probar el conjunto de escalado, instale una aplicación web básica.To test your scale set, install a basic web application. La extensión de script personalizado de Azure se usa para descargar y ejecutar un script que instala una aplicación en las instancias de máquina virtual.The Azure Custom Script Extension is used to download and run a script that installs an application on the VM instances. Esta extensión es útil para la configuración posterior a la implementación, la instalación de software o cualquier otra tarea de configuración o administración.This extension is useful for post deployment configuration, software installation, or any other configuration / management task. Para obtener más información, consulte Información general de la extensión de script personalizado.For more information, see the Custom Script Extension overview.

Use la extensión de script personalizado para instalar un servidor web de NGINX básico.Use the Custom Script Extension to install a basic NGINX web server. Aplique la extensión de script personalizado que instala NGINX con az vmss extension set como se indica a continuación:Apply the Custom Script Extension that installs NGINX with az vmss extension set as follows:

az vmss extension set \
  --publisher Microsoft.Azure.Extensions \
  --version 2.0 \
  --name CustomScript \
  --resource-group myResourceGroup \
  --vmss-name myScaleSet \
  --settings '{"fileUris":["https://raw.githubusercontent.com/Azure-Samples/compute-automation-configurations/master/automate_nginx.sh"],"commandToExecute":"./automate_nginx.sh"}'

Permitir tráfico a la aplicaciónAllow traffic to application

Cuando se creó el conjunto de escalado, se implementó automáticamente un equilibrador de carga de Azure.When the scale set was created, an Azure load balancer was automatically deployed. El equilibrador de carga distribuye el tráfico a las instancias de máquina virtual del conjunto de escalado.The load balancer distributes traffic to the VM instances in the scale set. Para permitir que el tráfico llegue a la aplicación web de ejemplo, cree una regla del equilibrador de carga con az network lb rule create.To allow traffic to reach the sample web application, create a load balancer rule with az network lb rule create. En el ejemplo siguiente, se crea una regla denominada myLoadBalancerRuleWeb:The following example creates a rule named myLoadBalancerRuleWeb:

az network lb rule create \
  --resource-group myResourceGroup \
  --name myLoadBalancerRuleWeb \
  --lb-name myScaleSetLB \
  --backend-pool-name myScaleSetLBBEPool \
  --backend-port 80 \
  --frontend-ip-name loadBalancerFrontEnd \
  --frontend-port 80 \
  --protocol tcp

Prueba del conjunto de escaladoTest your scale set

Para ver el conjunto de escalado en acción, acceda a la aplicación web de ejemplo en un explorador web.To see your scale set in action, access the sample web application in a web browser. Obtenga la dirección IP pública del equilibrador de carga con az network public-ip show.Obtain the public IP address of your load balancer with az network public-ip show. En el ejemplo siguiente se obtiene la dirección IP de myLoadBalancerRuleWeb que se ha creado como parte del conjunto de escalado:The following example obtains the IP address for myScaleSetLBPublicIP created as part of the scale set:

az network public-ip show \
  --resource-group myResourceGroup \
  --name myScaleSetLBPublicIP \
  --query '[ipAddress]' \
  --output tsv

Escriba la dirección IP pública del equilibrador de carga en un explorador web.Enter the public IP address of the load balancer in to a web browser. El equilibrador de carga distribuye el tráfico a una de las instancias de VM, como se muestra en el ejemplo siguiente:The load balancer distributes traffic to one of your VM instances, as shown in the following example:

Página web predeterminada de NGINX

Limpieza de recursosClean up resources

Cuando ya no lo necesite, puede usar el comando az group delete para quitar el grupo de recursos, el conjunto de escalado y todos los recursos relacionados como se indica a continuación.When no longer needed, you can use az group delete to remove the resource group, scale set, and all related resources as follows. El parámetro --no-wait devuelve el control a la petición de confirmación sin esperar a que finalice la operación.The --no-wait parameter returns control to the prompt without waiting for the operation to complete. El parámetro --yes confirma que desea eliminar los recursos sin pedir confirmación adicional.The --yes parameter confirms that you wish to delete the resources without an additional prompt to do so.

az group delete --name myResourceGroup --yes --no-wait

Pasos siguientesNext steps

En esta guía de inicio rápido, creó un conjunto de escalado básico y usó la extensión de script personalizado para instalar un servidor web NGINX básico en las instancias de máquina virtual.In this quickstart, you created a basic scale set and used the Custom Script Extension to install a basic NGINX web server on the VM instances. Para más información, continúe con el tutorial sobre cómo crear y administrar conjuntos de escalado de máquinas virtuales de Azure.To learn more, continue to the tutorial for how to create and manage Azure virtual machine scale sets.