Qual è la differenza tra il bilanciamento del carico di applicazioni, reti e gateway?


Qual è la differenza tra il bilanciamento del carico di applicazioni, reti e gateway?

Application Load Balancer (ALB), Network Load Balancer (NLB) e Gateway Load Balancer (GWLB) sono tre tipi di sistemi di bilanciamento del carico utilizzati nel cloud. Il bilanciamento del carico è il processo di distribuzione equa del traffico di rete su un pool di risorse che supportano un'applicazione. Le applicazioni moderne elaborano milioni di utenti simultaneamente. Questi volumi ad alto traffico richiedono molti server di risorse con dati duplicati. Per reindirizzare il traffico delle applicazioni, gli ALB esaminano il contenuto richiesto, come le intestazioni HTTP o gli ID di sessione SSL. Gli NLB esaminano gli indirizzi IP e altre informazioni di rete per reindirizzare il traffico in modo ottimale. Gli GLB fungono da gateway di rete trasparente (un unico punto di ingresso e uscita per tutto il traffico) e distribuiscono il traffico dimensionando al contempo i dispositivi virtuali in base alla domanda.

Scopri di più sul bilanciamento del carico

Funzionamento: ALB vs. NLB e GLB

ALB, NLB e GLB forniscono tutti funzioni diverse. Per questo motivo, funzionano in modi leggermente diversi e includono componenti distinti. 

Come funziona un Application Load Balancer

Gli ALB distribuiscono il traffico in entrata su più destinazioni, come le istanze EC2. Ad esempio, un'applicazione di e-commerce ha una directory di prodotti, un carrello della spesa e funzioni di pagamento. L'ALB invia richieste di esplorazione dei prodotti a server che contengono immagini e video ma non hanno la necessità di mantenere connessioni aperte. In confronto, invia richieste del carrello degli acquisti a server che mantengono molte connessioni client e salvano i dati del carrello per un lungo periodo.

L'ALB dispone di un componente ascoltatore che verifica le richieste di connessione da parte dei client. È possibile definire regole per un ascoltatore che determinano in che modo il sistema di bilanciamento del carico indirizza le richieste alle destinazioni registrate. Un gruppo di destinazione ordina gli obiettivi registrati in gruppi. È possibile definire regole per indirizzare il traffico comune a un intero gruppo. Ad esempio, è possibile creare un gruppo di destinazione per le richieste generali e altri gruppi per le richieste ai microservizi per l'applicazione.

Il diagramma seguente mostra come funziona un ALB.

Come funziona un Network Load Balancer

Gli NLB distribuiscono il traffico in base alle condizioni della rete. Ad esempio, se si dispone di più server di database con dati duplicati, l'NLB indirizza il traffico in base agli indirizzi IP del server predeterminati o alla sua disponibilità.

L'NLB monitora lo stato delle sue destinazioni registrate e indirizza il traffico solo verso le destinazioni integre. Dopo aver ricevuto una richiesta di connessione, il sistema di bilanciamento del carico seleziona una destinazione dal gruppo di destinazione per la regola predefinita. Tenta di aprire una connessione TCP alla destinazione selezionata sulla porta specificata nella configurazione dell'ascoltatore. Ogni singola connessione TCP viene indirizzata a una singola destinazione per tutta la sua durata. Allo stesso modo, è anche possibile indirizzare un flusso UDP in modo coerente verso una singola destinazione per tutto il suo tempo di vita. 

Come funziona un Gateway Load Balancer

Con un GLB, è possibile implementare, gestire e dimensionare dispositivi virtuali, come quelli per il rilevamento e la prevenzione delle intrusioni, i firewall e i sistemi di ispezione approfondita dei pacchetti. Crea un unico punto di ingresso e uscita per tutto il traffico dei dispositivi e dimensiona i dispositivi virtuali in base alla domanda. Inoltre, è possibile utilizzarlo per scambiare traffico attraverso i confini del cloud privato virtuale (VPC). 

Nel GLB, si stabiliscono le regole utilizzando le tabelle di routing. A seconda delle regole impostate, seleziona diversi gruppi di destinazione a cui inoltrare il traffico. Riceve pacchetti IP e inoltra il traffico a gruppi di destinazione specifici.

Differenze principali tra ALB, NLB e GLB

ALB, NLB e GLB operano a diversi livelli della comunicazione di rete. Un ALB opera sul livello OSI 7 e consente la manipolazione e il routing del traffico a livello di applicazione. Un NLB opera sul livello 4 per la gestione del traffico a livello di rete basata su porte e indirizzi IP. Un GLB funziona sui livelli 3 e 7 e fornisce servizi di bilanciamento e routing a livello di rete insieme a funzionalità di gateway.

Scopri di più sul modello OSI

Ecco altre differenze chiave tra ALB, NLB e GLB.

Tipi di destinazione

Il tipo di destinazione è l'endpoint verso cui ciascuno di questi sistemi di bilanciamento del carico indirizza il traffico. Un ALB funziona con indirizzi IP, istanze e tipi di destinazione AWS Lambda. Gli NLB funzionano con IP e istanze e possono anche indirizzare il traffico verso un ALB per richieste più complesse. I GLB funzionano con gli IP e i tipi di destinazione delle istanze.

