Azure Load Balancer – Configurazione di Internal e Public Load Balancer
Azure Load Balancer è un servizio di bilanciamento del carico di livello 4 (TCP/UDP) che permette di distribuire il traffico di rete tra più macchine virtuali, migliorando la disponibilità e l’affidabilità delle applicazioni ospitate in Microsoft Azure.
Il servizio può essere configurato in due modalità: Public Load Balancer, per distribuire il traffico proveniente da Internet, e Internal Load Balancer, per gestire le comunicazioni all’interno di una rete virtuale o da reti connesse.
In questa guida vedremo come creare e configurare entrambe le tipologie di Load Balancer utilizzando il portale di Microsoft Azure. Realizzeremo un’infrastruttura composta da tre macchine virtuali Windows Server, sulle quali installeremo il ruolo Internet Information Services (IIS), e configureremo le regole di bilanciamento e i controlli di integrità (Health Probe) necessari per distribuire il traffico tra i server disponibili.
Nella figura sotto viene mostrata l’architettura che utilizzeremo per configurare un Internal Load Balancer. Le macchine virtuali che ospitano il servizio web sono distribuite nelle Availability Zone e collegate a una subnet dedicata. Il Load Balancer utilizzerà un indirizzo IP privato per ricevere le richieste e distribuirle tra i server del backend, senza esporre direttamente il servizio a Internet.

Figura 1: Architettura di riferimento per la configurazione di Azure Internal Load Balancer
Creazione della rete virtuale
Per prima cosa dobbiamo creare la rete virtuale che ospiterà le macchine virtuali e il Load Balancer. Colleghiamoci al portale di Microsoft Azure all’indirizzo https://portal.azure.com e, dalla sezione Network foundation, selezioniamo Virtual networks. Facciamo quindi clic sul pulsante Create per avviare la procedura di creazione di una nuova rete virtuale.

Figura 2: Avvio della creazione di una nuova rete virtuale dal portale di Microsoft Azure
Nella scheda Basics selezionatela sottoscrizione Azure che vogliamo utilizzare e creiamo un nuovo Resource Group denominato IntLB-RG, nel quale verranno raggruppate le risorse necessarie per la nostra infrastruttura.
Assegnate alla rete virtuale il nome IntLB-VNet e selezionate Italy North come Region. In questo modo tutte le risorse che creeremo successivamente potranno essere distribuite nella stessa area geografica.

Figura 3: Configurazione delle impostazioni di base della rete virtuale IntLB-VNet
Nella scheda Security potete configurare alcune funzionalità aggiuntive per migliorare la sicurezza della rete virtuale. Per questa esercitazione lasciate disabilitata l’opzione Virtual network encryption e abilitate Azure Bastion, che vi permetterà di collegarvi alle macchine virtuali tramite RDP direttamente dal portale Azure, senza dover assegnare loro un indirizzo IP pubblico.
Assegnate al servizio Bastion il nome IntLB-VNet-Bastion e create un nuovo indirizzo IP pubblico denominato intlb-vnet-bastion.

Figura 4: Configurazione di Azure Bastion per l’accesso sicuro alle macchine virtuali
Nella scheda IP addresses configurate lo spazio di indirizzamento della rete virtuale, utilizzando la rete 10.1.0.0/16. Create quindi una subnet denominata MyBackendSubnet, alla quale assegnate l’intervallo di indirizzi 10.1.0.0/24.
Questa subnet verrà utilizzata per ospitare le macchine virtuali che fungeranno da server di backend del Load Balancer. La separazione delle risorse in subnet differenti permetterà di organizzare meglio l’infrastruttura di rete e di isolare logicamente i server che ospiteranno il servizio web.
Lasciate le altre impostazioni ai valori predefiniti e fate clic su Add per confermare la configurazione.

Figura 5: Configurazione dello spazio di indirizzamento IP e della subnet MyBackendSubnet
Aggiungete una ulteriore subnet alla rete virtuale, denominata MyFrontendSubnet, alla quale assegnate l’intervallo di indirizzi 10.1.1.0/24.
Questa subnet verrà utilizzata per ospitare l’indirizzo IP privato del Load Balancer, che rappresenterà il punto di ingresso per le richieste provenienti dai client. Il Load Balancer si occuperà successivamente di distribuire il traffico verso le macchine virtuali presenti nella subnet di backend.
Lasciate le altre impostazioni ai valori predefiniti e fate clic su Add per completare la configurazione.

