Einkaufsführer (Cloud-)Loadbalancer

Lesezeit
5 Minuten
Bis jetzt gelesen

Einkaufsführer (Cloud-)Loadbalancer

30.08.2023 - 06:53
Veröffentlicht in:

Jede Webseite, die auf mehr als einem Webserver läuft, braucht einen Mechanismus, um die Last zwischen diesen Servern zu verteilen. Diese Funktion übernimmt klassischerweise der Loadbalancer. Er wird als technische Instanz vor den Webserver geschaltet. Für Unternehmen, die ihre Anwendung in der Cloud hosten, gehört der Loadbalancer sogar zum Herzstück der IT-Architektur. Wir erklären im Einkaufsführer, welche Funktionen im Kern der Cloudinfrastruktur unbedingt enthalten sein sollten.

Nicht nur bei Webanwendungen kommen Loadbalancer zum Einsatz. Im Prinzip sind sie bei jeder hochverfügbaren oder fehlertoleranten Applikation unabdingbar. Gerade bei Liveanwendungen ist die Lastenverteilung ein essenzieller Teil der modernen IT-Infrastruktur. Bei vielen Dienstleistungen setzen Nutzer eine schnelle und sichere Transaktion der IT-Anwendungen voraus. Technisch komplexere Applikationen in der Cloud erfordern vielfältige Aufgaben für den Loadbalancer, wie beispielsweise den Schutz vor Angriffen via SQL-Injections und das Skalieren von Containern.

Wichtigste Funktion: Hochverfügbarkeit und Fehlertoleranz
Ein Loadbalancer macht Anwendungen hochverfügbar, georedundant und auch elastisch. Durch die Verteilung des Datenverkehrs auf mehrere Server oder Instanzen bietet er eine erhöhte Redundanz und Ausfallsicherheit. Wenn ein Server ausfällt oder gewartet werden muss, kann der Loadbalancer den Traffic automatisch an einen anderen Server umleiten, um den Service aufrechtzuerhalten.

Der Loadbalancer verteilt Netzwerkanfragen auf unterschiedliche Server.
Bild 1: Der Loadbalancer verteilt Netzwerkanfragen auf unterschiedliche Server.
 

Stehen immer genug Ressourcen zur Verfügung, spricht man von einer Fehlertoleranz. Muss der Traffic komplett geschwenkt werden oder müssen neue Ressourcen gestartet werden, kann es zu einem kurzzeitigen Ausfall kommen. Dieser dauert in der Regel jedoch nur Sekunden und erlaubt asynchrone Replikation, zum Beispiel an einem Disaster-Recovery-Standort. Auch für diese Hochverfügbarkeits-Szenarien ist der Loadbalancer die treibende Kraft.

Klassische Verteilalgorithmen des Loadbalancers auf einem Webserver
Viele Funktionen, die wir heute in einer modernen Infrastruktur finden, sind ohne Loadbalancer nicht realisierbar. Er verteilt den eingehenden Netzwerkverkehr auf mehrere Backend-Server oder Instanzen, um sicherzustellen, dass keine einzelne Ressource überlastet wird. Dies verbessert die Leistung der Anwendung und kann zu einer höheren Leistungsdichte, also einer Optimierung zur Verfügung stehender Ressourcen, führen. Zu den fünf gängigsten Verteilalgorithmen gehören Round Robin, Least Connection, IP-Hash, Least Response Time und Weighted Round Robin:

  • Round Robin: Bei diesem Algorithmus werden die Anfragen sequenziell an die verfügbaren Server weitergeleitet. Jeder Server erhält also in einer regelmäßigen Reihenfolge eine Anfrage.
  • Least Connection: Hierbei kommt die Anfrage zu dem Server, der aktuell die wenigsten Verbindungen hat. Dadurch verteilt sich der Datenverkehr gleichmäßig auf die Server, basierend auf ihrer aktuellen Auslastung.
  • IP-Hash: Bei diesem Algorithmus wird der Verteilungsentscheid basierend auf der Quell-IP-Adresse der Anfrage getroffen. Eine bestimmte IP-Adresse wird immer an denselben Server weitergeschickt, was die Aufrechterhaltung von Sitzungsdaten oder Zustandsinformationen erleichtern kann.
  • Least Response Time: Dieser Algorithmus übermittelt die Anfragen an den Server mit der geringsten durchschnittlichen Antwortzeit. Dadurch werden die Anfragen bevorzugt an schnellere Server geschickt, um die Gesamtlatenz zu minimieren.
  • Weighted Round Robin: Hierbei werden den Servern Gewichte zugewiesen, um die Verteilung des Datenverkehrs zu steuern. Ein Server mit einer höheren Gewichtung erhält mehr Anfragen als ein Server mit einer niedrigeren Gewichtung. So lassen sich auch ältere Server zusammen mit neuen, leistungsfähigeren Maschinen weiter betreiben.

