Bilanciamento del carico avanzato e clustering nei servizi Web Amazon

PUBBLICATO DA Zevenet | 24 luglio, 2020

Introduzione

Il seguente articolo descrive come impostare servizi avanzati di bilanciamento del carico con ZEVENET Load Balancer per la massima disponibilità in Infrastruttura EC2 di Amazon Web Services. Descriveremo la procedura per configurare a Cluster ZEVENET e configurare un profilo di bilanciamento del carico TCP per i servizi HTTP di bilanciamento del carico con 3 server back-end Web.

Infrastruttura AWS e ZEVENET

Il diagramma seguente descrive l'architettura che vogliamo implementare il bilanciamento del carico Web con ZEVENET Application Delivery Controller in AWS.

È necessario distribuire due controller di consegna delle applicazioni ZEVENET, questo modello è disponibile nel mercato dei servizi Web Amazon e ogni controller di consegna delle applicazioni ZEVENET è configurato nello stesso VPC dei server di back-end Web come mostrato nel diagramma sopra con la sottorete 17.32.16.0./20.

Ogni istanza di ZEVENET ADC è configurata con un'unica interfaccia eth0e ogni istanza è assegnata a una IP elastico, anche un IP elastico aggiuntivo viene assegnato a un IP aggiuntivo tramite eth0 nello ZLB1-prod istanza che verrà utilizzata a fini di bilanciamento del carico, come descritto di seguito:

ZLB1-prod è assegnato a 172.31.20.89 in eth0, questa istanza sarà accessibile direttamente da uno IP elastico 34.225.30.206
ZLB2-prod è assegnato a 172.31.26.237 in eth0, questa istanza sarà accessibile direttamente da uno IP elastico 54.161.240.226

Un IP aggiuntivo è assegnato a ZLB1-prod e configurato nel bilanciamento del carico con nome eth0: VIP1 e IP 172.31.26.47, questo IP viene utilizzato per configurare qui un servizio di bilanciamento del carico ed essere parte del servizio cluster, quindi questo IP funzionerà solo in una delle istanze di ZEVENET alla volta, che gestisce il file ATTIVO ruolo nel cluster. Questo IP interno è assegnato a un IP elastico a cui i client accedono per connettersi al servizio Web reale pubblicato.

Infine backend01, backend02 che collaborano con noi, attingono direttamente dalla storia e dalla tradizione veneziana per poi backend03 sono le istanze EC2 con server Web basati su Linux, tali istanze fanno parte del servizio con bilanciamento del carico a cui il client si connette quando richiesto http://54.144.190.17/ .

Distribuzione di due istanze ZEVENET nel mercato AWS

Consente di distribuire due bilanciatori di carico ZEVENET e configurarli come descritto in precedenza.

Vai alla sezione delle istanze EC2 e premi Avvia istanza.

1. Cercare l'AMI Enterprise di bilanciamento del carico ZEVENET richiesto. Questo AMI è basato su una licenza BYOL modello. La fase di valutazione è gratuita e l'assistenza è inclusa per un mese, dopo questo periodo di tempo è necessaria una licenza definitiva per funzionare.

2. Scegli un Tipo di istanza. Seleziona qui l'istanza necessaria in base alle risorse che desideri caricare. Un singolo t2.piccolo istanza è buona per iniziare a lavorare Profili L4, ma se si desidera utilizzare Profili HTTP quindi consigliamo almeno a t2.medio esempio. Ma a t2.micro istanza è abbastanza buona per scopi di test.

3. Configurazione Dettagli istanza. Seleziona qui il VPC in cui vengono eseguite le nuove istanze ZEVENET, in questo esempio di configurazione introdurremo le istanze ZEVENET EC2 nello stesso VPC rispetto ai server di back-end reali già configurati.