Figura 6: Creazione della subnet MyFrontendSubnet che verrà utilizzata per l’indirizzo IP privato del Load Balancer

Figura 7: Riepilogo dello spazio di indirizzamento e delle subnet configurate nella rete virtuale
Fate clic su Review + create e, dopo aver verificato la correttezza delle impostazioni, selezionate Create per avviare la distribuzione della rete virtuale.

Figura 8: Schermata finale delriepilogo della creazione delal VNET
Verifica della distribuzione della rete virtuale
Attendete il completamento della distribuzione della rete virtuale e, dal portale Azure, aprite la risorsa IntLB-VNet appena creata. Nella sezione Settings, selezionate Subnets e fate clic sulla subnet MyBackendSubnet per modificarne la configurazione.
Verificate che l’opzione Enable private network (no default outbound access) sia disabilitata. In questo modo, le macchine virtuali che creeremo nella subnet potranno utilizzare la connettività in uscita predefinita di Azure per accedere a Internet, necessaria per alcune operazioni di configurazione e installazione del software.
Fate clic su Save per confermare le impostazioni.

Figura 9: Verifica delle impostazioni di connettività in uscita della subnet MyBackendSubnet
Creazione delle macchine virtuali di backend
Dopo aver configurato la rete virtuale, procedete con la creazione delle tre macchine virtuali Windows Server che utilizzeremo come server di backend del Load Balancer.
Per velocizzare la distribuzione dell’infrastruttura, utilizzate un template ARM, che vi permetterà di creare le tre macchine virtuali con una configurazione omogenea, collegandole alla subnet MyBackendSubnet della rete virtuale IntLB-VNet.
Una volta completata la distribuzione, installate su ciascuna macchina virtuale il ruolo Web Server (IIS), che utilizzeremo per pubblicare una semplice pagina web e verificare successivamente la distribuzione del traffico da parte del Load Balancer.

Figura 10: Creazione delle tre macchine virtuali Windows Server che costituiranno il backend del Load Balancer

Figura 11: Risorse create e verifica delle tre macchine virtuali che costituiranno il backend pool del Load Balancer
Al termine della distribuzione, accedete alla sezione Virtual machines del portale Azure e verificate che le tre macchine virtuali siano state create correttamente e che il loro stato sia Running.
Le macchine virtuali IntLB-VM1, IntLB-VM2 e IntLB-VM3 costituiranno il backend pool del Load Balancer, ovvero il gruppo di server tra i quali verranno distribuite le richieste dei client.
Verificate inoltre che tutte e tre le macchine virtuali siano collegate alla subnet MyBackendSubnet e che dispongano di un indirizzo IP privato.
Creazione di Azure Load Balancer
Dopo aver predisposto le macchine virtuali che ospiteranno il servizio web, possiamo procedere con la creazione del Load Balancer, che si occuperà di distribuire il traffico tra i tre server di backend.
Dal portale di Microsoft Azure, accedete alla sezione Load balancing and content delivery e selezionate Load balancers. Fate quindi clic su Create e scegliete Standard Load balancer.
Utilizzeremo lo SKU Standard, che offre funzionalità avanzate di bilanciamento del carico, supporto alle Availability Zone e una maggiore flessibilità nella configurazione delle regole di distribuzione del traffico. La SKU Basic è stata ritirata il 30 settembre 2025.

Figura 12: Avvio della creazione di un Azure Standard Load Balancer
Nella scheda Basics selezionate la sottoscrizione Azure e il Resource Group IntLB-RG, nel quale abbiamo già creato le risorse necessarie per la nostra infrastruttura.
Assegnate al Load Balancer il nome myIntLoadBalancer e selezionate Italy North come Region. Mantenete lo SKU Standard e scegliete Internal come tipologia di Load Balancer.
Questa impostazione è particolarmente importante perché un Internal Load Balancer utilizza un indirizzo IP privato e permette di distribuire il traffico all’interno della rete virtuale o dalle reti connesse, senza esporre direttamente il servizio a Internet.
Lasciate selezionata l’opzione Regional e proseguite con la configurazione del frontend.

