Erweiterter Lastausgleich und Clustering in Amazon Web Services

GESCHRIEBEN VON Zevenet | 24. Juli 2020

Einführung

Der folgende Artikel beschreibt das Einrichten erweiterter Lastausgleichsdienste mit ZEVENET Load Balancer für hohe Verfügbarkeit in Amazon Web Services EC2-Infrastruktur. Wir werden das Verfahren zum Konfigurieren von a beschreiben ZEVENET-Cluster und konfigurieren Sie ein TCP-Lastausgleichsprofil für HTTP-Lastausgleichsdienste mit 3 Web-Backend-Servern.

AWS- und ZEVENET-Infrastruktur

Das folgende Diagramm beschreibt die Architektur, die wir für den Weblastenausgleich mit ZEVENET Application Delivery Controller in AWS implementieren möchten.

Es ist erforderlich, zwei ZEVENET Application Delivery Controller bereitzustellen. Diese Vorlage ist auf dem Amazon Web Services-Marktplatz verfügbar, und jeder ZEVENET Application Delivery Controller ist in derselben VPC wie die Web-Backend-Server konfiguriert, wie in der obigen Abbildung mit dem Subnetz dargestellt 17.32.16.0./20.

Jede ZEVENET ADC-Instanz ist mit einer Schnittstelle konfiguriert eth0und jede Instanz ist einer zugeordnet Elastische IPAußerdem wird einer zusätzlichen IP durch eine zusätzliche elastische IP zugewiesen eth0 in ZLB1-Prod Instanz, die für Lastausgleichszwecke verwendet wird, wie unten beschrieben:

ZLB1-Prod ist zugeordnet 172.31.20.89 In eth0 wird direkt auf diese Instanz zugegriffen Elastische IP 34.225.30.206
ZLB2-Prod ist zugeordnet 172.31.26.237 In eth0 wird direkt auf diese Instanz zugegriffen Elastische IP 54.161.240.226

Eine zusätzliche IP ist zugeordnet ZLB1-Prod und im Load Balancer mit Name konfiguriert eth0: vip1 und IP 172.31.26.47Diese IP wird verwendet, um hier einen Load Balancing Service zu konfigurieren und Teil des zu sein ClusterdienstDaher funktioniert diese IP jeweils nur in einer der ZEVENET-Instanzen, die das verwalten ACTIVE Rolle im Cluster. Diese interne IP wird einer elastischen IP zugewiesen, auf die Clients zugreifen, um eine Verbindung zum veröffentlichten realen Webdienst herzustellen.

Endlich Backend01, Backend02 Backend03 Sind die EC2-Instanzen mit Linux-basierten Webservern, sind diese Instanzen Teil des Lastausgleichsdienstes, bei dem der Client auf Anforderung eine Verbindung herstellt http://54.144.190.17/ .

Bereitstellen von zwei ZEVENET-Instanzen in AWS Marketplace

Stellen Sie zwei ZEVENET Load Balancer bereit und konfigurieren Sie sie wie zuvor beschrieben.

Gehen Sie zum Abschnitt EC2-Instanzen und drücken Sie Instanz starten.

1. Suchen Sie nach dem erforderlichen ZEVENET Load Balancer Enterprise Edition AMI. Dies AMI basiert auf einer BYOL-Lizenz Modell. Die Evaluierungsphase ist kostenlos und die Unterstützung während eines Monats ist inbegriffen. Nach diesem Zeitraum ist eine endgültige Lizenz erforderlich, um arbeiten zu können.

2. Wähle ein Instanztyp. Wählen Sie hier die gewünschte Instanz basierend auf den Ressourcen aus, die Sie ausgleichen möchten. Ein einzelnes t2.klein Instanz ist gut, um mit der Arbeit zu beginnen L4-Profile, aber wenn Sie verwenden möchten HTTP-Profile dann würden wir mindestens a empfehlen t2.mittel Beispiel. Aber a t2.micro Instanz ist gut genug für Testzwecke.

3. Einrichtung Instanzdetails. Wählen Sie hier die VPC aus, auf der die neuen ZEVENET-Instanzen ausgeführt werden. In diesem Konfigurationsbeispiel werden die ZEVENET EC2-Instanzen in derselben VPC eingeführt wie die bereits konfigurierten realen Web-Backend-Server.

