Bilanciamento del carico elastico in AWS

Pubblicato: 2022-08-10

Elastic Load Balancing è il cuore delle applicazioni in AWS. Scopri tutto su ELB, i suoi tipi e le caratteristiche in questo post.

Al giorno d'oggi, la maggior parte delle organizzazioni richiede la gestione e l'aumento della scalabilità, disponibilità e tolleranza agli errori delle proprie applicazioni. AWS fornisce una soluzione eccellente per questo, ad esempio il servizio Elastic Load Balancing. Questo servizio è costituito da un servizio di bilanciamento del carico in grado di distribuire i carichi di lavoro su molte risorse di calcolo come i server virtuali.

bilancio del carico

I servizi di bilanciamento del carico ci consentono di configurare i controlli dello stato per monitorare lo stato delle risorse di calcolo. Ci consente inoltre di scaricare il lavoro di crittografia e decrittografia sul sistema di bilanciamento del carico in modo che le risorse di calcolo possano concentrarsi sul loro lavoro principale.

Elastic Load Balancing (ELB): panoramica

ELB è un servizio che distribuisce automaticamente il traffico in entrata su più istanze EC2. Ciò consente di ottenere livelli di tolleranza agli errori più elevati nelle applicazioni fornendo la capacità di bilanciamento del carico per la distribuzione del traffico delle applicazioni.

Bilanciamento del carico elastico
Fonte: AWS

Inoltre, Elastic Load Balancing è in grado di rilevare istanze EC2 non integre e, non appena un'istanza EC2 viene rilevata non integre, ELB interrompe l'invio del traffico fino a quando non torna integre. I clienti possono abilitare facilmente Elastic Load Balancing all'interno di una o più zone di disponibilità per prestazioni delle applicazioni più coerenti.

Funzionalità di bilanciamento del carico elastico

Sicurezza

Puoi gestire e creare gruppi di sicurezza associati a Elastic Load Balancing in Amazon Virtual Private Cloud (VPC) per offrire ulteriori opzioni di rete e sicurezza per Application Load Balancer e Classic Load Balancer.

Alta disponibilità

Un Elastic Load Balancer è altamente disponibile. Puoi distribuire il traffico in entrata alla tua applicazione alle istanze EC2 in una singola zona di disponibilità o in più zone di disponibilità.

Alta produttività

Gli Elastic Load Balancer sono progettati per gestire il traffico man mano che cresce e possono caricare e bilanciare milioni di richieste al secondo. Può anche gestire picchi di traffico improvvisi.

Controlli sanitari

Con Elastic Load Balancing, puoi tenere sotto controllo lo stato delle tue istanze EC2 e non rischiare di inviare traffico a un'istanza non integra.

Monitoraggio operativo e registrazione

Amazon CloudWatch segnala i parametri di Application e Classic Load Balancer come conteggi di errori, tipi di errore, latenza delle richieste, conteggi delle richieste e altro ancora.

Elimina protezione

Puoi abilitare la protezione dall'eliminazione su Elastic Load Balancer per impedirne l'eliminazione accidentale.

Video Youtube

Componenti di Elastic Load Balancer

Ascoltatori