Figura 13: Configurazione delle impostazioni di base di Azure Internal Load Balancer
Nella scheda Frontend IP configuration dovete configurare l’indirizzo IP attraverso il quale i client potranno raggiungere il Load Balancer. Fate clic su Add a frontend IP configuration e assegnate alla nuova configurazione il nome LoadBalancerFrontEnd.
Selezionate la rete virtuale IntLB-VNet e la subnet MyFrontendSubnet, che abbiamo creato in precedenza proprio per ospitare l’indirizzo IP privato del Load Balancer. Per l’assegnazione dell’indirizzo IP scegliete Dynamic, in modo che Azure assegni automaticamente un indirizzo disponibile nella subnet selezionata.
Il frontend IP rappresenterà il punto di ingresso del traffico destinato al Load Balancer. Poiché stiamo realizzando un Internal Load Balancer, l’indirizzo sarà privato e consentirà ai client di raggiungere il servizio dall’interno della rete virtuale o dalle reti connesse, senza esporlo direttamente a Internet.
Confermate la configurazione facendo clic su Add.

Figura 14: Aggiunta di una nuova configurazione IP di frontend per l’Internal Load Balancer
Una volta completata la configurazione, verificate che nella scheda Frontend IP configuration sia presente la voce LoadBalancerFrontEnd, associata a un indirizzo IP di tipo Dynamic.
L’indirizzo IP privato verrà assegnato automaticamente da Azure durante la creazione del Load Balancer e sarà utilizzato dai client per raggiungere il servizio web ospitato sulle macchine virtuali di backend.
Dopo aver verificato la correttezza delle impostazioni, selezionate Next: Backend pools per proseguire con la configurazione.

Figura 15: Verifica della configurazione IP di frontend dell’Internal Load Balancer
Nella scheda Backend pools fate clic su Add a backend pool per creare il gruppo di server ai quali il Load Balancer distribuirà il traffico in ingresso.
Il backend pool rappresenta l’insieme delle risorse che riceveranno le richieste inoltrate dal Load Balancer. Nel nostro caso sarà composto dalle tre macchine virtuali Windows Server sulle quali abbiamo precedentemente installato Internet Information Services (IIS).
La configurazione del backend pool permetterà al Load Balancer di identificare i server disponibili ai quali inoltrare le connessioni, in base alle regole di bilanciamento che definiremo successivamente.

Figura 16: Avvio della creazione del backend pool dell’Internal Load Balancer
Nella finestra Add backend pool assegnate al nuovo pool il nome myBackendPool e selezionate la rete virtuale IntLB-VNet, nella quale abbiamo precedentemente distribuito le macchine virtuali.
Come modalità di configurazione selezionate NIC, che permette di associare al backend pool le interfacce di rete delle macchine virtuali. Fate quindi clic su Add nella sezione IP configurations per selezionare i server che faranno parte del pool.
Nella finestra Add IP configurations to backend pool selezionate le tre macchine virtuali IntLB-VM1, IntLB-VM2 e IntLB-VM3, che abbiamo precedentemente creato nella subnet MyBackendSubnet.
Per ciascuna macchina virtuale verrà utilizzata la relativa configurazione IP dell’interfaccia di rete (NIC), che consentirà al Load Balancer di inoltrare il traffico verso il server corrispondente.
Dopo aver selezionato tutte e tre le macchine virtuali, fate clic su Add per associarle al backend pool.

Figura 17: Configurazione del backend pool e selezione delle interfacce di rete delle macchine virtuali
Fate clic su Save per salvare la configurazione del backend pool.

Figura 18: Verifica delle tre macchine virtuali associate al backend pool myBackendPool
Dopo aver salvato la configurazione, verificate che nella scheda Backend pools sia presente il pool myBackendPool, associato alla rete virtuale IntLB-VNet e alle tre macchine virtuali myVM1, myVM2 e myVM3.
Selezionate quindi Next: Inbound rules per procedere con la creazione delle regole di bilanciamento.

Figura 19: Verifica del backend pool myBackendPool e delle tre macchine virtuali associate
Nella scheda Inbound rules fate clic su Add a load balancing rule per configurare la regola che permetterà al Load Balancer di distribuire le richieste dei client tra le tre macchine virtuali del backend pool.
Le Load balancing rules definiscono come il traffico ricevuto sull’indirizzo IP di frontend e su una determinata porta debba essere inoltrato ai server di backend. Nel nostro caso configureremo una regola per distribuire il traffico HTTP sulla porta TCP 80, utilizzata dal servizio IIS installato sulle macchine virtuali.
La regola utilizzerà anche un Health Probe per verificare quali server siano effettivamente disponibili e impedire l’inoltro di nuove connessioni verso quelli che non rispondono ai controlli di integrità.