Scopri di più sulle istanze nel cloud computing

Comportamento del proxy

L'azione intrapresa da un sistema di bilanciamento del carico quando riceve una richiesta del client dipende da due fattori:

  • se il sistema di bilanciamento del carico funge da proxy e quindi termina la connessione del client,
  • se inoltra la richiesta senza terminare il flusso.

Terminare il flusso consente ai sistemi di bilanciamento del carico di eseguire funzioni aggiuntive di gestione del traffico, come la terminazione SSL, la persistenza della sessione e il routing basato sui contenuti. 

Un ALB termina la connessione del client e poi stabilisce una nuova connessione, fungendo da proxy. Anche un NLB termina la connessione del client e ne crea una nuova per conto del client. Tuttavia, un GLB non funge da proxy né interrompe la connessione; inoltra direttamente il traffico.

Protocolli

Questi sistemi di bilanciamento del carico supportano diversi protocolli per gestire tipi specifici di traffico ed eseguire funzioni avanzate. Gli ALB supportano i protocolli HTTP, HTTPS e gRPC per il traffico basato sul Web. Un NLB supporta i protocolli TCP, UDP e TLS, che coprono le distribuzioni del traffico a livello di rete. Infine, un GLB copre l'instradamento basato su IP, gestendo qualsiasi protocollo basato su IP. 

Algoritmi

Questi sistemi di bilanciamento del carico utilizzano diversi tipi di algoritmi per distribuire il traffico in modo uniforme verso le loro destinazioni. Un ALB utilizza un algoritmo round-robin per impostazione predefinita, instradando il traffico uno dopo l'altro. Invece, un NLB utilizza un algoritmo di hash del flusso così da indirizzare il traffico a destinazioni specifiche in modo predeterminato. Un GLB utilizza le ricerche nelle tabelle di routing per determinare dove indirizzare il traffico. 

Quando utilizzare ALB, NLB e GLB

Un ALB è una buona scelta quando si necessitano una gestione e un routing flessibili del traffico a livello di applicazione. È la soluzione migliore con microservizi, ambienti containerizzati e applicazioni Web. Le sue funzionalità, come la terminazione SSL, la persistenza della sessione e il routing basato sui contenuti, gli consentono di offrire assistenza in scenari di routing complessi. 

Un NLB è la soluzione ideale per un bilanciamento a livello di rete ad alte prestazioni, a bassa latenza e scalabile. Le applicazioni che distribuiscono il traffico sul livello di trasporto utilizzano NLB, soprattutto per via della sua affidabilità. I sistemi di gioco, i servizi di streaming multimediale e i principali sistemi IoT utilizzano gli NLB. 

Un GLB è ideale quando si esegue il bilanciamento a livello di gateway di rete. Ad esempio, un GLB funziona bene nella gestione del traffico tra ambienti cloud e on-premise o tra regioni diverse. Poiché combina il bilanciamento dei livelli OSI 3 e 4, può instradare il traffico tra regioni e reti distinte. Poiché supporta l'instradamento basato su IP, è in grado di distribuire il traffico su gateway virtuali, in modo da offrire un'elevata scalabilità e disponibilità.

Riepilogo delle differenze tra ALB, NLB e GLB

 

Application Load Balancer (ALB)

Network Load Balancer (NLB)

Gateway Load Balancer (GLB)

Livello OSI

Funziona al livello 7, il livello dell'applicazione.

Funziona al livello 4, il livello di trasporto.

Funziona a livello di rete, livello 3 e livello 7.

Tipi di destinazione

Funziona con i tipi di destinazione IP, istanza e lambda.

Funziona con i tipi di destinazione IP, istanza e ALB.

Funziona con tipi di destinazione IP e istanza.

Comportamento del proxy

Termina la connessione.

Termina la connessione.

Non interrompe il flusso.

Protocolli

Supporta i protocolli HTTP, HTTPS e gRPC.

Supporta i protocolli TCP, UDP e TLS.

Supporta l'instradamento basato su IP. 

Algoritmi

Round robin.

Hash di flusso.

Ricerca nella tabella di routing.

In che modo AWS può aiutarti a soddisfare i requisiti di bilanciamento del carico?

Elastic Load Balancing (ELB) è un servizio di bilanciamento del carico completamente gestito. Distribuisce automaticamente il traffico delle applicazioni in entrata su più destinazioni e dispositivi virtuali su Amazon Web Services (AWS) e risorse on-premise. Inoltre, supporta il bilanciamento del carico tra zone tra le Regioni AWS. È possibile utilizzare ELB per configurare ALB, NLB o GLB in base alle proprie esigenze. 

L'ALB è un componente di ELB. ELB supporta anche NLB, GLB e Classic Load Balancer. Questi sistemi di bilanciamento del carico sono punti di contatto con i clienti e aiutano a migliorare la scalabilità delle applicazioni con una gestione sicura. È possibile scegliere uno o più di questi sistemi di bilanciamento del carico e configurarli durante la configurazione di ELB per l'ambiente cloud.

Inizia subito a utilizzare il bilanciamento del carico su AWS creando un account.