Loadbalancer als Reverse Proxy
Ein Loadbalancer fungiert fast immer als Reverse Proxy und maskiert alle dahinterliegenden Server. Von außen ist damit nicht erkennbar, wie viele Server hinter einer Anwendung stehen und wie sie heißen. Durch den nach innen gerichteten Loadbalancer können sie zudem nicht direkt von Dritten angesteuert werden und sind damit geschützt. Alle Anfragen laufen dabei durch den Loadbalancer. Zudem kann er das Session-Handling und SSL-Offloading abnehmen – zwei Anforderungen, die die Server sonst stark belasten würden. Diese Funktionen in Layer 7 erlauben darüber hinaus Deep Packet Inspection und können beispielsweise die Validität und Integrität der HTTP-Pakete prüfen, eine URL-basierte Verteilung vornehmen oder auf SQL-Injections testen.

Das Admin-Interface lässt sich so für einzelne IP-Adressen einschränken. Für interne Anwendungen gibt es auch Pass-Through-Loadbalancer, die als Vermittler zwischen den Clients und Backend-Servern agieren. Hierbei werden weder die Server maskiert noch eine automatische Analyse des Datenverkehrs erstellt. Diese hoch performante Variante setzen IT-Teams beispielsweise bei internen Datenbankverbindungen oder auf Entwicklungsservern ein.

Sicherheitsfunktion: Schutz des Loadbalancer
Loadbalancer tragen maßgeblich zur Sicherheit Ihrer IT-Infrastruktur bei, sind aber selbst häufig Attacken ausgeliefert. Denn viele Angriffe zielen direkt auf diesen Baustein ab, wie beispielsweise Distributed-Denial-of-Service-Attacken (DDoS). Hierbei versuchen Außenstehende, den Loadbalancer zu überlasten und die Webseite so lahmzulegen.

Demnach ist es wichtig, vorher eine gute Analyse und Mitigation vorzunehmen. Daher sollte jeder Loadbalancer DDos-geschützt sein, wie beispielsweise beim europäischen Cloudanbieter OVHcloud, bei dem alle Netzwerkkomponenten vor dieser Art von Angriffen geschützt sind. Der Loadbalancer selbst kann Sicherheitsfunktionen wie Web Application Firewall (WAF) und Authentifizierung implementieren und übernehmen. Er kann auch IP-Filterung und Rate Limiting durchführen, um bösartigen Datenverkehr abzuwehren.

Lastenverteilung in unterschiedlichen OSI-Layern
Loadbalancer können auf verschiedenen OSI-Layern arbeiten und zum Einsatz kommen. Für Webserver befinden sie sich beispielsweise im Layer 7 und steuern HTTP- und HTTPS-Anfragen, oder im Layer 4, wo der Datenaustausch über TCP und UDP verwaltet wird. Loadbalancer in den darunterliegenden Layern 2 und 3 bieten die Möglichkeit, Ressourcen in der Cloud flexibel zu verteilen. Layer-3-Loadbalancer finden dabei häufig Verwendung, wohingegen Layer-2-Loadbalancer eher ein Nischendasein wie im SAN (Storage Area Networks) fristen.