Figura 20: Avvio della creazione di una regola di bilanciamento del traffico HTTP
Durante la creazione della regola di bilanciamento, configurate un Health Probe, che permetterà al Load Balancer di verificare periodicamente lo stato di disponibilità delle macchine virtuali presenti nel backend pool.
Create un nuovo Health Probe denominato myHealthProbe, selezionate il protocollo HTTP e impostate la porta 80, sulla quale è in ascolto il servizio IIS. Configurate inoltre il percorso /, che verrà utilizzato per verificare la risposta del server web.
Il Load Balancer eseguirà controlli periodici sui server e considererà disponibili quelli che restituiscono una risposta HTTP 200 (OK). Se una macchina virtuale non supera i controlli di integrità, il Load Balancer interromperà l’inoltro delle nuove connessioni verso quel server, continuando a distribuire il traffico tra quelli disponibili.
Confermate la configurazione dell’Health Probe per associarlo alla regola di bilanciamento.

Figura 21: Configurazione dell’Health Probe per verificare la disponibilità dei server web
Lasciate Session persistence impostato su None, in modo che le connessioni di uno stesso client non debbano necessariamente essere indirizzate alla stessa macchina virtuale. Mantenete il valore di Idle timeout a 15 minuti e lasciate disabilitate le opzioni High availability ports, Enable TCP Reset ed Enable Floating IP.
Fate infine clic su Save per salvare la regola di bilanciamento.

Figura 22: Configurazione della regola myHTTPRule per la distribuzione del traffico HTTP tra i server di backend
Dopo aver salvato la configurazione, verificate che nella scheda Inbound rules sia presente la regola myHTTPRule, associata all’indirizzo IP di frontend LoadBalancerFrontEnd e al backend pool myBackendPool.
La regola utilizzerà l’Health Probe myHealthProbe per verificare la disponibilità dei server e distribuire le nuove connessioni HTTP soltanto alle macchine virtuali che superano i controlli di integrità.
Non è necessario configurare regole Inbound NAT, perché in questo scenario vogliamo distribuire il traffico tra più server e non inoltrare le connessioni verso una specifica macchina virtuale.
Dopo aver verificato la configurazione, fate clic su Review + create per procedere con la creazione del Load Balancer.

Figura 23: Verifica della regola di bilanciamento HTTP e dell’Health Probe associato
Nella scheda Review + create verificate il riepilogo delle impostazioni configurate e assicuratevi che la validazione sia stata completata correttamente.
Se tutte le impostazioni sono corrette, fate clic su Create per avviare la distribuzione del Load Balancer e attendete il completamento dell’operazione.

Figura 24: Riepilogo e validazione delle impostazioni prima della creazione dell’Internal Load Balancer
Al termine della distribuzione, accedete alla risorsa myIntLoadBalancer dal portale Azure e verificate che sia stata creata correttamente.
Nella pagina Overview prendete nota dell’indirizzo IP privato assegnato alla configurazione di frontend, che utilizzeremo successivamente per verificare il funzionamento del bilanciamento del carico.
Questo indirizzo rappresenterà il punto di accesso al servizio web ospitato sulle tre macchine virtuali del backend pool, consentendo ai client della rete virtuale di raggiungere i server attraverso un unico indirizzo IP.

Figura 25: Verifica della creazione dell’Internal Load Balancer e dell’indirizzo IP privato assegnato al frontend
Creazione della macchina virtuale per i test
Per verificare il corretto funzionamento dell’Internal Load Balancer, create una nuova macchina virtuale Windows Server che utilizzeremo come client per effettuare le richieste HTTP.
Collegate la macchina virtuale alla rete IntLB-VNet, utilizzando una subnet che le consenta di comunicare con l’indirizzo IP privato del Load Balancer. Non è necessario assegnarle un indirizzo IP pubblico, perché potrete accedervi tramite Azure Bastion.
Questa macchina virtuale ci permetterà di simulare le richieste provenienti da un client interno alla rete e verificare che il traffico venga distribuito correttamente tra i tre server IIS del backend pool.
Verifica del funzionamento dell’Internal Load Balancer
Dopo aver creato la macchina virtuale myTestVM, collegatevi tramite Azure Bastion e aprite un browser web. Nella barra degli indirizzi digitate l’indirizzo IP privato 10.0.3.4, assegnato al frontend dell’Internal Load Balancer.
Come potete osservare, la richiesta HTTP viene inoltrata correttamente a uno dei server presenti nel backend pool. Nel nostro caso ha risposto myVM1, come indicato dal nome visualizzato nella pagina web.

