Getting started mit dem gridscale Load Balancer

Der Load Balancer von gridscale ist ein hochverfügbarer, von uns gemanagter Service, mit dem du deine Infrastruktur noch ökonomischer nutzen kannst. Ein Cloud Load Balancer kümmert sich um die effiziente Verteilung von Client requests auf mehrere Anwendungssysteme. Bei modernen Infrastrukturen ist es Best-Practice, mehr Server hinzuzufügen, um auf neue Anforderungen wie bspw. High-Traffic reagieren zu können. Die Vorteile liegen vor allem in der einfachen Bedienbarkeit. Technisch macht sich die Einbindung nicht zuletzt durch eine gesteigerte Performance, Flexibilität & Zuverlässigkeit deiner Cloud bemerkbar.

In diesem Artikel bilde ich mit dir einen ersten Use-Case “Hello, World!” ab und stelle dir im Anschluss daran alle Einzel-Features und Konfigurationsmöglichkeiten des gridscale Load Balancer im Detail vor.

gridscale Load Balancer Features im Überblick

Simplicity

Wie unser gridscale Panel überzeugt auch unser Load Balancer durch seine Einfachheit. Du kannst die forwarding Rules zu deinen Backend-Servern mit nur wenigen Mausklicks definieren. Das Verbinden mit deinen Zielservern ist genauso einfach erledigt.

SSL

Unser Load Balancer arbeitet perfekt zusammen mit den bekannten SSL-Zertifikaten von Let’s Encrypt. Setzte einfach den DNS deiner Domain auf die IP-Adresse des Load Balancers und lasse mit einem Klick automatisch ein Let’s Encrypt Zertifikat erstellen. Wir kümmern uns für dich auch automatisch um das Erneuern des Zertifikates.

Externe Ressourcen

Bei uns kannst du auch externe Server über IP-Adresse oder Hostname an deinen Load Balancer anbinden. Damit hast du maximale Freiheit beim Anbinden deiner Ressourcen und kannst deine Infrastruktur somit noch flexibler aufstellen.

Gewichtung der Backend Server

Im Expert Panel View kannst du selbst bestimmen, mit welcher Gewichtung die Last auf die Backend Server verteilt werden soll.


Load Balancer Anwendungsbereiche

Skalierung der Cloud

Einer der Anwendungsfälle, bei denen ein Load Balancer sehr häufig angewendet wird, ist die Verteilung von HTTP-Requests auf eine Gruppe von Anwendungsservern. Durch die Lastverteilung auf mehrere Server wird eine Performance Verbesserung erreicht und das Ausfallrisiko minimiert. Ein klassisches Szenario ist etwa das Abfangen von Traffic Spitzen (z.B. durch die Schaltung von TV-Werbung) ohne Performance Verluste. Die IT kann dank der Einfachheit der Cloud, die Infrastruktur individuell skalieren und dem Level der Nachfrage anpassen.

Aber das ist nicht der einzige Use-Case für einen Load Balancer. Nachfolgend stelle ich dir weitere nützliche Use-Cases von einem Load Balancer vor:

High Availability

Die Hochverfügbarkeit von Systemen ist zu einem grundlegenden Faktor in der Cloud Umgebung geworden – und das nicht nur, wenn es sich um kritische Systeme handelt.
Durch die Ausführung von regelmäßigen Health-Checks auf den verbundenen Cloud-Servern, erhöht sich die Verfügbarkeit. Server, die nicht erreichbar sind, werden automatisch durch den Load Balancer aus dem Serverpool entfernt.

Blue-Green Deployment

Beim Blue-Green Deployment handelt es sich um einen Ansatz der Anwendungsentwicklung. Neue Anwendungen oder Veränderungen an der Software können so innerhalb der produktiven Cloud-Umgebung getestet werden. Der Load Balancer ist in diesem Fall dafür da, den Traffic auf die neue Version der Entwicklungsumgebung umzuleiten. Der Vorteil ist, dass der Load Balancer einfach wieder auf die alte Umgebung routen kann, sollte es zu unerwarteten Problemen kommen.


Use-Case Hello, Load Balancer!

In dem folgenden Anwendungsbeispiel legst du einen Load Balancer an, welcher die Verteilung der HTTP-Request auf die dahinter liegenden Anwendungsserver übernimmt. Die Voraussetzungen dafür sind lediglich zwei aktive Cloud Server (bspw. bei gridscale) und ein installierter nginx auf beiden, damit der Load Balancer die Anfragen auf deine Webserver verteilen kann.

Einrichtung zweier Cloud Server

Voraussetzung für den Use-Case sind zwei Cloud Server, die die Backend Server für den Load Balancer darstellen. Die beiden Cloud Server habe ich mit wenigen Klicks via gridscale Template mit Ubuntu 18.04 LTS erstellt. Weitere Voraussetzung auf beiden Cloud Servern ist ein installierter nginx Webserver.

Als Hostnamen habe ich nginx_server1 und nginx_server2 vergeben. Nachdem du die Cloud Server erstellt und die Softwarepakete aktualisiert hast, installiere dir einen nginx auf beiden Systemen.

apt update -y && apt upgrade -y

apt install nginx

Anschließend muss eine abweichende HTML-Datei im Web-Root-Verzeichnis der beiden Server hinterlegt werden, damit die Server bei der späteren Demonstration unterschieden werden können. Wechsel als erstes in dein Web-Root-Verzeichnis mit:

cd /var/www/html/

In dem Verzeichnis erstellst du eine neue Datei index.html und schreibst mit einem Editor deiner Wahl (nano, vim etc.) folgenden Inhalt und speicherst ihn ab:

<!DOCTYPE html>
<html>    <head>
        <title>Hello, Load Balancer!</title>
    </head>
    <body>        <h1>Server 1: Hello, Load Balancer!</h1>
    </body>