4. Speicher hinzufügen. Standardmäßig benötigt die ZEVENET EC2-Instanz mindestens 12 GB Speicher. Wenn Sie Protokolle standardmäßig aktivieren möchten, empfehlen wir, diese Größe auf mindestens 20 GB zu erhöhen. ZEVENET benötigt keinen Zugriff auf die Festplatte, nur um Protokolle zu speichern Datenträgertyp für allgemeine Zwecke ist eine gute Wahl.

5. Tags hinzufügen. Konfigurieren Sie hier bei Bedarf einige Beschreibungs-Tags.

6. Einrichtung Sicherheitsgruppe. ZEVENET verwendet standardmäßig den TCP-Port 444 für HTTPS-Web-GUI-Verwaltungszwecke und den TCP-Port 22 in SSH für Befehlszeilenverwaltung und Clustering. Darüber hinaus jeweils Virtueller Port Die in den virtuellen Diensten des Lastenausgleichs verwendeten Dienste müssen in Ihrer Sicherheitsgruppe enthalten sein. Wir haben eine Sicherheitsgruppe konfiguriert, die für diese ZEVENET EC2-Instanzen in einem weniger restriktiven Modus wie folgt verwendet wird:

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

Diese Sicherheitsgruppe wird zu Testzwecken erstellt. Sie können alle Ports blockieren und nur die für den Lastausgleich und die Verwaltung verwendeten zulassen.

Sobald der Konfigurationsassistent zur EC2-Instanzliste zurückkehrt, wird die neue Appliance bereitgestellt und die Initiieren Zustand wird angezeigt. Konfigurieren Sie dann jetzt einen beschreibenden Namen im Feld NameIn unserem Fall werden unsere in EC2 bereitgestellten Load Balancer benannt ZLB1-Prod ZLB2-Prod.

Konfigurieren des Netzwerks für die ZEVENET EC2-Instanzen

Sobald die virtuellen ZEVENET-Appliances bereitgestellt wurden und die Instanzzustände Sie zeigen gerade Laufen Modus können wir fortfahren, um das Netzwerk zu konfigurieren.

Klicken Sie auf die rechte Schaltfläche über ZLB1-Prod Gerät und wählen Netzwerk> IP-Adressen verwaltenIn der IP-Adressen verwalten Popup-Fenster drücken Neue IP zuweisen und drücken Sie die Taste Ja, aktualisierenDas System weist eine neue IP für zu eth0 in der gleichen VPC. Denken Sie an diese neue IP. In unserem Beispiel wird diese neue IP sein 172.31.26.47. Das System hat eine neue IP zugewiesen, die im zukünftigen Clusterdienst für Lastausgleichszwecke verwendet wird.

Gehe zum Abschnitt Elastische IPs und weisen Sie jeder ZEVENET-Instanz eine neue zu Elastische IP. Diese werden zu Verwaltungszwecken verwendet, nicht zum Lastausgleich.

Im gleichen Elastische IP Abschnitt, weisen Sie eine neue IP zu ZLB1-Prod, aber in diesem Fall wählen Sie die Private IP Adresse 172.31.26.47. Nach dieser Konfiguration ZLB1-Prod wird über das Internet und SSH mit der IP zugänglich sein 34.225.30.206, Aber ZLB2-Prod ist über die gleichen Dienste mit der IP zugänglich 54.161.240.226 Elastische IP 54.144.190.17 der IP zugeordnet 172.31.26.47.

Aktivieren von ZEVENET EC2-Instanzen mit zeitlichen Lizenzen

Sobald die elastischen IPs konfiguriert wurden, können Sie wie folgt auf die virtuellen Load Balancer zugreifen:

Auf ZLB1-prod kann über https://34.225.30.206:444 Benutzer root und Kennwort der Instanz-ID zugegriffen werden.
Auf ZLB1-prod kann über ssh in IP 34.225.30.226 mit Benutzeradministrator und privater Zertifikatdatei zugegriffen werden. Dies wird zur EC2-Bereitstellungszeit konfiguriert.
Auf ZLB2-prod kann über https://54.161.240.226:444 Benutzer root und Kennwort der Instanz-ID zugegriffen werden.
Auf ZLB2-prod kann über ssh in IP 54.161.240.226 mit Benutzeradministrator und privater Zertifikatdatei zugegriffen werden. Dies wird zur EC2-Bereitstellungszeit konfiguriert.