Figura 26: Verifica dell’accesso al servizio web tramite l’indirizzo IP privato dell’Internal Load Balancer
Per verificare il funzionamento del bilanciamento del carico, potete effettuare ulteriori richieste HTTP, anche utilizzando nuove connessioni, e controllare quale server risponde. Azure Load Balancer distribuisce il traffico a livello 4 utilizzando un algoritmo basato sull’hashing dei flussi di rete; quindi, non è detto che un semplice aggiornamento della pagina determini il passaggio a una macchina virtuale diversa.

Figura 27: Verifica dell’accesso al servizio web tramite l’indirizzo IP privato dell’Internal Load Balancer
Creazione di un Public Load Balancer
Dopo aver verificato il funzionamento dell’Internal Load Balancer, vediamo come configurare un Public Load Balancer, che permette di distribuire il traffico proveniente da Internet tra più macchine virtuali.
A differenza della configurazione precedente, il Public Load Balancer utilizza un indirizzo IP pubblico come frontend, attraverso il quale i client esterni possono raggiungere il servizio web. Le macchine virtuali del backend possono invece continuare a utilizzare esclusivamente indirizzi IP privati, senza essere esposte direttamente a Internet.
Anche in questo scenario utilizzeremo un Azure Standard Load Balancer, configurando un backend pool, una regola di bilanciamento del traffico HTTP e un Health Probe per verificare la disponibilità dei server.

Figura 28: Architettura di riferimento per la configurazione di Azure Public Load Balancer
Creazione di Azure Public Load Balancer
Per creare il Public Load Balancer, accedete al portale di Microsoft Azure e, dalla sezione Load balancing and content delivery, selezionate Load balancers.
Fate clic sul pulsante Create e scegliete Standard Load balancer per avviare la procedura guidata.

Figura 29: Avvio della creazione di un Azure Standard Load Balancer
Nella scheda Basics selezionate la sottoscrizione Azure che volete utilizzare e create un nuovo Resource Group denominato ExtLB-RG.
Assegnate al Load Balancer il nome myExtLoadBalancer e selezionate Italy North come Region. Mantenete lo SKU Standard e scegliete Public come tipologia di Load Balancer, lasciando selezionata l’opzione Regional.
La differenza principale rispetto alla configurazione precedente è proprio la scelta della tipologia Public, che permetterà al Load Balancer di ricevere le richieste provenienti da Internet attraverso un indirizzo IP pubblico e distribuirle alle macchine virtuali del backend pool.

Figura 30: Configurazione delle impostazioni di base di Azure Public Load Balancer
Nella scheda Frontend IP configuration fate clic su Add a frontend IP configuration per configurare l’indirizzo IP pubblico attraverso il quale il Load Balancer riceverà le richieste provenienti da Internet.
Assegnate alla configurazione il nome myExtLoadBalancer, selezionate IPv4 come versione IP e mantenete IP address come tipologia. Nel campo Public IP address fate clic su Create new per creare un nuovo indirizzo IP pubblico denominato myExtLoadBalancer-PIP.
Mantenete lo SKU Standard, il livello Regional e l’assegnazione Static, che garantirà al Load Balancer un indirizzo IP pubblico stabile. Selezionate Zone-redundant come Availability zone, per rendere l’indirizzo IP resiliente ai guasti di una singola zona di disponibilità, e lasciate Microsoft network come Routing preference.
Fate clic su Save per creare l’indirizzo IP pubblico.