</html> 

Auf deinem zweiten Host schreibst du anstelle von “Server 1: …” – “Server 2: …” in die HTML-Datei.

Das war’s. Damit sind alle Server Vorbereitungen für die Use-Case Demonstration geschaffen und du kannst dazu übergehen, den Load Balancer zu konfigurieren.

Cloud Load Balancer erstellen

Den gridscale Load Balancer erstellst du einfach wie gewohnt in der grafischen Benutzeroberfläche. Einfach im Bereich Load Balancer auf “Load Balancer hinzufügen” klicken und die Konfigurationsdialoge durchklicken.

Konfiguration des Load Balancer

Im Konfigurations-Menü definierst du deine Einstellungen für den Load Balancer. Vergebe hier zunächst einen eindeutigen Namen. Anschließend wählst du eine IPv6 und IPv4 IP-Adresse für den Load Balancer aus.

Load Balancer Forwarding Rules

Unter Forwarding Rules setzt du einen Haken bei HTTP. Der Einfachheit halber, belassen wir es in unserem Use-Case bei HTTP und hinterlegen kein SSL-Zertifikat.

Backend Server (Zielserver)

Unter Zielserver wählst du die Cloud Server aus, die mit deinem Load Balancer verbunden werden sollen. Setze hier einen Haken bei deinen zuvor vorbereiteten Hosts.

Erweiterte Load Balancer Einstellungen

Unter “Erweiterte Einstellungen” wählst du unter Algorithmus “Round Robin” aus. Mit Round Robin wird die Last mittels einer Warteschlange gleichmäßig auf die verbundenen Server verteilt. In unserem Use-Case bedeutet dies, dass die eingehenden Requests abwechselnd von Server 1 und Server 2 entgegengenommen werden.

Damit ist die Konfiguration für unseren Use-Case “Hello, Load Balancer!” abgeschlossen, klicke jetzt noch auf “Load Balancer erstellen”, um deinen Load Balancer anzulegen.

So sieht der fertig angelegte Load Balancer im gridscale Panel aus

Load Balancer testen

Nun ist alles vorbereitet, für deinen Test. Du kannst jetzt überprüfen, ob der Load Balancer die Anfragen gleichmäßig auf deine Backend Server verteilt.

Rufe die IP-Adresse des Load Balancer in deinem Browser auf und öffne dann ein weiteres Browser Fenster; aber diesmal im Inkognito-Modus bzw. Privaten-Modus, hier rufst du ebenfalls die IP-Adresse auf.

Wenn alle klappt, siehst du nun wie der erste Browser auf Server1 und der zweite Browser auf Server2 umgeleitet wird.


Erweiterte Einstellungen des Cloud Load Balancer

In diesem Abschnitt erkläre ich alles zu der Konfiguration des gridscale Load Balancer.

Wir gehen zunächst Step by Step die Konfiguration in der easy Panel Ansicht durch. Im Anschluss daran gehe ich noch auf die Besonderheiten und zusätzlichen Funktionen ein, die dir im Expert Panel bereitstehen. Zum Load Balancer Menü gelangst du über das seitliche Menü innerhalb deines gridscale Panels. Mit einem Klick auf “Load Balancer hinzufügen” öffnet sich das Konfigurations-Menü.

Im Konfigurations-Menü angekommen definierst du die Einstellungen für deinen Load Balancer.

Zum Anlegen vergibst du zunächst einen eindeutigen Namen. Im nächsten Abschnitt kannst du eine IPv4 und IPv6 Adresse für den Load Balancer anlegen. Die Auswahl einer IPv6 Adresse muss unbedingt erfolgen, damit der Loadbalancer erstellt werden kann. Eine IPv4 Adresse kannst du optional auswählen.

Forwarding Rules

Im Abschnitt Forwarding Rules kannst du zwischen HTTP und HTTPS wählen. Zudem kannst du unter Custom, aus weiteren Protokollen wählen und deine eigenen Port-Regeln definieren.

Load Balancer mit Let’s Encrypt Zertifikat

Wenn du eine Domain per DNS Regel auf die IP-Adresse geleitet hast, die der Load Balancer verwendet, kannst du automatisch ein Let’s Encrypt Zertifikat erstellen lassen. Wir kümmern uns auch darum, dass es regelmäßig erneuert wird.

Zielserver verbinden

Im Abschnitt Zielserver wählst du die Cloud Server aus, die mit deinem Load Balancer verbunden werden sollen.

Dir stehen hier alle Server aus deinem gridscale Panel zur Verfügung. Desweiteren kannst du mit einem Klick auf “Eigene IP-Adressen bestimmen”, deine Server individuell über die IP-Adresse und Hostname, mit dem gridscale Load Balancer verbinden.

Erweiterte Einstellungen

Unter erweiterte Einstellungen legst du fest, welcher Algorithmus der Load Balancer für die Verteilung der Connections anwenden soll. Du kannst hier zwischen Least Connection und Round Robin auswählen. Desweiteren kannst du eine HTTP nach HTTPS Weiterleitung definieren.

Expert Panel Besonderheiten

Die Konfiguration im Expert Panel View gibt dir die volle Kontrolle über die Konfiguration deines Load Balancer. Zusätzliche Funktionen, die dir nur in der Expert Panel View bereitstehen, sind Gewichtung der Server und Labels.

Gewichtung

Unter Gewichtung kannst du für jeden deiner Server, einen Wert zwischen 0 und 255 festlegen und so eine individuelle Lastverteilung einrichten. Bei 0 ist der Zielserver deaktiviert und bekommt kein Traffic ab.

Labels

Mithilfe von Labels kannst du deinen Load Balancer eindeutig kennzeichnen.