Devi configurare uno o più listener per il tuo sistema di bilanciamento del carico. È un processo che controlla le richieste di connessione. È configurato con un protocollo e una porta per le connessioni per le connessioni front-end (dal client al bilanciamento del carico) e un protocollo per le connessioni back-end (dal bilanciamento del carico all'istanza back-end).

I protocolli supportati per il bilanciamento del carico elastico includono:

  • HTTPS (HTTP protetto)
  • TCP
  • SSL (TCP sicuro)

Bilanciatore di carico

Un sistema di bilanciamento del carico funge da "poliziotto del traffico" di fronte ai tuoi server, distribuendo le richieste dei client su tutti i server attrezzati per gestirle in modo da massimizzare la velocità e l'utilizzo della capacità e garantire che nessun server sia sovraccaricato, il che può comportare un degrado delle prestazioni.

Il servizio di bilanciamento del carico instrada il traffico ai server attivi nel caso in cui un server vada offline. Il servizio di bilanciamento del carico avvia le richieste a un nuovo server quando viene aggiunto al gruppo di server.

Gruppi target

Le richieste vengono instradate a una o più destinazioni registrate utilizzando ciascun gruppo di destinazioni. Definisci un gruppo target e condizioni quando crei ogni regola listener. Quando una condizione della regola è soddisfatta, il traffico viene instradato al gruppo target appropriato.

Per vari tipi di richieste, puoi creare gruppi target separati. Ad esempio, crea gruppi di destinazione diversi per le richieste ai microservizi dell'applicazione e per le richieste generiche.

Tipi di bilanciatori di carico

Bilanciatore del carico dell'applicazione

Application Load Balancer consente agli sviluppatori di configurare e indirizzare il traffico degli utenti finali in entrata alle app in esecuzione sul cloud pubblico AWS.

Il bilanciamento del carico è fondamentale in un ambiente cloud con numerose applicazioni web. Un sistema di bilanciamento del carico garantisce che nessun singolo server venga sovraccaricato dividendo il traffico di rete e i flussi di informazioni tra più server. Ciò migliora le esperienze degli utenti, aumenta la reattività e la disponibilità delle applicazioni e può difendersi dagli attacchi DDoS (Distributed Denial-of-Service).

Video Youtube

L'accesso alle applicazioni web è cresciuto notevolmente negli ultimi anni. Tuttavia, aumenti imprevisti del traffico possono rallentare i servizi online e ridurre la disponibilità. Application Load Balancer distribuisce in modo efficiente il carico di rete nel cloud pubblico per aumentare la stabilità e la disponibilità.

Application Load Balancer indirizzerà il traffico a una destinazione sana all'interno della risorsa cloud solo se un'applicazione problematica raggiunge il livello 7. WebSocket è un altro protocollo supportato da Application Load Balancer per una maggiore connettività con il server sottostante.

I siti Web e le applicazioni mobili eseguiti in container o su istanze AWS EC2 traggono il massimo vantaggio dall'utilizzo di un sistema di bilanciamento del carico delle applicazioni. In un'architettura di microservizi, Application Load Balancer può essere utilizzato come bilanciatore del carico interno davanti alle istanze EC2 o ai container Docker che implementano un servizio specifico. Inoltre, può essere utilizzato davanti a un'applicazione API RESTful.

Numerosi servizi AWS sono compatibili con l'application load balancer, tra cui:

  • Ridimensionamento automatico di AWS
  • Servizio di container elastici Amazon
  • AWS CloudFormation
  • AWS CodeDeploy
  • Gestore certificati AWS

Bilanciatore di carico classico

Il traffico delle applicazioni in entrata viene suddiviso in numerose istanze EC2 in varie zone di disponibilità utilizzando un sistema di bilanciamento del carico classico. Un sistema di bilanciamento del carico classico funge da unico punto di contatto del cliente. Ciò rende la tua applicazione più accessibile. Senza compromettere il flusso generale di richieste alla tua applicazione, puoi aggiungere/rimuovere istanze dal tuo sistema di bilanciamento del carico classico al variare delle tue esigenze.

Un listener utilizza il protocollo e la porta impostati per monitorare le richieste di connessione del client. Il listener trasmette quindi le richieste a una o più istanze registrate utilizzando il protocollo e la porta configurati. Puoi modificare il tuo sistema di bilanciamento del carico aggiungendo uno o più listener.

Per garantire che il sistema di bilanciamento del carico indirizzi solo le richieste alle istanze integre, puoi configurare i controlli dello stato, che vengono utilizzati per tenere d'occhio le condizioni delle istanze registrate.

Il sistema di bilanciamento del carico classico, per impostazione predefinita, distribuisce uniformemente il traffico tra le zone di disponibilità che abiliti per il tuo sistema di bilanciamento del carico. Abilita il bilanciamento del carico tra zone sul tuo sistema di bilanciamento del carico per distribuire il traffico tra tutte le istanze registrate in tutte le zone di disponibilità attivate.

bilancio del carico

Tipi di bilanciatore di carico classico:

  • Classic Load Balancer con connessione a Internet: un sistema di bilanciamento del carico con connessione a Internet può instradare le richieste dai client alle istanze EC2 registrate con il sistema di bilanciamento del carico su Internet, grazie al suo dominio DNS risolvibile pubblicamente. Al sistema di bilanciamento del carico viene assegnato un nome DNS pubblico quando viene compilato, che i client possono utilizzare per effettuare richieste. I server DNS traducono il nome DNS del sistema di bilanciamento del carico negli indirizzi IP pubblici dei nodi del sistema di bilanciamento del carico. Gli indirizzi IP privati ​​connettono ogni nodo di bilanciamento del carico alle istanze back-end.
  • Classic Load Balancer interni: i nodi di un sistema di bilanciamento del carico interno hanno solo indirizzi IP personali. Il nome DNS di un sistema di bilanciamento del carico interno può essere risolto pubblicamente negli indirizzi IP dei nodi. Di conseguenza, le richieste possono essere instradate solo dai sistemi di bilanciamento del carico interni provenienti da client che hanno accesso al VPC del sistema di bilanciamento del carico.

Bilanciatore del carico di rete

Il sistema di bilanciamento del carico di rete funziona al quarto livello del modello OSI. Può gestire milioni di richieste al secondo.

Il servizio di bilanciamento del carico sceglie una destinazione dal gruppo di destinazione per la regola predefinita dopo aver ricevuto una richiesta di connessione. Tenta di stabilire una connessione TCP alla destinazione selezionata sulla porta indicata nelle impostazioni del listener.

Video Youtube

Per aumentare la tolleranza agli errori della tua applicazione, puoi abilitare più zone di disponibilità, un servizio a pagamento in AWS per i bilanciatori del carico di rete. Se una zona di disponibilità si interrompe, l'applicazione non smetterà di funzionare.

Per il traffico TCP, viene selezionata una destinazione utilizzando un algoritmo hash del flusso basato su protocollo, porta di origine, indirizzo IP di origine, porta di destinazione, indirizzo IP di destinazione e numero di sequenza TCP.

Le connessioni TCP dei client hanno numeri di sequenza e porte di origine diversi, quindi le connessioni vengono instradate ad altre destinazioni. Ogni connessione TCP univoca viene instradata a un'unica destinazione per la durata della connessione.

Bilanciatore del carico del gateway

Le tue appliance virtuali di terze parti possono essere facilmente distribuite, ridimensionate e gestite con l'aiuto di Gateway Load Balancer. Fornisce un unico gateway per suddividere il traffico tra numerose appliance virtuali e scalarle verso l'alto o verso il basso in risposta alla domanda. Ciò elimina potenziali punti di errore nella rete e aumenta la disponibilità.

Video Youtube

Le appliance virtuali di produttori indipendenti possono essere trovate, testate e acquistate direttamente tramite AWS Marketplace. Sia che tu voglia continuare a lavorare con i tuoi fornitori attuali o provare qualcosa di nuovo, questa esperienza integrata accelera il processo di distribuzione in modo che tu possa trarre vantaggio dalle tue appliance virtuali più rapidamente.

Vantaggi del sistema di bilanciamento del carico del gateway:

  • Implementazione più rapida di appliance virtuali di terze parti.
  • Ridimensionare le tue apparecchiature virtuali mentre gestisci i costi.
  • Migliora la disponibilità dell'appliance virtuale

Parole finali

Gli elastic Load Balancer sono una parte fondamentale di molte infrastrutture realizzate su AWS. Le funzionalità che otteniamo da un ELB semplificano la gestione della tua infrastruttura. Elastic Load Balancing è un metodo collaudato per distribuire applicazioni e richieste di traffico Web su più destinazioni o istanze.

Puoi ridimensionare automaticamente i vari carichi di lavoro utilizzando Elastic Load Balancer. Abbiamo coperto tutti i tipi di sistemi di bilanciamento del carico forniti da AWS e puoi utilizzarli in base alle esigenze della tua applicazione.