4. Aggiungi memoria. Per impostazione predefinita, l'istanza ZEVENET EC2 richiede almeno 12 GB di spazio di archiviazione, se si desidera attivare i registri per impostazione predefinita, si consiglia di aumentare questa dimensione almeno a 20 GB. ZEVENET non richiede l'accesso al disco, solo per salvare i registri, quindi il Tipo di volume per scopi generali è una buona scelta.

5. Aggiungere etichette. Configurare qui alcuni tag di descrizione, se desiderato.

6. Configurazione Gruppo di sicurezza. ZEVENET per impostazione predefinita utilizza la porta TCP 444 per la gestione della GUI Web HTTPS e la porta TCP 22 in SSH per la gestione della riga di comando e il clustering. Inoltre, ciascuno Porta virtuale i servizi virtuali utilizzati nel servizio di bilanciamento del carico dovranno essere inclusi nel gruppo di sicurezza. Abbiamo configurato un gruppo di sicurezza che viene utilizzato per quelle istanze di ZEVENET EC2 in una modalità meno restrittiva come segue:

TYPE = All traffic
Protocol = ALL 
Port Range = All
Source = 0.0.0.0/0
Description = Allow all from all to all

Questo gruppo di sicurezza è stato creato a scopo di test, è possibile scegliere di bloccare tutte le porte e consentire solo quelle utilizzate per il bilanciamento del carico e la gestione.

Una volta che l'assistente alla configurazione torna all'elenco delle istanze EC2, il nuovo dispositivo inizierà a essere distribuito e il file Avvio verrà mostrato lo stato. Quindi, configura ora un nome descrittivo nel campo Nome, nel nostro caso, vengono denominati i nostri sistemi di bilanciamento del carico distribuiti in EC2 ZLB1-prod che collaborano con noi, attingono direttamente dalla storia e dalla tradizione veneziana per poi ZLB2-prod.

Configurazione della rete per le istanze ZEVENET EC2

Una volta che le appliance virtuali ZEVENET sono state distribuite e il Stati di istanza stanno mostrando corsa modalità possiamo procedere a configurare la rete.

Fai clic sul pulsante destro sopra il ZLB1-prod apparecchio e scegliere Rete> Gestisci indirizzi IP, Nella Gestisci indirizzi IP finestra pop-up premere in Assegna nuovo IP e premere il pulsante Sì, aggiorna, il sistema assegnerà un nuovo IP per eth0 nello stesso VPC. Ricorda questo nuovo IP, nel nostro esempio, sarà questo nuovo IP 172.31.26.47. Il sistema ha assegnato un nuovo IP che verrà utilizzato ai fini del bilanciamento del carico nel futuro servizio di clustering.

Vai alla sezione IP elastici e assegnare a ciascuna istanza ZEVENET una nuova IP elastico. Questi verranno utilizzati a fini di gestione, non per il bilanciamento del carico.

Nello stesso IP elastico sezione, assegnare un nuovo IP a ZLB1-prod, ma in questo caso, selezionare il IP privato indirizzo 172.31.26.47. Dopo questa configurazione ZLB1-prod sarà accessibile tramite web e ssh con l'IP 34.225.30.206, ma ZLB2-prod è accessibile attraverso gli stessi servizi con l'IP 54.161.240.226 che collaborano con noi, attingono direttamente dalla storia e dalla tradizione veneziana per poi IP elastico 54.144.190.17 assegnato all'IP 172.31.26.47.

Abilitazione di istanze ZEVENET EC2 con licenze temporali

Dopo aver configurato gli IP elastici, i bilanciatori di carico virtuali saranno accessibili come segue:

ZLB1-prod sarà accessibile tramite https://34.225.30.206:444 root utente e password ID istanza.
ZLB1-prod sarà accessibile tramite ssh in IP 34.225.30.226 con admin utente e file di certificato privato, questo è configurato al momento della distribuzione di EC2.
ZLB2-prod sarà accessibile tramite https://54.161.240.226:444 root utente e password ID istanza.
ZLB2-prod sarà accessibile tramite ssh in IP 54.161.240.226 con admin utente e file di certificato privato, questo è configurato al momento della distribuzione di EC2.

