beebright - stock.adobe.com
Welche Optionen für Cloud Load Balancing gibt es?
Erfahren Sie, wie sich Load Balancing in der Cloud von der herkömmlichen Verteilung des Netzwerk-Traffics unterscheidet und welche Dienste AWS, Google und Microsoft bieten.
Um den Nutzen und das Prinzip von Load Balancing zu verstehen, denken Sie an einen Besuch in Ihrer Bank. Wenn nur ein Mitarbeiter verfügbar ist, muss jeder Kunde dessen Dienste in Anspruch nehmen, was zu langen Wartezeiten und einer enormen Belastung für den Bankangestellten führt. Bei mehreren Mitarbeiten stellen sich die wartenden Kunden in einer Schlange an und werden vom nächsten freien Angestellten bedient.
In diesem einfachen Beispiel ist jeder der Bankmitarbeiter eine identische Instanz eines Workloads, und die bekannte Warteschlange dient als Load Balancer, um die Benutzeranfragen effizient auf diese Workload-Instanzen zu verteilen.
Was ist Load Balancing?
Unter Load Balancing versteht man den Prozess, den Netzwerk-Traffic auf zwei oder mehr Instanzen eines Workloads zu verteilen. IT-Teams nutzen Load Balancing, um zu gewährleisten, dass jede Instanz mit maximaler Effizienz arbeitet, ohne dass eine Instanz durch zu viel Netzwerk-Traffic überlastet wird oder ausfällt.
Traditionell befindet sich ein Load Balancer in einem lokalen Data Center als dediziertes physisches Netzwerkgerät oder -Appliance. Häufiger wird Load Balancing jedoch von einer Anwendung durchgeführt, die auf einem Server installiert ist – manchmal auch als virtuelle Appliance bezeichnet – und als Netzwerkdienst angeboten wird. Public Cloud Provider nutzen das Serviceparadigma und bieten softwarebasierte Load Balancer als eigenständige Cloud-Funktion an.
Sobald ein Load Balancer zum Einsatz kommt, fungiert er als Netzwerk-Frontend und verwendet häufig eine einzige IP-Adresse, um den gesamten für den Ziel-Workload bestimmten Netzwerk-Traffic zu erhalten. Der Load Balancer verteilt den Netzwerkverkehr gleichmäßig auf jede verfügbare Workload-Instanz oder drosselt den Traffic, um einen bestimmten Prozentsatz des Traffics an die einzelnen Instanzen zu senden.
Wenn es beispielsweise zwei identische Workloads gibt, sorgt ein Load Balancer dafür, dass jede Instanz 50 Prozent des eingehenden Netzwerkverkehrs erhält. Der Load Balancer kann diese Prozentsätze aber auch ändern, zum Beispiel auf das Verhältnis 60/40 Prozent, oder eine Erstverfügbarkeits-Regel implementieren, um den Traffic-Fluss an die Kapazitäten der einzelnen Workload-Instanzen anzupassen.
Bei einem Load Balancer können sich die Ziel-Workloads an verschiedenen physischen Orten befinden. Cloud Load Balancing bietet ähnliche Vorteile, die es Benutzern ermöglichen, den Netzwerkverkehr auf mehrere Instanzen innerhalb der gleichen Region oder über mehrere Regionen oder Verfügbarkeitszonen hinweg zu verteilen.
Was sind die Vorteile von Cloud Load Balancing?
Load Balancing bietet immer die gleichen Vorteile, unabhängig davon, ob es in einem lokalen Data Center oder in einer Cloud-Umgebung erfolgt:
- Bessere Skalierbarkeit und Performance von Workloads: Ein einzelner Workload oder eine einzelne Anwendung ist in Ordnung, solange hierbei der eingehende Traffic und die Anfragen zeitnah verarbeitet werden. Doch manchmal muss ein Unternehmen Workload-Instanzen hinzufügen, um ein größeres Volumen an Netzwerkverkehr sowie plötzliche und unerwartete Traffic-Spitzen zu bewältigen. Ein Load Balancer ist hier von entscheidender Bedeutung, um den Traffic in eine Warteschlange zu stellen und auf mehrere Instanzen zu verteilen, damit die Anwendung insgesamt effizient und mit zufriedenstellender Benutzererfahrung (UX) läuft.
- Bessere Workload-Zuverlässigkeit: Wenn ein einziger Workload 100 Prozent der eingehenden Anfragen übernimmt, stellen die zugrunde liegende Software und die zugrunde liegende Hardware einen Single Point of Failure für den Workload dar. Weitere Workload-Instanzen hinzuzufügen und den Traffic zwischen ihnen per Load Balancing zu verteilen, verbessert die Resilienz und Verfügbarkeit des Workloads entscheidend. Wenn eine Workload-Instanz (Knoten) ausfällt, arbeiten die anderen weiter und leiten den Traffic an die verbleibenden Instanzen. Dies ist das Kernelement von hochverfügbaren Workload-Bereitstellungen.
- Bessere Business Continuity (BC) und Business Governance: Für viele Unternehmen ist die Anwendungsverfügbarkeit von zentraler Bedeutung für die Business Governance und die Einhaltung von Vorschriften. Die Implementierung mehrerer Workloads in einen Cluster und die Aufteilung des Datenverkehrs mit Load Balancern ist ein wichtiges Instrument, um die Zuverlässigkeit von Workloads zu erhöhen. Das wiederum wirkt sich positiv auf die Business Continuity aus und hilft dem Unternehmen, die Compliance-Verpflichtungen zu erfüllen.
Welche verschiedenen Arten von Load Balancing gibt es beim Cloud Computing?
Unternehmen können Load Balancing auf unterschiedliche Weise implementieren und es so anpassen, dass es bestimmte Traffic-Ziele unterstützt oder optimiert:
- Hardware: Hierbei handelt es sich um ein herkömmliches physisches Gerät, das mit dem physischen Netzwerk verbunden ist. Ein Hardware-Load-Balancer kann über Chipsätze verfügen, die speziell für die Bewältigung des Traffics bei voller Netzwerkgeschwindigkeit ausgelegt sind. Daher werden diese Load Balancer in der Regel in Data Centern mit hohem Datenaufkommen installiert, in denen die Performance oberste Priorität hat.
- Software: Software, die auf einem normalen Enterprise-Server installiert ist, eignet sich ebenfalls für Load Balancing. Dies ist im Allgemeinen weitaus kostengünstiger als dedizierte Hardware-Load-Balancer, und Upgrades sind üblicherweise einfacher als bei dedizierten Load-Balancing-Geräten.
- Virtuelle Instanzen: Ein Unternehmen kann die Load-Balancing-Software in eine virtuelle Maschine (VM) oder eine virtuelle Anwendung packen und sie dann auf einem virtualisierten Server bereitstellen. Dieser Prozess ist einfacher, weil die Load-Balancing-Software bereits in der VM installiert und konfiguriert ist. Außerdem lässt sie sich wie jede andere VM problemlos zwischen virtuellen Servern migrieren.
Cloud Load Balancing und die Schichten des Netzwerkverkehrs: Layer 4 versus Layer 7
Load Balancing wird durch den Typ des Netzwerk-Traffics auf Grundlage des traditionellen siebenschichtigen OSI-Netzwerkmodells (Open Systems Interconnection) bestimmt. Cloud Load Balancing wird in den meisten Fällen auf Layer 4 (Transportschicht) oder Layer 7 (Anwendungsschicht) durchgeführt.
Einige Cloud-Load-Balancing-Dienste arbeiten auf Layer 4, um Daten von Protokollen der Transportschicht, etwa TCP, UDP und TLS, weiterzuleiten. Load Balancing auf dieser unteren Ebene des Netzwerk-Stacks bietet die beste Performance – Millionen von Netzwerkanfragen pro Sekunde mit geringer Latenz – und ist eine hervorragende Option für unregelmäßige oder unvorhersehbare Traffic-Muster. Zu den Load-Balancing-Services auf Layer 4 gehören der AWS Network Load Balancer, das TCP/UDP Load Balancing der Google Cloud Platform (GCP) und der Microsoft Azure Load Balancer.
Auf der obersten Ebene des Netzwerk-Stacks, Layer 7, wird der komplexere Traffic abgewickelt, zum Beispiel HTTP- und HTTPS-Anfragen. Jeder der großen Cloud Provider bietet dafür eine eigene Funktion oder einen eigenen Dienst:
- AWS Application Load Balancer
- Azure Application Gateway
- Google Cloud HTTP(S) Load Balancing
Da dieser Traffic viel weiter oben im Netzwerk-Stack angesiedelt ist, können IT-Teams erweiterte inhalts- oder anforderungsbasierte Routing-Entscheidungen implementieren. Diese Optionen eignen sich gut für moderne Anwendungsinstanzen und -architekturen, wie Microservices und containerbasierte Workloads.
Die Wahl eines Cloud Load Balancers sollte sich nicht nur auf die Art des Traffics beschränken. Cloud-Anbieter unterscheiden Load-Balancing-Dienste auch nach Umfang und Rahmenbedingungen. So schlägt die GCP etwa globale Load-Balancing-Services vor, wenn die Workloads über mehrere Regionen verteilt sind. Regionale Load-Balancing-Services sind hingegen gut geeignet, wenn sich alle Workloads in der gleichen Region befinden. Ähnlich empfiehlt die GCP externe Load Balancer, wenn der Traffic aus dem Internet in die Workloads gelangt, und interne Load Balancer, wenn der Traffic innerhalb der GCP bleiben soll.
Umfangreichere Funktionen und Möglichkeiten der Cloud-Load-Balancing-Dienste der Anbieter sind ebenfalls nützlich. Dazu gehören die Unterstützung einer einzigen Frontend-IP-Adresse und der automatischen Skalierung von Workloads sowie die Integration mit anderen Cloud-Services, etwa Monitoring und Alerting.
Welche verschiedenen Arten von Algorithmen für Cloud Load Balancing gibt es?
Load Balancer nutzen sowohl für lokale Rechenzentren als auch für Public-Cloud-Dienste mehrere gängige Load-Balancing-Algorithmen, um den Traffic auf die verschiedenen Workload-Knoten zu verteilen. Zu diesen Algorithmen gehören:
- Round Robin: Bei dieser Methode werden die eingehenden Traffic-Anfragen gleichmäßig auf alle Workload-Instanzen (Knoten) verteilt. Wenn es beispielsweise drei Workload-Instanzen gibt, verteilt der Load Balancer den Datenverkehr in dieser Reihenfolge auf die einzelnen Instanzen: Anfrage 1 an Server 1, Anfrage 2 an Server 2, Anfrage 3 an Server 3, Anfrage 4 an Server 1 und so weiter. Round Robin funktioniert gut, wenn alle Knoten identisch sind und über ähnliche Computing-Fähigkeiten verfügen.
- Weighted Round Robin: Einige Workload-Instanzen verwenden Server mit unterschiedlichen Computing-Fähigkeiten. Mit Weighted Round Robin lässt sich ein bestimmter prozentualer Anteil des Traffics auf verschiedene Knoten verlagern, indem jedem Knoten eine Gewichtung zugewiesen wird. Leistungsstärkere Knoten erhalten eine höhere Gewichtung, und der Load Balancer schickt mehr Traffic zu ihnen.
- Least Connection: Der Datenverkehr wird zu den Workload-Instanzen mit den wenigsten Verbindungen oder der kürzesten Warteschlange geroutet, was bedeutet, dass diese Instanzen am wenigsten ausgelastet sind. Dieser dynamische Ansatz entlastet Instanzen, die komplexe Verarbeitungsanfragen zu bewältigen haben.
- Weighted Least Connection: Hierbei wird jedem Knoten eine Gewichtung zugewiesen, so dass Administratoren die Verteilung des Traffics auf Grundlage der Verbindungsaktivität anpassen können. Wenn alle Knoten identisch sind, kann dies zu einem Round-Robin- oder Weighted-Round-Verfahren führen. Aber im Idealfall erreicht man einen Ausgleich, um unterbeschäftigten oder leistungsfähigeren Knoten und Geräten mehr Traffic zukommen zu lassen.
- Ressourcenbasiert: Dieser adaptive Ansatz nutzt einen Softwareagenten auf jedem Knoten, um die Auslastung zu ermitteln und die Verfügbarkeit an den Load Balancer zu melden, der wiederum Entscheidungen über dynamisches Traffic Routing trifft. Dabei können auch Informationen von SDN-Controllern (Software-defined Networking) einfließen.
- Anfragebasiert: Load Balancer, insbesondere in der Cloud, können den Traffic auf Grundlage von Anfragefeldern verteilen, zum Beispiel HTTP-Header-Daten, Abfrageparameter sowie Quell- und Ziel-IP-Adressen. Auf diese Weise kann man den Datenverkehr von bestimmten Quellen zu den gewünschten Zielen routen und Sitzungen fortsetzen, die möglicherweise unterbrochen wurden.
Tools für Cloud Load Balancing
Die großen Public Cloud Provider bieten native Load Balancing Tools zur Ergänzung von Cloud-Service-Suiten an, aber Cloud-Nutzer sind nicht auf diese Optionen beschränkt. Es gibt etliche leistungsstarke und mit allen Funktionen ausgestattete softwarebasierte Load Balancer, die ein Unternehmen sowohl in lokalen Data Centern als auch in Cloud-Instanzen bereitstellen kann. Zu den populären Cloud-nativen Load Balancern und solchen von Drittanbietern gehören die folgenden Angebote:
- AWS Elastic Load Balancing
- Azure Load Balancer
- Cloudflare Load Balancing
- DigitalOcean Load Balancers
- GCP Cloud Load Balancing
- Imperva Global Server Load Balancing
- Linode NodeBalancers
- Kemp LoadMaster
- Nginx Plus
- Zevenet ZVA6000
Achten Sie bei der Auswahl eines Load Balancers auf die gesamte Palette an Merkmalen und Funktionen, um sicherzustellen, dass der Load Balancer auch in Zukunft die Anforderungen von Anwendungen und Unternehmen erfüllt. Zu diesen Merkmalen gehören neben Performance und Skalierbarkeit die Unterstützung von Sicherheit und Verschlüsselung sowie von Hybrid-Cloud- und Multi-Cloud-Umgebungen, die Kosten und vieles mehr.