Figura 31: Configurazione dell’indirizzo IP pubblico di frontend del Load Balancer
Dopo aver creato l’indirizzo IP pubblico myExtLoadBalancer-PIP, verificate che sia correttamente selezionato nel campo Public IP address.
Lasciate il campo Gateway Load balancer impostato su None, poiché in questa esercitazione non utilizzeremo appliance virtuali di rete per l’ispezione del traffico.
Fate quindi clic su Save per confermare la configurazione e associare l’indirizzo IP pubblico al frontend del Load Balancer.

Figura 32: Frontend IP configuration
Nella scheda Backend pools create un nuovo backend pool denominato myBackendPool, seguendo la stessa procedura utilizzata per l’Internal Load Balancer.
Selezionate la rete virtuale IntLB-VNet e aggiungete le tre macchine virtuali myVM1, myVM2 e myVM3, utilizzando le rispettive configurazioni IP delle interfacce di rete.
In questo caso utilizzeremo gli stessi server IIS già configurati per l’Internal Load Balancer, senza dover creare nuove macchine virtuali. I due Load Balancer condivideranno quindi le risorse di backend, ma utilizzeranno indirizzi IP di frontend differenti per gestire rispettivamente il traffico interno e quello proveniente da Internet.
Verificate che tutte e tre le macchine virtuali siano presenti nel backend pool e proseguite con la configurazione delle regole di bilanciamento.

Figura 33: Configurazione del backend pool del Public Load Balancer con le tre macchine virtuali esistenti
Nella scheda Inbound rules fate clic su Add a load balancing rule per configurare la regola che distribuirà il traffico HTTP proveniente da Internet tra le tre macchine virtuali del backend pool.
Anche in questo caso utilizzeremo una regola di bilanciamento sulla porta TCP 80, associata all’indirizzo IP pubblico di frontend e al backend pool myBackendPool. La configurazione sarà analoga a quella già utilizzata per l’Internal Load Balancer, con la differenza che le richieste arriveranno attraverso un indirizzo IP pubblico, anziché privato.

Figura 34: Creazione della regola di bilanciamento HTTP per il Public Load Balancer
Dopo aver configurato la regola myHTTPRule, seguendo le stesse impostazioni utilizzate per l’Internal Load Balancer, verificate che sia presente nella sezione Load balancing rule.
La regola deve essere associata alla configurazione IP di frontend myExtLoadBalancer e al backend pool myBackendPool, con il protocollo TCP e la porta 80 sia per il frontend sia per il backend. Assicuratevi inoltre che sia configurato l’Health Probe, necessario per verificare la disponibilità dei server IIS e distribuire le nuove connessioni soltanto alle macchine virtuali che superano i controlli di integrità.
Anche in questo caso non è necessario configurare regole Inbound NAT, poiché vogliamo distribuire il traffico tra tutti i server disponibili.

Figura 35: Verifica della regola myHTTPRule associata al frontend pubblico e al backend pool
Nella scheda Review + create verificate che la validazione sia stata completata correttamente, come indicato dal messaggio Validation passed.
Se tutte le impostazioni sono corrette, fate clic su Create e attendete il completamento della distribuzione del Load Balancer.

Figura 36: Riepilogo e validazione della configurazione di Azure Public Load Balancer
Al termine della distribuzione, accedete alla risorsa myExtLoadBalancer e verificate nella pagina Overview che il Load Balancer sia stato creato correttamente.
Dal menu Settings potete accedere alle diverse sezioni di configurazione, tra cui Frontend IP configuration, Backend pools, Health probes e Load balancing rules, per verificare o modificare le impostazioni definite durante la creazione.

Figura 37: Verifica della creazione del Public Load Balancer myExtLoadBalancer nel portale Azure
Configurazione del Network Security Group
Prima di verificare il funzionamento del Public Load Balancer, dobbiamo assicurarci che il traffico HTTP proveniente da Internet possa raggiungere le macchine virtuali del backend pool.
Anche se il traffico arriva inizialmente al Load Balancer, le regole del Network Security Group (NSG) continuano a essere applicate alle macchine virtuali di destinazione. Il Load Balancer, infatti, mantiene l’indirizzo IP sorgente del client e modifica soltanto quello di destinazione, inoltrando la connessione al server selezionato.
Per questo motivo, è necessario autorizzare esplicitamente il traffico HTTP sulla porta TCP 80, altrimenti le richieste verrebbero bloccate dal Network Security Group, anche in presenza di una regola di bilanciamento correttamente configurata.
Dal portale Azure accedete alla sezione Network foundation, selezionate Network security groups e aprite il Network Security Group myNSG, associato alle macchine virtuali del backend pool.

