Guida introduttiva: Creare un set di scalabilità di macchine virtuali con Azure PowerShellQuickstart: Create a virtual machine scale set with Azure PowerShell

Un set di scalabilità di macchine virtuali consente di distribuire e gestire un set di macchine virtuali identiche con scalabilità automatica.A virtual machine scale set allows you to deploy and manage a set of identical, autoscaling virtual machines. È possibile ridimensionare manualmente il numero di VM nel set di scalabilità o definire regole di scalabilità automatica in base all'uso delle risorse, ad esempio la CPU, alla richiesta di memoria o al traffico di rete.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 servizio Azure Load Balancer distribuisce quindi il traffico alle istanze di macchina virtuale nel set di scalabilità.An Azure load balancer then distributes traffic to the VM instances in the scale set. In questa guida introduttiva si crea un set di scalabilità di macchine virtuali e si distribuisce un'applicazione di esempio con Azure PowerShell.In this quickstart, you create a virtual machine scale set and deploy a sample application with Azure PowerShell.

Se non si ha una sottoscrizione di Azure, creare un account gratuito prima di iniziare.If you don't have an Azure subscription, create a free account before you begin.

Usare Azure Cloud ShellUse Azure Cloud Shell

Azure Cloud Shell è un ambiente di shell interattivo ospitato in Azure e usato tramite il browser.Azure hosts Azure Cloud Shell, an interactive shell environment that you can use through your browser. Cloud Shell consente di usare bash o PowerShell per interagire con i servizi di Azure.Cloud Shell lets you use either bash or PowerShell to work with Azure services. È possibile usare i comandi preinstallati di Cloud Shell per eseguire il codice contenuto in questo articolo senza dover installare strumenti nell'ambiente locale.You can use the Cloud Shell pre-installed commands to run the code in this article without having to install anything on your local environment.

Per avviare Azure Cloud Shell:To launch Azure Cloud Shell:

OpzioneOption Esempio/CollegamentoExample/Link
Selezionare Prova nell'angolo superiore destro di un blocco di codice.Select Try It in the upper-right corner of a code block. La selezione di Prova non comporta la copia automatica del codice in Cloud Shell.Selecting Try It doesn't automatically copy the code to Cloud Shell. Esempio di Prova per Azure Cloud Shell
Passare a https://shell.azure.com o selezionare il pulsante Avvia Cloud Shell per aprire Cloud Shell nel browser.Go to https://shell.azure.com or select the Launch Cloud Shell button to open Cloud Shell in your browser. <a href="https://shell.azure.com" title="Avvio di Azure Cloud Shell
Selezionare il pulsante Cloud Shell nella barra dei menu nell'angolo superiore destro del portale di Azure.Select the Cloud Shell button on the top-right menu bar in the Azure portal. Pulsante Cloud Shell nel portale di Azure

Per eseguire il codice di questo articolo in Azure Cloud Shell:To run the code in this article in Azure Cloud Shell:

  1. Avviare Cloud Shell.Launch Cloud Shell.
  2. Selezionare il pulsante Copia in un blocco di codice per copiare il codice.Select the Copy button on a code block to copy the code.
  3. Incollare il codice nella sessione di Cloud Shell premendo CTRL+MAIUSC+V in Windows e Linux o CMD+MAIUSC+V in macOS.Paste the code into the Cloud Shell session with Ctrl+Shift+V on Windows and Linux, or Cmd+Shift+V on macOS.
  4. Premere INVIO per eseguire il codice.Press Enter to run the code.

Creare un set di scalabilitàCreate a scale set

Creare un set di scalabilità di macchine virtuali con New-AzVmss.Create a virtual machine scale set with New-AzVmss. L'esempio seguente crea un set di scalabilità denominato myScaleSet che usa l'immagine della piattaforma Windows Server 2016 Datacenter.The following example creates a scale set named myScaleSet that uses the Windows Server 2016 Datacenter platform image. Vengono create automaticamente le risorse di rete di Azure per la rete virtuale, l'indirizzo IP pubblico e il bilanciamento del carico.The Azure network resources for virtual network, public IP address, and load balancer are automatically created. Quando richiesto, è possibile impostare le credenziali amministrative per le istanze di macchina virtuale nel set di scalabilità:When prompted, you can set your own administrative credentials for the VM instances in the scale set:

New-AzVmss `
  -ResourceGroupName "myResourceGroup" `
  -Location "EastUS" `
  -VMScaleSetName "myScaleSet" `
  -VirtualNetworkName "myVnet" `
  -SubnetName "mySubnet" `
  -PublicIpAddressName "myPublicIPAddress" `
  -LoadBalancerName "myLoadBalancer" `
  -UpgradePolicyMode "Automatic"

La creazione e la configurazione di tutte le macchine virtuali e risorse del set di scalabilità richiedono alcuni minuti.It takes a few minutes to create and configure all the scale set resources and VMs.

Distribuire l'applicazione di esempioDeploy sample application

Per testare il set di scalabilità, installare un'applicazione Web di base.To test your scale set, install a basic web application. Usare l'estensione script personalizzati di Azure per scaricare ed eseguire uno script che installa IIS nelle istanze di macchina virtuale.The Azure Custom Script Extension is used to download and run a script that installs IIS on the VM instances. Questa estensione è utile per la configurazione post-distribuzione, l'installazione di software o qualsiasi altra attività di configurazione o gestione.This extension is useful for post deployment configuration, software installation, or any other configuration / management task. Per altre informazioni, vedere Panoramica dell'estensione script personalizzata.For more information, see the Custom Script Extension overview.