Loadbalancer ermöglicht Georedundanz
Loadbalancer im Layer 3 verteilen IP-Adressen. Sie kommen zum Einsatz, um Georedundanz zwischen verschiedenen Rechenzentren zu schaffen. Eine IT-Infrastruktur sollte immer in mindestens zwei geographisch-getrennten Rechenzentren gehostet werden und redundant vorliegen. In einem Failover-Szenario leitet der IP-Loadbalancer die Anfragen dann an den Loadbalancer der zweiten IP-Adresse weiter, sodass die Anwendungen jederzeit laufen. Der Loadbalancer ermöglicht auf dieser Ebene das Schwenken der IP-Adresse, damit sie jederzeit verfügbar bleibt – technisch gesehen also ein Loadbalancer für Loadbalancer.

Schematische Darstellung eines georedundantem und fehlertolerantem Loadbalancer-as-a-Service-Systems.
Bild 2: Schematische Darstellung eines georedundantem und fehlertolerantem Loadbalancer-as-a-Service-Systems.
 

To-Do-Liste in der Cloud wächst erheblich
Moderne Loadbalancer auf der Cloudebene übernehmen heutzutage immer mehr Aufgaben. Im Gegensatz zur klassischen Variante, die zum Beispiel bei Webservern eingesetzt wird, analysiert der Loadbalancer auf Cloudebene noch mehr Metriken und ist per API automatisierbar. Auf dieser Ebene werden verschiedene Microservices miteinander verkettet – was ein Mikroservice ist, definiert der Cloud-Loadbalancer. So lassen sich beispielsweise auch unterschiedliche Container als Microservice definieren. Das heißt, dass der Loadbalancer auf dieser Ebene die verschiedenen Metriken, Server und Container zuweist.

Container-basierte Lösungen erlauben es den Nutzern, die eingesetzten Werkzeuge selbst zu definieren. Große Cloudanbieter definieren viele Services vor, was die Nutzung zwar einerseits einfacher macht, andererseits aber auch Einschränkungen mit sich bringt und keine individuelle Anpassung erlaubt.

Neue Formen der Elastizität durch Cloud-Loadbalancer
Die gesamte Elastizität einer Applikation resultiert damit aus dem Cloud-Loadbalancer, der entscheidet, wie viele Instanzen hinzugefügt oder wieder vernichtet werden sollen. Damit muss er nicht nur die Last verteilen, sondern auch die Infrastruktur verwalten. Moderne Cloud-Loadbalancer können also bestimmte Grenzwerte oder Trigger-Punkte setzen, um die Infrastruktur automatisch wachsen oder wieder schrumpfen zu lassen.

Abhängig von der genutzten Technologie lassen sich in einer Cloudumgebung verschiedene Ausprägungen eines Loadbalancers verwenden. In der Public Cloud ist der Loadbalancer eine Netzwerkkomponente. Der europäische Cloudanbieter OVHcloud nutzt beispielsweise die Open-Source-Software HA-Proxy, um Layer-4- und Layer-7-Loadbalancer zu betreiben. In der seit 2012 betriebenen OpenStack-Umgebung kommt Octavia als API-gesteuerter, cloudnativer Loadbalancer zum Einsatz. In der Container-basierten Managed-Kubernetes-Umgebung erzeugt und verwaltet er elastische Workloads.

Sehr viele Cloud-Loadbalancer werden für den Netzwerkverkehr eingesetzt. Eine Ausnahme davon ist der Ressource-Scheduler, der Lasten innerhalb einer Public Cloud verwaltet. Er bestimmt, auf welchem Host eine neue Instanz startet oder ob laufende Instanzen migriert werden. Ein Loadbalancer für die Applikationen ist nach außen hin nicht sichtbar und funktioniert nur innerhalb der Applikation. In der Cloudwelt ist eine Region ein Konglomerat mehrerer Rechenzentren. Ein globaler Loadbalancer ist hingegen unabhängig vom Standort. Dazu zählt beispielsweise der IP-Failover-Loadbalancer.