Se si considera di modificare il nome host prima di continuare, in tal caso, riavviare l'istanza EC2 per applicare le modifiche.

Una volta eseguito correttamente l'accesso alla GUI Web, verranno visualizzati due valori importanti, il nome host e la chiave del certificato, entrambe le informazioni sono univoche per Load Balancer e sono correlate alla licenza di attivazione, utilizzare queste informazioni nel seguente URL come descritto: https://www.zevenet.com/activate-enterprise-edition-cloud-evaluation/

Una volta compilato il modulo, il sistema invia automaticamente la licenza all'indirizzo e-mail indicato. Caricare la licenza di attivazione PEM ricevuta tramite la GUI Web in ciascun bilanciamento del carico, una volta effettuata questa operazione, la GUI Web viene sbloccata e tutte le funzionalità sono completamente abilitate e operative.

Esegui la stessa procedura di attivazione in entrambi i nodi ZLB1-prod e ZLB2-prod.

Configurazione dell'IP virtuale per il bilanciamento del carico

Nel punto precedente, abbiamo già assegnato un IP aggiuntivo a eth0 172.31.26.47 nell'istanza ZLB1-pro e questo IP è stato assegnato a un IP elastico 54.144.190.17, ora è in attesa di eseguire questa configurazione nel bilanciamento del carico ZBL1-pro.

Vai al bilanciamento del carico ZLB1-pro tramite l'interfaccia Web utilizzando il suo IP elastico https://34.225.30.206:444, una volta effettuato l'accesso, vai al menu di navigazione Rete> Interfacce virtuali> Crea interfaccia virtualee procedere come segue:

Parent Interface = eth0 172.31.26.47

* Poiché le istanze EC2 non conoscono nulla degli IP elastici, è necessario configurare qui l'IP fisico dell'istanza EC2 collegato all'IP elastico pubblico utilizzato per il bilanciamento del carico 54.144.190.17

Virtual Interface name = vip1
IP Address = 172.31.26.47

Stampa Creare pulsante per applicare la configurazione.

Ora un nuovo IP 172.31.26.47 con il nome eth0: VIP1 è stato configurato in ZLB1-pro EC2 ZEVENET Load Balancer e può essere eseguito il ping da qualsiasi istanza EC2 in questo VPC.

Configurazione del servizio cluster ZEVENET in Amazon Web Services

Il cluster ZEVENET Load Balancer funziona in stato attivo-passivo modalità, significa che le risorse del cluster sono configurate in entrambi i nodi ma disponibili solo in ATTIVO nodo. Quando tale nodo non riesce e questo ruolo viene avviato nell'altro membro, è necessario accedere nuovamente alle risorse del cluster. Poiché anche gli IP virtuali sono risorse cluster, Amazon Web Service deve essere annunciato in qualche modo che l'IP virtuale è configurato per il bilanciamento del carico 172.31.26.47 funzionerà ora tramite ZLB2-prod.

Per questo, il servizio cluster ZEVENET utilizza il client AWS che deve essere configurato con autorizzazioni nel modulo EC2 per la gestione delle interfacce, quindi prima di avviare il servizio cluster ZEVENET dobbiamo prepararlo. Quindi consente di configurare un CHIAVE AWS nel tuo account con autorizzazioni per gestire gli IP in EC2 per essere utilizzato nell'interfaccia della riga di comando di AWS.

Vai alla console di Amazon https://console.aws.amazon.com/iam/ , quindi nel menu di navigazione selezionare Utente. Clicca sul pulsante Aggiungi utente.

Configure a descriptive User name = aws-for-zlb