Usare l'estensione script personalizzati per installare un server Web IIS di base.Use the Custom Script Extension to install a basic IIS web server. Applicare l'estensione di script personalizzati che installa IIS nel modo seguente:Apply the Custom Script Extension that installs IIS as follows:

# Define the script for your Custom Script Extension to run
$publicSettings = @{
    "fileUris" = (,"https://raw.githubusercontent.com/Azure-Samples/compute-automation-configurations/master/automate-iis.ps1");
    "commandToExecute" = "powershell -ExecutionPolicy Unrestricted -File automate-iis.ps1"
}

# Get information about the scale set
$vmss = Get-AzVmss `
            -ResourceGroupName "myResourceGroup" `
            -VMScaleSetName "myScaleSet"

# Use Custom Script Extension to install IIS and configure basic website
Add-AzVmssExtension -VirtualMachineScaleSet $vmss `
    -Name "customScript" `
    -Publisher "Microsoft.Compute" `
    -Type "CustomScriptExtension" `
    -TypeHandlerVersion 1.8 `
    -Setting $publicSettings

# Update the scale set and apply the Custom Script Extension to the VM instances
Update-AzVmss `
    -ResourceGroupName "myResourceGroup" `
    -Name "myScaleSet" `
    -VirtualMachineScaleSet $vmss

Consentire il traffico verso l'applicazioneAllow traffic to application

Per consentire l'accesso all'applicazione Web di base, creare un gruppo di sicurezza di rete con New-AzNetworkSecurityRuleConfig e New-AzNetworkSecurityGroup.To allow access to the basic web application, create a network security group with New-AzNetworkSecurityRuleConfig and New-AzNetworkSecurityGroup. Per altre informazioni, vedere Rete per i set di scalabilità di macchine virtuali.For more information, see Networking for Azure virtual machine scale sets.

# Get information about the scale set
$vmss = Get-AzVmss `
            -ResourceGroupName "myResourceGroup" `
            -VMScaleSetName "myScaleSet"

#Create a rule to allow traffic over port 80
$nsgFrontendRule = New-AzNetworkSecurityRuleConfig `
  -Name myFrontendNSGRule `
  -Protocol Tcp `
  -Direction Inbound `
  -Priority 200 `
  -SourceAddressPrefix * `
  -SourcePortRange * `
  -DestinationAddressPrefix * `
  -DestinationPortRange 80 `
  -Access Allow

#Create a network security group and associate it with the rule
$nsgFrontend = New-AzNetworkSecurityGroup `
  -ResourceGroupName  "myResourceGroup" `
  -Location EastUS `
  -Name myFrontendNSG `
  -SecurityRules $nsgFrontendRule

$vnet = Get-AzVirtualNetwork `
  -ResourceGroupName  "myResourceGroup" `
  -Name myVnet

$frontendSubnet = $vnet.Subnets[0]

$frontendSubnetConfig = Set-AzVirtualNetworkSubnetConfig `
  -VirtualNetwork $vnet `
  -Name mySubnet `
  -AddressPrefix $frontendSubnet.AddressPrefix `
  -NetworkSecurityGroup $nsgFrontend

Set-AzVirtualNetwork -VirtualNetwork $vnet

# Update the scale set and apply the Custom Script Extension to the VM instances
Update-AzVmss `
    -ResourceGroupName "myResourceGroup" `
    -Name "myScaleSet" `
    -VirtualMachineScaleSet $vmss

Testare il set di scalabilitàTest your scale set

Per vedere il set di scalabilità in azione, accedere all'applicazione Web di esempio in un Web browser.To see your scale set in action, access the sample web application in a web browser. Ottenere l'indirizzo IP pubblico del servizio di bilanciamento del carico con Get-AzPublicIpAddress.Get the public IP address of your load balancer with Get-AzPublicIpAddress. L'esempio seguente mostra l'indirizzo IP creato nel gruppo di risorse myResourceGroup:The following example displays the IP address created in the myResourceGroup resource group:

Get-AzPublicIpAddress -ResourceGroupName "myResourceGroup" | Select IpAddress

Immettere l'indirizzo IP pubblico del servizio di bilanciamento del carico in un Web browser.Enter the public IP address of the load balancer in to a web browser. Il servizio di bilanciamento del carico distribuisce il traffico a una delle istanze di macchina virtuale, come illustrato nell'esempio seguente:The load balancer distributes traffic to one of your VM instances, as shown in the following example:

Esecuzione del sito IIS

Pulire le risorseClean up resources

Quando non sono più necessari, è possibile rimuovere il gruppo di risorse, il set di scalabilità e tutte le risorse correlate con Remove-AzResourceGroup, come illustrato di seguito.When no longer needed, you can use the Remove-AzResourceGroup to remove the resource group, scale set, and all related resources as follows. Il parametro -Force conferma che si desidera eliminare le risorse senza un prompt aggiuntivo a tale scopo.The -Force parameter confirms that you wish to delete the resources without an additional prompt to do so. Il parametro -AsJob restituisce il controllo al prompt senza attendere il completamento dell'operazione.The -AsJob parameter returns control to the prompt without waiting for the operation to complete.

Remove-AzResourceGroup -Name "myResourceGroup" -Force -AsJob

Passaggi successiviNext steps

In questa guida introduttiva è stato creato un set di scalabilità di base ed è stata usata l'estensione script personalizzati per installare un server Web IIS di base nelle istanze di macchina virtuale.In this quickstart, you created a basic scale set and used the Custom Script Extension to install a basic IIS web server on the VM instances. Per altre informazioni, passare all'esercitazione su come creare e gestire i set di scalabilità di macchine virtuali di Azure.To learn more, continue to the tutorial for how to create and manage Azure virtual machine scale sets.