Guida introduttiva: Creare un servizio di bilanciamento del carico pubblico per bilanciare il carico delle macchine virtuali usando interfaccia della riga di comando di Azure

Iniziare a usare Azure Load Balancer usando 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.

Diagramma delle risorse distribuite per un bilanciamento del carico standard pubblico.

Se non si ha un account Azure, creare un account gratuito prima di iniziare.

Prerequisiti

  • Questo 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 Azure è un contenitore logico in cui si distribuiscono e si gestiscono le risorse Azure.

Creare un gruppo di risorse usando az group create:

  az group create \
    --name load-balancer-cli-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 load-balancer-cli-rg \
    --location eastus \
    --name lb-vnet \
    --address-prefixes 10.1.0.0/16 \
    --subnet-name backend-subnet \
    --subnet-prefixes 10.1.0.0/24

Creare un indirizzo IP pubblico

Per accedere alla tua applicazione web su Internet, è necessario disporre di un indirizzo IP pubblico per il 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 load-balancer-cli-rg \
    --name lb-frontend-ip \
    --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 load-balancer-cli-rg \
    --name lb-frontend-ip \
    --sku Standard \
    --zone 1

Creare un servizio di bilanciamento del carico

Questa sezione illustra 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

  • Una sonda di integrità che verifica lo stato di integrità delle istanze di macchina virtuale 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 load-balancer-cli-rg \
    --name load-balancer \
    --sku Standard \
    --public-ip-address lb-frontend-ip \
    --frontend-ip-name lb-frontend \
    --backend-pool-name lb-backend-pool

Se si crea un indirizzo IP pubblico di zona, specificare la zona durante la creazione del servizio di bilanciamento del carico pubblico.

  az network lb create \
    --resource-group load-balancer-cli-rg \
    --name load-balancer \
    --sku Standard \
    --public-ip-address lb-frontend-ip \
    --frontend-ip-name lb-frontend \
    --public-ip-zone 1 \
    --backend-pool-name lb-backend-pool

Creare il probe di integrità

Una sonda di controllo integrità controlla tutte le istanze di macchine virtuali per assicurarsi che possano inviare traffico di rete.

Una macchina virtuale con un test/probe non riuscito viene rimossa dal bilanciatore di carico. La macchina virtuale viene nuovamente aggiunta al servizio di bilanciamento del carico quando il problema viene risolto.

Usa az network lb probe create per creare una sonda di salute:

  az network lb probe create \
    --resource-group load-balancer-cli-rg \
    --lb-name load-balancer \
    --name lb-health-probe \
    --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 load-balancer-cli-rg \
    --lb-name load-balancer \
    --name lb-HTTP-rule \
    --protocol tcp \
    --frontend-port 80 \
    --backend-port 80 \
    --frontend-ip-name lb-frontend \
    --backend-pool-name lb-backend-pool \
    --probe-name lb-health-probe \
    --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 load-balancer-cli-rg \
    --name lb-nsg

Creare una regola del gruppo di sicurezza di rete

Creare una regola del gruppo di sicurezza di rete usando az network nsg rule create.

  az network nsg rule create \
    --resource-group load-balancer-cli-rg \
    --nsg-name lb-nsg \
    --name lb-nsg-rule \
    --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. Usare Azure Bastion 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'host bastion usa l'indirizzo IP pubblico per l'accesso sicuro alle risorse della macchina virtuale.

  az network public-ip create \
    --resource-group load-balancer-cli-rg \
    --name lb-vnet-bastion-ip \
    --sku Standard \
    --zone 1 2 3

Creare una subnet bastion

Usare az network vnet subnet create per creare una subnet bastion. L'host bastion usa la subnet bastion per accedere alla rete virtuale.

  az network vnet subnet create \
    --resource-group load-balancer-cli-rg \
    --name AzureBastionSubnet \
    --vnet-name lb-vnet \
    --address-prefixes 10.1.1.0/27

Creare un host bastione

