Configurare un servizio di bilanciamento del carico pubblico
In qualità di progettista della soluzione per il portale sanitario, è necessario distribuire il carico dai browser client alle macchine virtuali nella Web farm. È necessario configurare un servizio di bilanciamento del carico e configurare le macchine virtuali per il bilanciamento.
Un servizio di bilanciamento del carico pubblico esegue il mapping dell'indirizzo IP pubblico e del numero di porta del traffico in ingresso all'indirizzo IP privato e al numero di porta di una macchina virtuale nel pool back-end. Le risposte vengono poi restituite al client. Applicando regole di bilanciamento del carico, è possibile distribuire tipi specifici di traffico tra più macchine virtuali o servizi.
Modalità di distribuzione
Per impostazione predefinita, Azure Load Balancer distribuisce il traffico di rete in modo uniforme tra più istanze di macchine virtuali. Sono inoltre possibili le modalità di distribuzione seguenti se è necessario un comportamento diverso:
Hash a cinque tuple: La modalità di distribuzione predefinita per Load Balancer è un hash a cinque tuple. La tupla è formata da IP di origine, porta di origine, IP di destinazione, porta di destinazione e tipo di protocollo. Poiché la porta di origine è inclusa nell'hash e la porta di origine cambia per ogni sessione, i client potrebbero essere indirizzati a una macchina virtuale diversa per ogni sessione.
Affinità dell'IP di origine: Questa modalità di distribuzione è nota anche come affinità di sessione o affinità dell'IP client. Per eseguire il mapping del traffico ai server disponibili, la modalità di affinità dell'indirizzo IP di origine usa un hash a due tuple (indirizzo IP di origine e indirizzo IP di destinazione) o un hash a tre tuple (indirizzo IP di origine, indirizzo IP di destinazione e tipo di protocollo). L'hash garantisce che le richieste provenienti da un client specifico vengano sempre inviate alla stessa macchina virtuale dietro il servizio di bilanciamento del carico.
Scegliere una modalità di distribuzione
Nell'esempio del portale sanitario, si supponga che un requisito dello sviluppatore del livello presentazione sia usare sessioni in memoria per archiviare il profilo dell'utente connesso durante l'interazione con il portale.
In questo scenario, il servizio di bilanciamento del carico deve fornire l'affinità dell'IP di origine per gestire la sessione di un utente. Il profilo viene archiviato solo nella macchina virtuale a cui il client si connette per la prima volta, perché tale indirizzo IP è indirizzato allo stesso server. Quando si crea l'endpoint del servizio di bilanciamento del carico, è necessario specificare la modalità di distribuzione usando l'esempio di PowerShell seguente:
$lb = Get-AzLoadBalancer -Name MyLb -ResourceGroupName MyResourceGroup
$lb.LoadBalancingRules[0].LoadDistribution = 'sourceIp'
Set-AzLoadBalancer -LoadBalancer $lb
Per aggiungere la persistenza della sessione tramite il portale di Azure:
Nel portale di Azure, selezionare la risorsa Load Balancer.
Nella pagina Regole di bilanciamento del carico nel riquadro Impostazioni, selezionare la regola di bilanciamento del carico pertinente.
Nella pagina Impostazioni della regola di bilanciamento del carico modificare il valore per Persistenza della sessione da Nessuna a IP client.
Load Balancer e Gateway Desktop remoto
Gateway Desktop remoto è un servizio di Windows che consente ai client su Internet di effettuare connessioni RDP (Remote Desktop Protocol) attraverso i firewall a server Desktop remoto nella rete privata. L'hash a cinque tuple predefinito in Load Balancer non è compatibile con questo servizio. Se si vuole usare Load Balancer con i server Desktop remoto, usare l'affinità dell'IP di origine.
Load Balancer e caricamento di file multimediali
Un altro caso d'uso per l'affinità dell'IP di origine è il caricamento di file multimediali. In molte implementazioni, un client avvia una sessione tramite un protocollo TCP (Transmission Control Protocol) e si connette a un indirizzo IP di destinazione. Questa connessione rimane aperta durante il caricamento per monitorare lo stato di avanzamento, ma il file viene caricato tramite un protocollo UDP (User Datagram Protocol) separato.
Con l'hash a cinque tuple, è probabile che il servizio di bilanciamento del carico invii le connessioni TCP e UDP a indirizzi IP di destinazione diversi e che il caricamento non venga completato correttamente. Usare l'affinità dell'IP di origine per risolvere questo problema.