Flexible Skalierung beim Cloud-Loadbalancer
Ein Loadbalancer ermöglicht die horizontale Skalierung, indem er neue Server oder Ressourcen automatisch hinzufügt, um mit erhöhtem Verkehr oder Lastspitzen umzugehen. Bei Bedarf lassen sich zusätzliche Ressourcen dynamisch hinzufügen und bei geringerem Verkehr wieder entfernen.

Je nach Einsatzgebiet des Cloud-Loadbalancers gibt es unterschiedliche Stufen der Skalierbarkeit. Cloud-Loadbalancer als Hardwareinstanzen bieten vergleichsweise wenig Skalierbarkeit, nur durch zusätzliche Lizenzen und Server lässt sich die Rechenleistung verändern. Sie werden heutzutage nur bei sehr großen Kapazitäten eingesetzt, beispielsweise von Betreibern mehrerer Rechenzentren selbst. Cloud-Loadbalancer als Softwareinstanz bieten hingegen mehr Flexibilität und Skalierbarkeit. Sie werden im cloudnativen Bereich am häufigsten genutzt und sind als Produkt erhältlich. Die größte Flexibilität und beste Skalierbarkeit bieten Cloud-Loadbalancer als virtuelle Instanzen, dabei gibt es gemanagte, aber auch ungemanagte Angebote auf dem Markt.

Fazit
Das Toolset für einen Loadbalancer sollte hilfreiche Werkzeuge bieten, um ihn nach den eigenen Anforderungen passend zu konfigurieren. Loadbalancer für Webserver sind relativ einfach zu handhaben, dabei wird der Port nach außen und die Ansammlung von verfügbaren Servern im Hintergrund definiert. Ein cloudnativer Loadbalancer muss ein deutlich umfangreicheres Management-Interface und einen umfangreicheren Funktionsumfang bereitstellen. Hierbei ist es wichtig, dass sich die Metriken individuell konfigurieren lassen. Zudem muss er Sonden im Netzwerk haben, die dem Loadbalancer als Herzstück der Cloudinfrastruktur verschiedene Daten zur Analyse liefern. Der wichtigste Punkt eines Cloud-Loadbalancers ist und bleibt jedoch die Automatisierbarkeit durch eine API – erst sie ermöglicht eine elastische Cloud.

ln/Michael Kantner, Senior Presales Engineer bei OVHcloud

Ähnliche Beiträge

Im Test: IONOS Private Cloud - Trautes Heim, Cloud allein

Für die flexible Bereitstellung von Rechen- und Speicherkapazität bedienen sich viele Unternehmen Clouddiensten. Amazon Web Services und Microsoft Azure beispielsweise bieten skalierbare Umgebungen, um IT nach Bedarf zu nutzen. Für die Virtualisierung sensibler,interner Server hat sich hingegen die Private Cloud etabliert. Mit IONOS Private Cloud lassen sich auch derartige Daten und Dienste sicher auslagern. Wir haben das Angebot getestet und waren vor allem von der einfachen Integration in ein bestehendes Netzwerk angetan.
Digitale Zwillinge in der Fertigung (1) Redaktion IT-A… Mo., 02.12.2024 - 07:07
Digitale Zwillinge sind virtuelle Modelle von Maschinen, Systemen oder Prozessen, die die Funktionen des Originals genau reproduzieren. Sie dienen der Simulation in unterschiedlichen Umgebungen, Funktionszusammenhängen und Engpasssituationen. Im ersten Teil zeigen wir, welche Vorüberlegungen Sie vor der Einführung von digitalen Zwillingen anstellen sollten und was bei der Auswahl der Infrastruktur zu beachten ist.