Figura 38: Accesso al Network Security Group myNSG per autorizzare il traffico HTTP verso i server di backend
Nota: Nel caso dell’Internal Load Balancer non è stato necessario creare una regola aggiuntiva perché i Network Security Group di Azure includono alcune regole di sicurezza predefinite. In particolare, la regola AllowVNetInBound, con priorità 65000, consente il traffico tra le risorse appartenenti alla stessa rete virtuale e alle reti incluse nel service tag VirtualNetwork. Per questo motivo, le richieste provenienti dalla macchina virtuale di test erano già autorizzate.
La regola predefinita AllowAzureLoadBalancerInBound, con priorità 65001, consente invece il traffico proveniente dal service tag AzureLoadBalancer, utilizzato per gli Health Probe, ma non autorizza automaticamente le connessioni applicative provenienti da Internet. Infine, la regola DenyAllInBound, con priorità 65500, blocca tutto il traffico in ingresso che non è stato esplicitamente autorizzato dalle regole precedenti.
Verifica del funzionamento del Public Load Balancer
Dopo aver configurato la regola di sicurezza sul Network Security Group, possiamo verificare il funzionamento del Public Load Balancer.
Aprite un browser da un computer connesso a Internet e digitate l’indirizzo IP pubblico associato al frontend del Load Balancer.
Come potete osservare, il servizio web è raggiungibile correttamente e la richiesta HTTP viene inoltrata a una delle macchine virtuali presenti nel backend pool. Nel mio caso ha risposto myVM2, come indicato dal nome visualizzato nella pagina.
Anche in questo scenario potete effettuare ulteriori richieste HTTP per verificare la distribuzione del traffico tra i server. Ricordate che Azure Load Balancer opera a livello 4 e utilizza un algoritmo di hashing per distribuire le connessioni; quindi, aggiornare ripetutamente la pagina non garantisce che venga selezionata una macchina virtuale diversa.
Il test conferma che il Public Load Balancer è raggiungibile da Internet e inoltra correttamente il traffico HTTP ai server del backend pool, senza che sia necessario assegnare un indirizzo IP pubblico alle singole macchine virtuali.

Figura 39: Verifica dell’accesso al servizio web tramite l’indirizzo IP pubblico del Load Balancer
Considerazioni sulla connettività in uscita
Un aspetto importante da considerare riguarda la connettività in uscita verso Internet delle macchine virtuali associate al backend pool di Azure Load Balancer.
La presenza di un indirizzo IP pubblico sul frontend del Load Balancer non significa necessariamente che le macchine virtuali possano utilizzare lo stesso indirizzo per accedere a Internet.
In particolare, quando una macchina virtuale viene associata al backend pool di uno Standard Load Balancer, Azure disabilita il meccanismo di Default Outbound Access, che in alcune configurazioni permette alle macchine virtuali prive di indirizzo IP pubblico di accedere a Internet.
Se i server del backend devono effettuare connessioni verso Internet, ad esempio per scaricare aggiornamenti o comunicare con servizi esterni, è quindi necessario prevedere una soluzione per la connettività in uscita, come Azure NAT Gateway oppure una configurazione esplicita di outbound access.
Azure NAT Gateway rappresenta una soluzione particolarmente indicata, perché permette alle macchine virtuali di una subnet di effettuare connessioni verso Internet utilizzando uno o più indirizzi IP pubblici dedicati, senza dover assegnare un indirizzo IP pubblico a ciascun server. Ne ho già parlato nella mia guida Azure NAT Gateway – Gestione del traffico in uscita dalle VM eseguite in Azure – ICT Power
È quindi importante distinguere il bilanciamento del traffico in ingresso, che abbiamo configurato in questa esercitazione, dalla gestione delle connessioni in uscita, che richiede una configurazione specifica.
Conclusioni
In questa guida abbiamo visto come creare e configurare Azure Load Balancer, utilizzando sia la modalità Internal sia quella Public, per distribuire il traffico tra più macchine virtuali.
Azure Load Balancer rappresenta una soluzione semplice ed efficace per migliorare la disponibilità e la scalabilità dei servizi, distribuendo le connessioni tra più server e indirizzando il traffico soltanto verso quelli disponibili.