In Seleziona il tipo di accesso AWS scegliere Accesso programmatico e premere il pulsante Avanti: Autorizzazioni. Ora nel Imposta autorizzazioni premere la sezione Crea gruppo e quindi nella nuova finestra compila il campo Nome del gruppo con un nome descrittivo, ad esempio, AmazonEC2e, infine, sul campo Politiche di filtro cercare e selezionare la politica denominata AmazonEC2Accesso completo che fornisce le autorizzazioni per modificare gli IP assegnati tra le istanze EC2 tra gli altri.

Premere Avanti: tag che collaborano con noi, attingono direttamente dalla storia e dalla tradizione veneziana per poi Avanti: Revisione. Alla fine premi dentro Creare un utente, l'ultima finestra ti mostrerà il ID chiave di accesso della scuola e il Chiave d'accesso segreta per questo utente, si prega di salvarli per un utilizzo futuro.

Ora siamo pronti per configurare il servizio cluster ZEVENET, quindi vai al pannello Web in ZLB1-pro tramite l'IP pubblico assegnato https://34.225.30.206:444, sezione Sistema> Cluster e compila il modulo seguendo l'esempio:

Credenziali AWS: Access Key e Secret key sono i valori già generati nelle righe precedenti. La regione, selezionare qui la regione in cui è distribuito il controller di consegna delle applicazioni ZEVENET.

Configura cluster:

IP locale: seleziona IP e NIC di eth0.
IP remoto: inserisci qui l'IP di eth0 nel nodo ZLB2-pro.
Password nodo remoto che collaborano con noi, attingono direttamente dalla storia e dalla tradizione veneziana per poi Conferma password: inserisci qui la password di root per ssh nell'altro nodo, per impostazione predefinita l'ID istanza di ZLB2-pro.

Fare clic su Generare e attendere alcuni secondi nel frattempo il nodo in cui si esegue la configurazione prenderà il ATTIVO ruolo (ZLB1-pro) e l'altro (ZLB2-pro) assumerà il ruolo PASSIVO ruolo.

A questo punto, ZEVENET Cluster è stato configurato in AWS ed è pronto per funzionare, configuriamo il nostro primo servizio con bilanciamento del carico in cluster.

Configurazione di un semplice bilanciamento del carico L4 per i servizi Web

Una volta collegato al sito web LSLB> Fattorie> Crea fattoria con i seguenti parametri.

Prendi in considerazione l'IP virtuale utilizzato 172.31.26.47 è l'IP virtuale precedentemente configurato e una risorsa del cluster che sarà raggiungibile sempre dal ATTIVO nodo. stampa Creare e continua

Ora nella nuova finestra configura il Sezione globale come mostrato di seguito:

E infine, configura la sezione Servizi come descritto:

Utilizza Persistenza IP con timeout di 60 secondi nel caso in cui sia necessario garantire che lo stesso IP client sia connesso allo stesso backend per un certo periodo di tempo. Configurare i controlli di integrità avanzati con FarmGuardian. Utilizzare check_tcp come semplice controllo di integrità per verificare che la porta di back-end TCP 80 sia aperta in ciascun back-end. Quindi, aggiungi gli IP interni del server back-end e la porta su cui sono in esecuzione i servizi Web reali.

Ora prova la connessione al IP elastico http://54.144.190.17/ assigned to the internal IP 172.31.26.47, the connection will pass through the load balancer using the eth0: VIP1 e inoltrato a uno dei backend disponibili.

Ora una forza per cambiare il ATTIVO ruolo nel cluster, ad esempio, riavvia il nodo con questo ruolo e dopo alcuni secondi, l'altro prenderà il servizio virtuale e si riconnetterà all'IP pubblico. Le connessioni client attuali e nuove verranno stabilite sullo stesso back-end, ma questa volta tramite il nuovo ATTIVO nodo senza interruzioni del client.

Goditi il ​​bilanciamento del carico avanzato e il clustering in AWS con ZEVENET!

Condividere su:

Documentazione sotto i termini della GNU Free Documentation License.

questo articolo è stato utile?

Articoli Correlati