Wenn Sie den Hostnamen vorher ändern möchten, um fortzufahren, starten Sie die EC2-Instanz neu, um die Änderungen zu übernehmen.

Sobald der Zugriff auf die Web-GUI erfolgreich abgeschlossen wurde, werden zwei wichtige Werte angezeigt, der Hostname und der Zertifikatschlüssel. Beide Informationen sind pro Load Balancer eindeutig und beziehen sich auf die Aktivierungslizenz. Verwenden Sie diese Informationen unter der folgenden URL wie beschrieben: https://www.zevenet.com/activate-enterprise-edition-cloud-evaluation/

Sobald das Formular ausgefüllt ist, sendet das System die Lizenz automatisch an die angegebene E-Mail. Bitte laden Sie die erhaltene PEM-Aktivierungslizenz über die Web-GUI in jedem Load Balancer hoch. Sobald dies erledigt ist, wird die Web-GUI entsperrt und alle Funktionen sind vollständig aktiviert und betriebsbereit.

Führen Sie das gleiche Aktivierungsverfahren in beiden Knoten ZLB1-prod und ZLB2-prod durch.

Konfigurieren der virtuellen IP für den Lastausgleich

Im vorherigen Punkt haben wir eth0 bereits eine zusätzliche IP zugewiesen 172.31.26.47 in der Instanz ZLB1-pro, und diese IP wurde einer elastischen IP zugewiesen 54.144.190.17Jetzt steht diese Konfiguration im ZBL1-pro Load Balancer noch aus.

Rufen Sie den ZLB1-pro Load Balancer über die Weboberfläche mit seiner elastischen IP auf https://34.225.30.206:444Sobald Sie angemeldet sind, gehen Sie bitte zum Navigationsmenü Netzwerk> Virtuelle Schnittstellen> Virtuelle Schnittstelle erstellenund führen Sie die folgende Konfiguration durch:

Parent Interface = eth0 172.31.26.47

* Da die EC2-Instanzen nichts über elastische IPs wissen, müssen wir hier die physische IP der EC2-Instanz konfigurieren, die mit der öffentlichen elastischen IP verknüpft ist, die für den Lastausgleich verwendet wird. 54.144.190.17

Virtual Interface name = vip1
IP Address = 172.31.26.47

PressE Erstellen Schaltfläche, um die Konfiguration anzuwenden.

Jetzt eine neue IP 172.31.26.47 mit name eth0: vip1 wurde im ZLB1-pro EC2 ZEVENET Load Balancer konfiguriert und kann von jeder EC2-Instanz in dieser VPC aus gepingt werden.

Konfigurieren des ZEVENET-Clusterdienstes in Amazon Web Services

Der ZEVENET Load Balancer-Cluster funktioniert in Stateful Aktiv-Passiv Modus bedeutet dies, dass die Clusterressourcen auf beiden Knoten konfiguriert sind, aber nur im verfügbar sind ACTIVE Knoten. Wenn ein solcher Knoten ausfällt und diese Rolle im anderen Mitglied gestartet wird, muss erneut auf die Clusterressourcen zugegriffen werden. Da es sich bei den virtuellen IPs auch um Clusterressourcen handelt, muss der Amazon Web Service in irgendeiner Weise angekündigt werden, dass die virtuelle IP für den Lastenausgleich konfiguriert ist 172.31.26.47 wird jetzt über ZLB2-prod arbeiten.

Zu diesem Zweck verwendet der ZEVENET Cluster-Dienst den AWS-Client, der mit Berechtigungen im EC2-Modul für die Verwaltung von Schnittstellen konfiguriert werden muss. Bevor Sie den ZEVENET Cluster-Dienst starten, müssen Sie ihn vorbereiten. Lassen Sie uns also eine konfigurieren AWS-SCHLÜSSEL in Ihrem Konto mit Berechtigungen zum Verwalten von IPs in EC2 zur Verwendung in der AWS-Befehlszeilenschnittstelle.

Gehen Sie zur Amazon-Konsole https://console.aws.amazon.com , dann im Navigationsmenü wählen Mitglied. Klicken Sie auf die Schaltfläche Benutzer hinzufügen.

Configure a descriptive User name = aws-for-zlb

