Come creare e configurare il bilanciamento del carico di rete su AWS

Come creare e configurare il bilanciamento del carico di rete su AWS
Quando le richieste dell'utente su un'applicazione o un server Web aumentano oltre un determinato limite, è difficile per un singolo server gestire il carico e gli utenti iniziano ad affrontare difficoltà ad accedere all'applicazione. Per risolvere questo problema, la maggior parte delle applicazioni Web è in esecuzione su più di un server per gestire la domanda ad alto carico degli utenti. Ma abbiamo bisogno di qualche meccanismo per dividere le richieste tra diversi server. Per risolvere questo problema, dobbiamo utilizzare un bilanciamento del carico in grado di distribuire il traffico sui server in base a alcuni algoritmo. Gli algoritmi più comuni utilizzati sono rotondi rotondi, round-robin ponderato, minimo connessione, tempo minimo di risposta, hash di flusso, ecc. Come uno dei più grandi fornitori di servizi cloud, AWS offre diversi tipi di bilanciatori del carico e devi decidere quale sia più adeguato ed economico per gestire il tuo lavoro di applicazione.

Tipi di bilanciatori del carico in AWS

In AWS, ottieni i seguenti quattro tipi di bilanciatori del carico:

Bilancante del carico classico

Funziona sul livello di trasporto (TCP) e sul livello dell'applicazione (HTTP). Non supporta la mappatura delle porte dinamiche e richiede una relazione tra la porta del bilanciamento del carico e la porta istanza. Ora è un servizio legacy e non consigliato di utilizzare molto.

Bilanciatore del carico dell'applicazione

È il saldo del carico più comunemente usato che instrada il traffico in base al livello dell'applicazione (HTTP/HTTPS). Supporta anche la funzione di mappatura delle porte dinamiche e fornisce routing intelligente.

Bilanciatore del carico di rete

Il bilanciamento del carico di rete utilizza un algoritmo di hash di flusso e funziona al livello di trasporto (TCP), i.e., strato 4 del modello OSI. Può gestire più richieste rispetto al bilanciamento del carico dell'applicazione e fornisce la minima latenza.

Bilanciatore del carico del gateway

È un bilanciamento del carico che offre altri vantaggi come la sicurezza della rete e il firewall. Prende decisioni di routing sul 3 ° livello OSI (livello di rete) e utilizza il protocollo Geneve sulla porta 6081.

Creazione del bilanciamento del carico di rete utilizzando la console di gestione AWS

In questo articolo, creeremo e configureremo un bilanciamento del carico di rete. Il primo passo è configurare il servizio su cui vogliamo applicare il nostro bilanciamento del carico. Può essere istanze EC2, funzioni Lambda, indirizzi IP o bilanciatori del carico dell'applicazione. Qui, sceglieremo le istanze EC2, quindi cerca il servizio EC2 nella console.

Configura tutte le istanze che desideri per la tua applicazione.

Prima di creare il nostro bilanciamento del carico, dobbiamo creare un gruppo target. Apri la console dei gruppi target dal menu a sinistra nella sezione EC2.

Ora, fai clic su Crea Target Group per iniziare.

Innanzitutto, devi scegliere il servizio che desideri creare il gruppo target. Questi saranno i casi nel nostro caso:

Quindi, fornisci il nome del gruppo target, il protocollo di rete, il numero di porta e il VPC (rete privata virtuale) a cui appartengono le istanze EC2.

Per un gruppo target che verrà utilizzato con un bilanciamento del carico di rete, il protocollo deve essere un protocollo di livello 4 come TCP, TLS, UDP o TCP_UDP mentre il bilanciamento del carico di rete funziona al livello 4 del modello di livello OSI.

La porta qui mostra la porta su cui è in esecuzione l'applicazione nelle istanze EC2. Durante la configurazione dell'applicazione su più istanze EC2 con un gruppo target, assicurarsi che l'applicazione su tutte le istanze EC2 sia in esecuzione sulla stessa porta. In questa demo, la nostra applicazione è in esecuzione sulla porta 80 delle istanze EC2.

Per VPC, è necessario selezionare il VPC in cui esistono le istanze EC2. Altrimenti, non è possibile aggiungere le istanze EC2 al gruppo target.

È inoltre possibile configurare i controlli di salute in modo che se un target scende, il bilanciamento del carico smetterà automaticamente di inviare il traffico di rete a tale target.

Ora, devi registrare le tue istanze al tuo gruppo target. Le richieste dell'utente verranno inoltrate agli obiettivi registrati.

Per registrare l'obiettivo, seleziona semplicemente tali obiettivi o istanza in questo caso e fai clic su "Includi in sospeso di seguito". Qui, abbiamo scelto istanze appartenenti a diverse zone di disponibilità per far funzionare la nostra applicazione anche se un AZ scende.

Infine, fai clic su Crea Target Group e sei pronto per andare.

Ora creeremo il nostro bilanciamento del carico di rete, quindi apri la sezione del bilanciamento del carico dal menu e fai clic su Crea il bilanciamento del carico.

Dai seguenti tipi, selezionare il bilanciamento del carico di rete:

Innanzitutto, definisci il nome del bilanciamento del carico di rete nella sezione di configurazione di base.

Ora, scegli lo schema di rete, i.e., O vuoi che il tuo bilanciamento del carico sia pubblico o vuoi semplicemente usarlo nella tua rete privata (VPC).

Il tipo di indirizzo IP definisce se le istanze EC2 utilizzano gli indirizzi IPv4 o IPv6. Se le istanze EC2 utilizzano solo indirizzi IPv4, è possibile selezionare il IPv4 opzione. Altrimenti, selezionare il Dualstack opzione.

Seleziona il VPC per il bilanciamento del carico. Deve essere uguale a quello dei casi e dei gruppi target.

Quindi, è possibile selezionare le zone di disponibilità e le sottoreti in cui esistono le istanze EC2 di destinazione. Più zone di disponibilità significano che più le tue applicazioni sono altamente disponibili. Durante l'esecuzione dell'applicazione su più di un'istanza EC2, assicurarsi che le istanze EC2 siano in esecuzione in diverse zone di disponibilità.

Poiché le nostre istanze appartengono a ciascuna delle zone di disponibilità presenti nella regione, le selezioneremo tutte con le rispettive sottoreti.

US-East-2A

US-East-2B

US-East-2C

Ora, dobbiamo impostare il protocollo e la porta di rete e selezionare il nostro gruppo target per il nostro bilanciamento del carico. Il bilanciamento del carico inserirà tutto il traffico verso questo obiettivo.

Infine, la nostra configurazione è completa. Basta fare clic sul bilanciamento del carico Crea nell'angolo a destra del pulsante e siamo a posto.

Una volta configurato, troverai un endpoint per il bilanciamento del carico nella sezione Descrizione. Utilizzerai questo endpoint per accedere all'applicazione.

Le richieste dell'utente verranno ricevute tramite l'endpoint del bilanciamento del carico, che lo indirizzerà verso l'istanza configurata tramite il gruppo target. Se provi più richieste, le tue richieste saranno soddisfatte casualmente da qualsiasi istanza.

Quindi, abbiamo creato e configurato correttamente un bilanciamento del carico di rete utilizzando la console di gestione AWS.

Creazione del bilanciamento del carico di rete utilizzando AWS CLI

La console AWS è facile da usare e gestire servizi e risorse nel tuo account, ma la maggior parte dei professionisti del settore preferisce l'interfaccia della riga di comando. Ecco perché AWS ha escogitato la soluzione di fornire CLI per i suoi utenti, che può essere configurato su qualsiasi ambiente, Windows, Linux o Mac. Quindi, vediamo come possiamo creare un bilanciamento del carico usando l'interfaccia della riga di comando.

Quindi, dopo aver configurato la CLI, esegui semplicemente il seguente comando per creare un bilanciamento del carico di rete:

$: AWS ELBV2 Crea-GoLancer-NAME --Digitare la rete: sovvenzioni

Successivamente, dobbiamo creare un gruppo target per questo bilanciamento del carico di rete.

$: AWS ELBV2 Crea-target-Group --Name --Protocollo TCP --Port 80 --vpc-id

Quindi, dobbiamo aggiungere obiettivi al nostro gruppo target usando il seguente comando:

$: AWS ELBV2 Register-Targets--Target-Group-Varn --TARGETTI ID =

Infine, come ascoltatore, alletteremo il nostro gruppo target al nostro bilanciamento del carico.

$: AWS ELBV2 Create-Listener--Load Balancer-Varn --Protocollo TCP-Porta 80-Default-Actions Type = Forward, TargetGrouparn =

Quindi, abbiamo creato correttamente un bilanciamento del carico di rete e abbiamo aggiunto un gruppo target come ascoltatore al bilanciamento del carico utilizzando l'interfaccia della riga di comando AWS.

Conclusione

Il bilanciamento del carico è fondamentale per qualsiasi tipo di applicazione Web in quanto ciò aiuta a fornire gratificazione dell'utente promettendo la disponibilità e il buon tempo di risposta. Riducono i tempi di inattività fornendo i controlli sanitari necessari, facilitano la distribuzione del gruppo di autoscali, instrada il traffico verso il server fornendo la minima latenza e instrada il traffico verso un'altra zona di disponibilità in caso di guasto del sistema. Per gestire enormi richieste sul nostro server, possiamo aumentare le risorse della nostra istanza, come più CPU, memoria e più larghezza di banda di rete. Ma questo può essere raggiunto solo a un certo livello e non avrà successo e adatto in molti aspetti, come il costo, l'affidabilità e la scalabilità. Quindi sicuramente, dovremo applicare più server per la nostra applicazione. Solo un punto da ricordare è che il bilanciamento del carico elastico AWS (ELB) è responsabile solo per il routing e la distribuzione delle richieste dell'utente. Ciò non aggiungerà o rimuoverà i server o le istanze nell'infrastruttura. Usiamo il gruppo di ridimensionamento automatico AWS (ASG). Speriamo che tu abbia trovato questo articolo utile. Controlla gli altri articoli di suggerimento Linux per ulteriori suggerimenti e tutorial.