Usare az network bastion create per creare un host bastion. L'host bastion si connette in modo sicuro alle risorse di macchina virtuale che verranno create più avanti in questo articolo.

  az network bastion create \
    --resource-group load-balancer-cli-rg \
    --name lb-vnet-bastion \
    --public-ip-address lb-vnet-bastion-ip \
    --vnet-name lb-vnet \
    --sku Basic \
    --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 servizio di bilanciamento del carico

Creare le interfacce di rete per le macchine virtuali

Creare due interfacce di rete usando az network nic create:

  array=(lb-VM1-nic lb-VM2-nic)
  for vmnic in "${array[@]}"
  do
    az network nic create \
        --resource-group load-balancer-cli-rg \
        --name $vmnic \
        --vnet-name lb-vnet \
        --subnet backend-subnet \
        --network-security-group lb-nsg
  done

Creare macchine virtuali

Creare le macchine virtuali usando az vm create:

  az vm create \
    --resource-group load-balancer-cli-rg \
    --name lb-VM1 \
    --nics lb-VM1-nic \
    --image Win2022AzureEditionCore \
    --size Standard_D2s_v3 \
    --admin-username azureuser \
    --zone 1 \
    --no-wait
  az vm create \
    --resource-group load-balancer-cli-rg \
    --name lb-VM2 \
    --nics lb-VM2-nic \
    --image Win2022AzureEditionCore \
    --size Standard_D2s_v3 \
    --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.

Macchine virtuali create utilizzando i set di scalabilità delle macchine virtuali nella modalità di orchestrazione flessibile non hanno 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

Aggiungi le macchine virtuali al pool back-end mediante az network nic ip-config address-pool add:

  array=(lb-VM1-nic lb-VM2-nic)
  for vmnic in "${array[@]}"
  do
    az network nic ip-config address-pool add \
     --address-pool lb-backend-pool \
     --ip-config-name ipconfig1 \
     --nic-name $vmnic \
     --resource-group load-balancer-cli-rg \
     --lb-name load-balancer
  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 load-balancer-cli-rg \
    --name nat-gw-public-ip \
    --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 load-balancer-cli-rg \
    --name nat-gw-public-ip \
    --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 load-balancer-cli-rg \
    --name lb-nat-gateway \
    --public-ip-addresses nat-gw-public-ip \
    --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 load-balancer-cli-rg \
    --vnet-name lb-vnet \
    --name backend-subnet \
    --nat-gateway lb-nat-gateway

Installare IIS

Usare az vm extension set per installare IIS sulle macchine virtuali e impostare il sito Web predefinito sul nome del computer.

  array=(lb-VM1 lb-VM2)
    for vm in "${array[@]}"
    do
     az vm extension set \
       --publisher Microsoft.Compute \
       --version 1.8 \
       --name CustomScriptExtension \
       --vm-name $vm \
       --resource-group load-balancer-cli-rg \
       --settings '{"commandToExecute":"powershell Add-WindowsFeature Web-Server; powershell Add-Content -Path \"C:\\inetpub\\wwwroot\\Default.htm\" -Value $($env:computername)"}'
  done

Testare il bilanciatore di 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 load-balancer-cli-rg \
    --name lb-frontend-ip \
    --query ipAddress \
    --output tsv

Screenshot della finestra del browser che mostra la pagina di test del servizio di bilanciamento del carico.

Pulire le risorse

Quando le risorse non sono più necessarie, usare il comando az group delete per rimuovere il gruppo di risorse, il servizio di bilanciamento del carico e tutte le risorse correlate.

  az group delete \
    --name load-balancer-cli-rg

Passaggi successivi

In questo avvio rapido:

  • Hai creato un bilanciatore del carico standard pubblico.

  • Sono state collegate due macchine virtuali.

  • Sono stati configurati la regola del traffico di bilanciamento del carico e il probe di integrità.

  • Hai testato il bilanciatore del carico.

Per altre informazioni su Azure Load Balancer, passare a: