- Einführung
- AWS- und Relianoid-Infrastruktur
- Bereitstellen von zwei Relianoid-Instanzen im AWS Marketplace
- Konfigurieren des Netzwerks für die Relianoid EC2-Instanzen
- Aktivieren von Relianoid EC2-Instanzen mit temporären Lizenzen
- Konfigurieren der virtuellen IP für den Lastenausgleich
- Konfigurieren des Relianoid Cluster-Dienstes in Amazon Web Services
- Konfigurieren eines einfachen L4-Load-Balancing für Webdienste
- Neue Schnittstellen zum Load Balancer hinzufügen
Einführung #
Der folgende Artikel beschreibt die Einrichtung erweiterter Load-Balancing-Dienste mit Relianoid Load Balancer für Hochverfügbarkeit in Amazon Web Services EC2-Infrastrukturen . Wir beschreiben die Vorgehensweise zur Konfiguration eines Relianoid-Clusters und eines TCP-Load-Balancing-Profils für den Lastausgleich von HTTP-Diensten mit drei Web-Backend-Servern.
AWS- und Relianoid-Infrastruktur #
Das folgende Diagramm beschreibt die Architektur, mit der wir das Web-Load-Balancing mit dem Relianoid Application Delivery Controller in AWS implementieren möchten.
Es müssen zwei Relianoid Application Delivery Controller bereitgestellt werden. Diese Vorlage ist im Amazon Web Services Marketplace verfügbar. Jeder Relianoid Application Delivery Controller wird in derselben VPC wie die Web-Backend-Server konfiguriert, wie im obigen Diagramm mit dem Subnetz 17.32.16.0./20 dargestellt.
Jede Relianoid ADC-Instanz ist mit einer Schnittstelle eth0 konfiguriert und jeder Instanz ist eine elastische IP-Adresse zugewiesen. Zusätzlich ist in der ZLB1-prod- Instanz über eth0 eine weitere elastische IP-Adresse einer zusätzlichen IP-Adresse zugewiesen, die für den Lastausgleich verwendet wird, wie nachfolgend beschrieben:
ZLB1-prod ist zugeordnet 172.31.20.89 in eth0 wird diese Instanz direkt von einem Elastische IP 34.225.30.206
ZLB2-prod ist zugeordnet 172.31.26.237 in eth0 wird diese Instanz direkt von einem Elastische IP 54.161.240.226
Eine zusätzliche IP-Adresse ist ZLB1-prod zugewiesen und im Load Balancer unter dem Namen eth0:vip1 und der IP-Adresse 172.31.26.47 konfiguriert . Diese IP-Adresse dient der Konfiguration eines Load-Balancing-Dienstes und ist Teil des Cluster-Dienstes . Daher ist diese IP-Adresse jeweils nur in einer der Relianoid-Instanzen aktiv, die die aktive Rolle im Cluster verwaltet. Diese interne IP-Adresse ist einer Elastic IP zugewiesen, über die Clients eine Verbindung zum veröffentlichten Webdienst herstellen.
Schließlich handelt es sich bei backend01 , backend02 und backend03 um EC2-Instanzen mit Linux-basierten Webservern. Diese Instanzen sind Teil des Load-Balanced-Dienstes, mit dem sich der Client verbindet, wenn er die Adresse http://54.144.190.17/ anfordert.
Bereitstellen von zwei Relianoid-Instanzen im AWS Marketplace #
Lassen Sie uns zwei Relianoid Load Balancer bereitstellen und sie wie zuvor beschrieben konfigurieren.
Gehen Sie zum Abschnitt EC2-Instanzen und klicken Sie auf „ Instanz starten“.
1. Suchen Sie nach dem benötigten Relianoid Load Balancer Enterprise Edition AMI. Dieses AMI basiert auf einem BYOL-Lizenzmodell . Die Testphase ist kostenlos und beinhaltet einen Monat Support. Nach Ablauf dieses Zeitraums ist eine endgültige Lizenz für den Betrieb erforderlich.
2. Wählen Sie einen Instanztyp . Wählen Sie hier die benötigte Instanz basierend auf den Ressourcen, die Sie per Load Balancing verteilen möchten. Eine einzelne t2.small- Instanz eignet sich gut für den Einstieg in die Arbeit mit L4-Profilen . Wenn Sie jedoch HTTP-Profile verwenden möchten , empfehlen wir mindestens eine t2.medium- Instanz. Für Testzwecke ist eine t2.micro- Instanz ausreichend.
3. Instanzdetails konfigurieren . Wählen Sie hier die VPC aus, in der die neuen Relianoid-Instanzen ausgeführt werden. In diesem Konfigurationsbeispiel werden wir die Relianoid EC2-Instanzen in derselben VPC wie die bereits konfigurierten Web-Backend-Server einrichten.
4. Speicherplatz hinzufügen . Standardmäßig benötigt eine Relianoid EC2-Instanz mindestens 12 GB Speicherplatz. Wenn Sie die Protokollierung standardmäßig aktivieren möchten, empfehlen wir, diese Größe auf mindestens 20 GB zu erhöhen. Relianoid benötigt keinen Zugriff auf die Festplatte, sondern nur zum Speichern der Protokolle. Daher ist der Volumentyp für allgemeine Zwecke eine gute Wahl.
5. Tags hinzufügen . Konfigurieren Sie hier bei Bedarf beschreibende Tags.
6. Sicherheitsgruppe konfigurieren . Relianoid verwendet standardmäßig den TCP-Port 444 für die HTTPS-Weboberfläche, Port 9999 für den Sitzungssynchronisierungsdienst und den TCP-Port 22 für SSH-Befehlszeilenverwaltung und Clustering. Zusätzlich muss jeder virtuelle Port, der in den virtuellen Diensten des Load Balancers verwendet wird, in Ihrer Sicherheitsgruppe enthalten sein. Wir haben eine Sicherheitsgruppe konfiguriert, die für Relianoid EC2-Instanzen in einem weniger restriktiven Modus verwendet wird:
TYP = Gesamter Datenverkehr Protokoll = ALLE Portbereich = Alle Quelle = 0.0.0.0/0 Beschreibung = Alles von allen zu allen zulassen
Diese Sicherheitsgruppe wird zu Testzwecken erstellt. Sie können alle Ports blockieren und nur die Verwendung für Lastausgleich und Verwaltung zulassen.
Sobald der Konfigurationsassistent zur EC2-Instanzliste zurückkehrt, beginnt die Bereitstellung der neuen Appliance und der Status „Initiierung “ wird angezeigt. Konfigurieren Sie nun im Feld „ Name“ einen aussagekräftigen Namen . In unserem Fall heißen die bereitgestellten Load Balancer in EC2 „ZLB1-prod“ und „ZLB2-prod“.
Konfigurieren des Netzwerks für die Relianoid EC2-Instanzen #
Sobald die virtuellen Appliances von Relianoid bereitgestellt wurden und die Instanzstatus den Status „ Wird ausgeführt “ anzeigen, können wir mit der Konfiguration des Netzwerks fortfahren.
Klicken Sie mit der rechten Maustaste auf das ZLB1-prod- Gerät und wählen Sie „Netzwerk“ > „IP-Adressen verwalten“ . Klicken Sie im Popup-Fenster „ IP-Adressen verwalten“ auf „Neue IP zuweisen“ und anschließend auf „Ja, aktualisieren“ . Das System weist eth0 in derselben VPC eine neue IP-Adresse zu . Merken Sie sich diese neue IP-Adresse; in unserem Beispiel lautet sie 172.31.26.47 . Diese neue IP-Adresse wird zukünftig für den Lastausgleich im Clustering-Dienst verwendet.
Gehen Sie zum Abschnitt „Elastic IPs“ und weisen Sie jeder Relianoid-Instanz eine neue Elastic IP zu . Diese werden für Verwaltungszwecke und nicht für den Lastausgleich verwendet.
Weisen Sie im selben Abschnitt „Elastic IP“ dem Server ZLB1-prod eine neue IP-Adresse zu . Wählen Sie in diesem Fall die private IP- Adresse 172.31.26.47 . Nach dieser Konfiguration ist ZLB1-prod über Web und SSH mit der IP-Adresse 34.225.30.206 erreichbar . ZLB2-prod ist über dieselben Dienste mit der IP-Adresse 54.161.240.226 und der Elastic IP-Adresse 54.144.190.17 erreichbar, die der IP-Adresse 172.31.26.47 zugewiesen ist.
Aktivieren von Relianoid EC2-Instanzen mit temporären Lizenzen #
Sobald die Elastic IPs konfiguriert wurden, sind die virtuellen Load Balancer wie folgt zugänglich:
Auf ZLB1-prod kann über https://34.225.30.206:444 mit dem Benutzer „root“ und dem Kennwort „Instanz-ID“ zugegriffen werden.
Auf ZLB1-prod kann über SSH unter IP 34.225.30.226 mit Benutzeradministrator und privater Zertifikatsdatei zugegriffen werden. Dies wird zum Zeitpunkt der EC2-Bereitstellung konfiguriert.
Auf ZLB2-prod kann über https://54.161.240.226:444 mit dem Benutzer „root“ und dem Kennwort „Instanz-ID“ zugegriffen werden.
Auf ZLB2-prod kann über SSH unter IP 54.161.240.226 mit Benutzeradministrator und privater Zertifikatsdatei zugegriffen werden. Dies wird zum Zeitpunkt der EC2-Bereitstellung konfiguriert.
Wenn Sie den Hostnamen ändern möchten, bevor Sie fortfahren, starten Sie die EC2-Instance neu, um die Änderungen zu übernehmen.
Sobald der Zugriff auf die Web-GUI erfolgreich hergestellt wurde, werden Ihnen zwei wichtige Werte angezeigt: der Hostname und der Zertifikatsschlüssel. Beide Informationen sind pro Load Balancer eindeutig und stehen in Zusammenhang mit der Aktivierungslizenz. Verwenden Sie diese Informationen in der folgenden URL wie beschrieben: https://www.relianoid.com/activate-enterprise-edition-cloud-evaluation/
Sobald das Formular ausgefüllt ist, sendet das System die Lizenz automatisch an die angegebene E-Mail-Adresse. 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 in beiden Knoten ZLB1-prod und ZLB2-prod dasselbe Aktivierungsverfahren durch.
Konfigurieren der virtuellen IP für den Lastenausgleich #
Im vorherigen Schritt haben wir bereits der eth0-Schnittstelle 172.31.26.47 in der Instanz ZLB1-pro eine zusätzliche IP-Adresse zugewiesen, und diese IP-Adresse wurde einer Elastic IP 54.144.190.17 zugewiesen . Nun steht die Konfiguration im Load Balancer ZLB1-pro noch aus.
Greifen Sie über die Weboberfläche mit der Elastic IP https://34.225.30.206:444 auf den Load Balancer ZLB1-pro zu . Nach der Anmeldung gehen Sie bitte im Navigationsmenü zu Netzwerk > Virtuelle Schnittstellen > Virtuelle Schnittstelle erstellen und nehmen Sie die folgende Konfiguration vor:
Übergeordnete Schnittstelle = eth0 172.31.26.47
*Da die EC2-Instanzen nichts über Elastic IPs wissen, müssen wir hier die physische IP der EC2-Instanz konfigurieren, die mit der öffentlichen Elastic IP verknüpft ist, die für den Lastenausgleich verwendet wird: 54.144.190.17
Name der virtuellen Schnittstelle = vip1
IP-Adresse = 172.31.26.47
Klicken Sie auf die Schaltfläche „Erstellen “, um die Konfiguration anzuwenden.
Nun wurde im ZLB1-pro EC2 Relianoid Load Balancer eine neue IP-Adresse 172.31.26.47 mit dem Namen eth0:vip1 konfiguriert, die von jeder EC2-Instanz in dieser VPC aus angepingt werden kann.
Konfigurieren des Relianoid Cluster-Dienstes in Amazon Web Services #
Der Relianoid Load Balancer-Cluster arbeitet im zustandsbehafteten Aktiv-Passiv- Modus. Das bedeutet, dass die Clusterressourcen auf beiden Knoten konfiguriert sind, aber nur auf dem aktiven Knoten verfügbar sind. Fällt ein solcher Knoten aus und übernimmt der andere Knoten diese Rolle, müssen die Clusterressourcen erneut zugänglich sein. Da virtuelle IPs ebenfalls Clusterressourcen sind, muss Amazon Web Services auf irgendeine Weise darüber informiert werden, dass die für den Lastausgleich konfigurierte virtuelle IP 172.31.26.47 nun über ZLB2-prod funktioniert.
Hierfür verwendet der Relianoid Cluster-Dienst den AWS-Client, der im EC2-Modul mit Berechtigungen zur Schnittstellenverwaltung konfiguriert werden muss. Daher muss dieser vor dem Start des Relianoid Cluster-Dienstes vorbereitet werden. Konfigurieren Sie dazu einen AWS-Schlüssel in Ihrem Konto mit Berechtigungen zur IP-Verwaltung in EC2, der in der AWS-Befehlszeilenschnittstelle verwendet werden kann.
Gehen Sie zur Amazon-Konsole https://console.aws.amazon.com/iam/ und wählen Sie im Navigationsmenü „Benutzer“ aus . Klicken Sie auf die Schaltfläche „ Benutzer hinzufügen“.
Konfigurieren Sie einen beschreibenden Benutzernamen = aws-for-zlb
Wählen Sie unter „AWS-Zugriffstyp auswählen“ die Option „Programmatischer Zugriff“ und klicken Sie auf „ Weiter: Berechtigungen “. Klicken Sie nun im Abschnitt „Berechtigungen festlegen“ auf „Gruppe erstellen“ und geben Sie im neuen Fenster im Feld „ Gruppenname“ einen aussagekräftigen Namen ein, z. B. „AmazonEC2“ . Suchen und wählen Sie abschließend im Feld „Richtlinien filtern“ die Richtlinie „AmazonEC2FullAccess“ aus, die unter anderem die Berechtigung zum Ändern der zugewiesenen IP-Adressen zwischen EC2-Instanzen gewährt.
Klicken Sie auf „Weiter: Tags“ und dann auf „Weiter: Überprüfen“ . Klicken Sie abschließend auf „Benutzer erstellen“ . Im letzten Fenster werden Ihnen die Zugriffsschlüssel-ID und der geheime Zugriffsschlüssel für diesen Benutzer angezeigt. Bitte speichern Sie diese für die spätere Verwendung.
Jetzt können wir den Relianoid Cluster-Dienst konfigurieren. Gehen Sie dazu über die zugewiesene öffentliche IP-Adresse https://34.225.30.206:444 zum Webpanel in ZLB1-pro, Abschnitt System > Cluster , und füllen Sie das Formular gemäß dem folgenden Beispiel aus:
AWS-Anmeldeinformationen : Zugriffsschlüssel und geheimer Schlüssel sind die bereits in den vorherigen Zeilen generierten Werte. Region: Wählen Sie hier die Region aus, in der Ihr Relianoid Application Delivery Controller bereitgestellt ist.
Cluster konfigurieren :
Lokale IP: Wählen Sie die IP und NIC von eth0.
Remote-IP: Geben Sie hier die IP von eth0 im Knoten ZLB2-pro ein.
Remote-Knoten-Passwort und Passwort bestätigen: Geben Sie hier das Root-Passwort für SSH im anderen Knoten ein, standardmäßig die Instanz-ID von ZLB2-pro.
Klicken Sie auf die Schaltfläche „Generieren “ und warten Sie einige Sekunden. In der Zwischenzeit übernimmt der Knoten, auf dem Sie die Konfiguration ausführen, die Rolle „AKTIV“ (ZLB1-pro) und der andere (ZLB2-pro) die Rolle „PASSIV“.
An diesem Punkt wurde Relianoid Cluster in AWS konfiguriert und ist einsatzbereit. Lassen Sie uns unseren ersten geclusterten Lastenausgleichsdienst konfigurieren.
Konfigurieren eines einfachen L4-Load-Balancing für Webdienste #
Gehen Sie zu LSLB > Farms > Farm erstellen mit den folgenden Parametern.
Beachten Sie, dass die verwendete virtuelle IP-Adresse 172.31.26.47 die zuvor konfigurierte virtuelle IP-Adresse und eine Ressource des Clusters ist, die vom aktiven Knoten aus immer erreichbar ist. Klicken Sie auf „Erstellen“ und fahren Sie fort.
Konfigurieren Sie nun im neuen Fenster den Abschnitt „Global“ wie unten dargestellt:
Konfigurieren Sie abschließend den Abschnitt „Dienste“ wie beschrieben:
Verwenden Sie IP-Persistenz mit einem Timeout von 60 Sekunden, um sicherzustellen, dass dieselbe Client-IP über einen bestimmten Zeitraum mit demselben Backend verbunden bleibt. Konfigurieren Sie die erweiterten Integritätsprüfungen mit FarmGuardian . Verwenden Sie `check_tcp` als einfache Integritätsprüfung, um zu überprüfen, ob der TCP-Backend-Port 80 auf jedem Backend geöffnet ist. Fügen Sie anschließend die internen IPs und Ports der Backend-Server hinzu, auf denen die eigentlichen Webdienste ausgeführt werden.
Testen Sie nun die Verbindung zur Elastic IP http://54.144.190.17/, die der internen IP 172.31.26.47 zugewiesen ist. Die Verbindung wird über den Load Balancer mit eth0:vip1 geleitet und an eines der verfügbaren Backends weitergeleitet.
Um die aktive Rolle im Cluster zu ändern, beispielsweise durch einen Neustart des Knotens mit dieser Rolle, übernimmt nach wenigen Sekunden der andere Knoten den virtuellen Dienst und verbindet sich erneut mit der öffentlichen IP-Adresse. Die bestehenden und neuen Client-Verbindungen werden zum selben Backend aufgebaut, diesmal jedoch über den neuen aktiven Knoten, ohne dass es zu Unterbrechungen für die Clients kommt.
Neue Schnittstellen zum Load Balancer hinzufügen #
Zur Lastverteilung oder für andere Zwecke können Sie dem Load Balancer weitere Schnittstellen hinzufügen. Folgen Sie dazu einfach den von AWS beschriebenen Schritten zum Hinzufügen neuer Schnittstellen zu einer EC2-Instanz. Weitere Informationen zu den Best Practices finden Sie im AWS-Artikel: https://docs.aws.amazon.com/AWSEC2/latest/WindowsGuide/best-practices-for-configuring-network-interfaces.html . Relianoid erkennt die neuen Schnittstellen automatisch, sodass Sie sie anschließend nach Ihren Wünschen konfigurieren können.
Genießen Sie erweitertes Lastenausgleich und Clustering in AWS mit Relianoid!