In Wählen Sie den AWS-Zugriffstyp wählen Programmatischer Zugriff und drücken Sie die Taste Weiter: Berechtigungen. Jetzt in der Berechtigungen festlegen Abschnitt einpressen Gruppe erstellen und dann im neuen Fenster das Feld ausfüllen Gruppenname mit einem beschreibenden Namen, zum Beispiel AmazonEC2und schließlich auf dem Feld Filterrichtlinien Suchen Sie die genannte Richtlinie und wählen Sie sie aus AmazonEC2FullAccess Hiermit können Sie unter anderem die zugewiesenen IPs zwischen EC2-Instanzen ändern.

hinein drücken Weiter: Tags Weiter: Überprüfen. Zum Schluss drücken Sie hinein Benutzer erstellenDas letzte Fenster zeigt Ihnen die Zugriffsschlüssel-ID und der Geheimer Zugangsschlüssel Bitte speichern Sie diese für diesen Benutzer für die zukünftige Verwendung.

Jetzt können wir den ZEVENET-Clusterdienst konfigurieren. Wechseln Sie daher über die zugewiesene öffentliche IP-Adresse https://1:34.225.30.206 zum Webpanel in ZLB444-pro System> Cluster und füllen Sie das folgende Formular aus:

AWS-Anmeldeinformationen: Zugriffsschlüssel und geheimer Schlüssel sind die bereits in vorherigen Zeilen generierten Werte. Wählen Sie hier die Region aus, in der Ihr ZEVENET Application Delivery-Controller bereitgestellt wird.

Cluster konfigurieren:

Lokale IP: Wählen Sie die IP und NIC von eth0 aus.
Remote-IP: Geben Sie hier die IP von eth0 in den Knoten ZLB2-pro ein.
Remote-Node-Passwort Passwort bestätigen: Geben Sie hier das Root-Passwort für ssh im anderen Knoten ein, standardmäßig die Instanz-ID von ZLB2-pro.

Klicke auf Erzeugen Klicken Sie auf die Schaltfläche und warten Sie einige Sekunden, während der Knoten, auf dem Sie die Konfiguration ausführen, den Knoten übernimmt ACTIVE Rolle (ZLB1-pro) und die andere (ZLB2-pro) wird die übernehmen PASSIV Rolle.

In diesem Punkt wurde ZEVENET Cluster in AWS konfiguriert und ist betriebsbereit. Lassen Sie uns unseren ersten Cluster-Dienst mit Lastenausgleich konfigurieren.

Konfigurieren eines einfachen L4-Lastausgleichs für Webdienste

Gehe auf LSLB> Farmen> Farm erstellen mit den folgenden Parametern.

Berücksichtigen Sie, dass die verwendete virtuelle IP 172.31.26.47 ist die zuvor konfigurierte virtuelle IP und eine Ressource des Clusters, die immer über das Internet erreichbar ist ACTIVE Knoten. Drücken Sie Erstellen und fortsetzen.

Konfigurieren Sie nun im neuen Fenster die Globaler Bereich wie unten dargestellt:

Und schließlich konfigurieren Sie den Abschnitt Dienstleistungen wie beschrieben:

Anwenden IP-Persistenz mit Timeout von 60 Sekunden, nur für den Fall, dass Sie sicherstellen müssen, dass dieselbe Client-IP über einen bestimmten Zeitraum mit demselben Backend verbunden wird. Konfigurieren Sie die erweiterten Integritätsprüfungen mit FarmGuardian. Benutzen check_tcp als einfache Integritätsprüfung, um zu überprüfen, ob der TCP-Backend-Port 80 in jedem Backend geöffnet ist. Fügen Sie dann die internen IPs und den Port des Backend-Servers hinzu, an dem die echten Webdienste ausgeführt werden.

Testen Sie nun die Verbindung zum Elastische IP 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 und an eines der verfügbaren Backends weitergeleitet.

Nun eine Kraft, das zu ändern ACTIVE Rolle im Cluster Starten Sie beispielsweise den Knoten mit dieser Rolle neu. Nach einigen Sekunden übernimmt der andere den virtuellen Dienst und stellt erneut eine Verbindung zur öffentlichen IP her. Die aktuellen und neuen Clientverbindungen werden über dasselbe Backend hergestellt, diesmal jedoch über das neue ACTIVE Knoten ohne Client-Unterbrechungen.

Genießen Sie mit ZEVENET den erweiterten Lastausgleich und das Clustering in AWS!

Teilen:

Dokumentation unter den Bedingungen der GNU Free Documentation License.

War dieser Artikel hilfreich?

Verwandte Artikel