Avvio rapido: Creare un servizio di bilanciamento del carico pubblico per bilanciare il carico delle macchine virtuali con l'interfaccia della riga di comando di Azure
Iniziare a usare Azure Load Balancer con l'interfaccia della riga di comando di Azure per creare un servizio di bilanciamento del carico pubblico e due macchine virtuali. Oltre a queste risorse, si distribuiscono Azure Bastion, gateway NAT, una rete virtuale e le subnet necessarie.
Se non si ha una sottoscrizione di Azure, creare un account Azure gratuito prima di iniziare.
Prerequisiti
Usare l'ambiente Bash in Azure Cloud Shell. Per altre informazioni, vedere Avvio rapido su Bash in Azure Cloud Shell.
Se si preferisce eseguire i comandi di riferimento dell'interfaccia della riga di comando in locale, installare l'interfaccia della riga di comando di Azure. Per l'esecuzione in Windows o macOS, è consigliabile eseguire l'interfaccia della riga di comando di Azure in un contenitore Docker. Per altre informazioni, vedere Come eseguire l'interfaccia della riga di comando di Azure in un contenitore Docker.
Se si usa un'installazione locale, accedere all'interfaccia della riga di comando di Azure con il comando az login. Per completare il processo di autenticazione, seguire la procedura visualizzata nel terminale. Per altre opzioni di accesso, vedere Accedere tramite l'interfaccia della riga di comando di Azure.
Quando richiesto, al primo utilizzo installare l'estensione dell'interfaccia della riga di comando di Azure. Per altre informazioni sulle estensioni, vedere Usare le estensioni con l'interfaccia della riga di comando di Azure.
Eseguire az version per trovare la versione e le librerie dipendenti installate. Per eseguire l'aggiornamento alla versione più recente, eseguire az upgrade.
- Questa guida di avvio rapido richiede l'interfaccia della riga di comando di Azure versione 2.0.28 o successiva. Se si usa Azure Cloud Shell, la versione più recente è già installata.
Creare un gruppo di risorse
Un gruppo di risorse di Azure è un contenitore logico in cui le risorse di Azure vengono distribuite e gestite.
Come prima cosa creare con az group create un gruppo di risorse:
az group create \
--name CreatePubLBQS-rg \
--location eastus
Creare una rete virtuale
Prima di distribuire le macchine virtuali e testare il bilanciamento del carico, creare la rete virtuale e la subnet di supporto.
Creare una rete virtuale usando az network vnet create. La rete virtuale e la subnet contengono le risorse distribuite più avanti in questo articolo.
az network vnet create \
--resource-group CreatePubLBQS-rg \
--location eastus \
--name myVNet \
--address-prefixes 10.1.0.0/16 \
--subnet-name myBackendSubnet \
--subnet-prefixes 10.1.0.0/24
Creare un indirizzo IP pubblico
Per accedere all'app Web in Internet, assegnare un indirizzo IP pubblico al servizio di bilanciamento del carico.
Usare az network public-ip create per creare l'indirizzo IP pubblico per il front-end del servizio di bilanciamento del carico.
az network public-ip create \
--resource-group CreatePubLBQS-rg \
--name myPublicIP \
--sku Standard \
--zone 1 2 3
Per creare invece un indirizzo IP pubblico di zona nella Zona 1, usare il comando seguente:
az network public-ip create \
--resource-group CreatePubLBQS-rg \
--name myPublicIP \
--sku Standard \
--zone 1
Creare un servizio di bilanciamento del carico
Questa sezione descrive dettagliatamente come creare e configurare i componenti seguenti del servizio di bilanciamento del carico:
Un pool IP front-end che riceve il traffico di rete in ingresso sul bilanciamento del carico
Un pool IP back-end a cui il pool front-end invia il traffico di rete con carico bilanciato
Un probe di integrità che determina l'integrità delle istanze delle macchine virtuali back-end
Una regola di bilanciamento del carico che definisce come verrà distribuito il traffico alle macchine virtuali
Creare la risorsa di bilanciamento del carico
Con az network lb create creare un servizio di bilanciamento del carico pubblico:
az network lb create \
--resource-group CreatePubLBQS-rg \
--name myLoadBalancer \
--sku Standard \
--public-ip-address myPublicIP \
--frontend-ip-name myFrontEnd \
--backend-pool-name myBackEndPool
Se l'indirizzo IP pubblico creato è di zona, è necessario definire la zona specificata durante la creazione del servizio di bilanciamento del carico pubblico.
az network lb create \
--resource-group CreatePubLBQS-rg \
--name myLoadBalancer \
--sku Standard \
--public-ip-address myPublicIP \
--frontend-ip-name myFrontEnd \
--public-ip-zone 1 \
--backend-pool-name myBackEndPool
Creare il probe di integrità
Un probe di integrità controlla tutte le istanze di macchina virtuale per verificare che possano inviare il traffico di rete.
Una macchina virtuale con un controllo probe non riuscito viene rimossa dal servizio di bilanciamento del carico. La macchina virtuale viene nuovamente aggiunta al servizio di bilanciamento del carico quando il problema viene risolto.
Con az network lb probe create creare un probe di integrità:
az network lb probe create \
--resource-group CreatePubLBQS-rg \
--lb-name myLoadBalancer \
--name myHealthProbe \
--protocol tcp \
--port 80
Creare la regola di bilanciamento del carico
Una regola di bilanciamento del carico definisce:
La configurazione IP front-end per il traffico in ingresso
Il pool IP back-end in cui ricevere il traffico
La porta di origine e destinazione richiesta
Con az network lb rule create creare una regola di bilanciamento del carico:
az network lb rule create \
--resource-group CreatePubLBQS-rg \
--lb-name myLoadBalancer \
--name myHTTPRule \
--protocol tcp \
--frontend-port 80 \
--backend-port 80 \
--frontend-ip-name myFrontEnd \
--backend-pool-name myBackEndPool \
--probe-name myHealthProbe \
--disable-outbound-snat true \
--idle-timeout 15 \
--enable-tcp-reset true
Creare un gruppo di sicurezza di rete
Per un servizio di bilanciamento del carico standard, le macchine virtuali nel pool back-end devono avere interfacce di rete appartenenti a un gruppo di sicurezza di rete.
Usare az network nsg create per creare il gruppo di sicurezza di rete:
az network nsg create \
--resource-group CreatePubLBQS-rg \
--name myNSG
Creare una regola del gruppo di sicurezza di rete
Con az network nsg rule create creare una regola del gruppo di sicurezza di rete:
az network nsg rule create \
--resource-group CreatePubLBQS-rg \
--nsg-name myNSG \
--name myNSGRuleHTTP \
--protocol '*' \
--direction inbound \
--source-address-prefix '*' \
--source-port-range '*' \
--destination-address-prefix '*' \
--destination-port-range 80 \
--access allow \
--priority 200
Creare un host bastion
In questa sezione vengono create le risorse per Azure Bastion. Azure Bastion viene usato per gestire in modo sicuro le macchine virtuali nel pool back-end del servizio di bilanciamento del carico.
Importante
La tariffa oraria inizia dal momento in cui viene distribuito Bastion, a prescindere dall'utilizzo dei dati in uscita. Per altre informazioni, vedere Prezzi e SKU. Se si distribuisce Bastion come parte di un'esercitazione o di un test, è consigliabile eliminare questa risorsa dopo averla usata.
Creare un indirizzo IP pubblico
Usare az network public-ip create per creare un indirizzo IP pubblico per l'host bastion. L'indirizzo IP pubblico viene usato dall'host bastion per l'accesso sicuro alle risorse della macchina virtuale.
az network public-ip create \
--resource-group CreatePubLBQS-rg \
--name myBastionIP \
--sku Standard \
--zone 1 2 3
Creare una subnet bastion
Usare az network vnet subnet create per creare una subnet bastion. La subnet bastion viene usata dall'host bastion per accedere alla rete virtuale.
az network vnet subnet create \
--resource-group CreatePubLBQS-rg \
--name AzureBastionSubnet \
--vnet-name myVNet \
--address-prefixes 10.1.1.0/27
Creare un host bastion
Usare az network bastion create per creare un host bastion. L'host bastion viene usato per connettersi in modo sicuro alle risorse della macchina virtuale create più avanti in questo articolo.
az network bastion create \
--resource-group CreatePubLBQS-rg \
--name myBastionHost \
--public-ip-address myBastionIP \
--vnet-name myVNet \
--location eastus
La distribuzione dell'host Azure Bastion può richiedere qualche minuto.
Creare i server back-end
In questa sezione verranno creati:
Due interfacce di rete per le macchine virtuali
Due macchine virtuali da usare come server back-end per il bilanciamento del carico
Creare le interfacce di rete per le macchine virtuali
Creare due interfacce di rete con il comando az network nic create:
array=(myNicVM1 myNicVM2)
for vmnic in "${array[@]}"
do
az network nic create \
--resource-group CreatePubLBQS-rg \
--name $vmnic \
--vnet-name myVNet \
--subnet myBackEndSubnet \
--network-security-group myNSG
done
Creare macchine virtuali
Con il comando az vm create creare le macchine virtuali:
az vm create \
--resource-group CreatePubLBQS-rg \
--name myVM1 \
--nics myNicVM1 \
--image win2019datacenter \
--admin-username azureuser \
--zone 1 \
--no-wait
az vm create \
--resource-group CreatePubLBQS-rg \
--name myVM2 \
--nics myNicVM2 \
--image win2019datacenter \
--admin-username azureuser \
--zone 2 \
--no-wait
La distribuzione delle macchine virtuali potrebbe richiedere alcuni minuti. È possibile continuare con i passaggi successivi durante la creazione delle macchine virtuali.
Nota
Azure fornisce un IP di accesso in uscita predefinito per le macchine virtuali a cui non è stato assegnato un indirizzo IP pubblico o che si trovano nel pool back-end di un servizio del bilanciamento del carico di base di Azure. Il meccanismo dell'IP di accesso in uscita predefinito fornisce un IP in uscita non configurabile.
L'IP di accesso in uscita predefinito è disabilitato quando si verifica uno degli eventi seguenti:
- Alla macchina virtuale viene assegnato un indirizzo IP pubblico.
- La macchina virtuale è posizionata nel pool back-end di un servizio di bilanciamento del carico standard, con o senza regole in uscita.
- Una risorsa del gateway NAT di Azure viene assegnata alla subnet della macchina virtuale.
Le macchine virtuali create usando set di scalabilità di macchine virtuali in modalità di orchestrazione flessibile non hanno l'accesso in uscita predefinito.
Per altre informazioni sulle connessioni in uscita in Azure, vedere Accesso in uscita predefinito in Azure e Uso di Source Network Address Translation (SNAT) per le connessioni in uscita.
Aggiungere le macchine virtuali al pool back-end di bilanciamento del carico
Aggiungere le macchine virtuali al pool back-end con az network nic ip-config address-pool add:
array=(myNicVM1 myNicVM2)
for vmnic in "${array[@]}"
do
az network nic ip-config address-pool add \
--address-pool myBackendPool \
--ip-config-name ipconfig1 \
--nic-name $vmnic \
--resource-group CreatePubLBQS-rg \
--lb-name myLoadBalancer
done
Creare il gateway NAT
Per fornire l'accesso a Internet in uscita per le risorse nel pool back-end, creare un gateway NAT.
Creare un indirizzo IP pubblico
Usare az network public-ip create per creare un singolo indirizzo IP per la connettività in uscita.
az network public-ip create \
--resource-group CreatePubLBQS-rg \
--name myNATgatewayIP \
--sku Standard \
--zone 1 2 3
Per creare invece un indirizzo IP pubblico con ridondanza della Zona 1, usare il comando seguente:
az network public-ip create \
--resource-group CreatePubLBQS-rg \
--name myNATgatewayIP \
--sku Standard \
--zone 1
Creare una risorsa gateway NAT
Usare az network nat gateway create per creare la risorsa gateway NAT. L'indirizzo IP pubblico creato nel passaggio precedente è associato al gateway NAT.
az network nat gateway create \
--resource-group CreatePubLBQS-rg \
--name myNATgateway \
--public-ip-addresses myNATgatewayIP \
--idle-timeout 10
Associare il gateway NAT alla subnet
Configurare la subnet di origine nella rete virtuale per usare una risorsa gateway NAT specifica con az network vnet subnet update.
az network vnet subnet update \
--resource-group CreatePubLBQS-rg \
--vnet-name myVNet \
--name myBackendSubnet \
--nat-gateway myNATgateway
Installare IIS
Usare az vm extension set per installare IIS nelle macchine virtuali e impostare il sito Web predefinito sul nome computer.
array=(myVM1 myVM2)
for vm in "${array[@]}"
do
az vm extension set \
--publisher Microsoft.Compute \
--version 1.8 \
--name CustomScriptExtension \
--vm-name $vm \
--resource-group CreatePubLBQS-rg \
--settings '{"commandToExecute":"powershell Add-WindowsFeature Web-Server; powershell Add-Content -Path \"C:\\inetpub\\wwwroot\\Default.htm\" -Value $($env:computername)"}'
done
Testare il servizio di bilanciamento del carico
Per ottenere l'indirizzo IP pubblico del servizio di bilanciamento del carico, usare il comando az network public-ip show.
Copiare l'indirizzo IP pubblico e quindi incollarlo nella barra degli indirizzi del browser.
az network public-ip show \
--resource-group CreatePubLBQS-rg \
--name myPublicIP \
--query ipAddress \
--output tsv
Pulire le risorse
Quando non sono più necessari, rimuovere il gruppo di risorse, il servizio di bilanciamento del carico e tutte le risorse correlate tramite il comando az group delete.
az group delete \
--name CreatePubLBQS-rg
Passaggi successivi
In questo avvio rapido:
È stato creato un servizio di bilanciamento del carico standard pubblico.
Due macchine virtuali collegate
Sono stati configurati la regola del traffico di bilanciamento del carico e il probe di integrità
È stato testato il bilanciamento del carico
Per altre informazioni su Azure Load Balancer, passare a: