Was ist Load Balancing?

Load Balancing ist die Methode, um den Netzwerkverkehr gleichmäßig auf einen Pool von Ressourcen zu verteilen, die eine Anwendung unterstützen. Moderne Anwendungen müssen Millionen von Benutzern gleichzeitig verarbeiten und den richtigen Text, Videos, Bilder und andere Daten schnell und zuverlässig an jeden Benutzer liefern. Um ein so hohes Datenverkehrsaufkommen zu bewältigen, verfügen die meisten Anwendungen über viele Ressourcenserver mit doppelten Daten. Ein Load Balancer ist ein Gerät, das sich zwischen dem Benutzer und der Servergruppe befindet und als unsichtbarer Vermittler fungiert und sicherstellt, dass alle Ressourcenserver gleich genutzt werden.

Was sind die Vorteile von Load Balancing?

Load Balancing lenkt und steuert den Internetverkehr zwischen den Anwendungsservern und ihren Besuchern oder Clients. Dadurch wird die Verfügbarkeit, Skalierbarkeit, Sicherheit und Leistung einer Anwendung verbessert.

Verfügbarkeit der Anwendung

Serverausfälle oder Wartungsarbeiten können die Ausfallzeit von Anwendungen erhöhen, so dass Ihre Anwendung für Besucher nicht mehr verfügbar ist. Load Balancer erhöhen die Fehlertoleranz Ihrer Systeme, indem sie Serverprobleme automatisch erkennen und den Client-Datenverkehr an verfügbare Server umleiten. Sie können Load Balancing verwenden, um diese Aufgaben zu vereinfachen:

  • Durchführen von Wartungsarbeiten oder Upgrades von Anwendungsservern ohne Ausfallzeiten
  • Automatische Notfallwiederherstellung für Backup-Sites
  • Durchführen von Zustandsprüfungen und Vermeidung von Problemen, die Ausfallzeiten verursachen

Skalierbarkeit der Anwendung

Sie können Load Balancer verwenden, um den Netzwerkverkehr intelligent zwischen mehreren Servern zu leiten. Ihre Anwendungen können Tausende von Clientanforderungen verarbeiten, denn Load Balancing bewirkt Folgendes:

  • Verhindert Verkehrsengpässe auf einem Server
  • Prognostiziert den Anwendungsdatenverkehr, sodass Sie bei Bedarf verschiedene Server hinzufügen oder entfernen können
  • Fügt Ihrem System Redundanz hinzu, sodass Sie sicher skalieren können

Anwendungssicherheit

Load Balancer verfügen über integrierte Sicherheitsfunktionen, um Ihren Internetanwendungen eine weitere Sicherheitsebene hinzuzufügen. Sie sind ein nützliches Werkzeug zur Bekämpfung verteilter Denial-of-Service-Angriffe, bei denen Angreifer einen Anwendungsserver mit Millionen von gleichzeitigen Anforderungen überfluten, die zu Serverausfällen führen. Load Balancer können auch Folgendes leisten:

  • Überwachen des Datenverkehrs und Blockieren schädlicher Inhalte
  • Automatisches Umleiten des Angriffsverkehrs an mehrere Backend-Server, um Auswirkungen zu minimieren
  • Weiterleiten des Datenverkehrs durch eine Gruppe von Netzwerk-Firewalls für zusätzliche Sicherheit

Anwendungsleistung

Load Balancer verbessern die Anwendungsleistung, indem sie die Reaktionszeit erhöhen und die Netzwerklatenz verringern. Sie erfüllen mehrere kritische Aufgaben wie die folgenden:

  • Gleichmäßiges Verteilen der Last zwischen Servern, um die Anwendungsleistung zu verbessern
  • Umleiten der Client-Anfragen an einen geografisch näher gelegenen Server, um die Latenz zu reduzieren
  • Sicherstellen der Zuverlässigkeit und Leistung physischer und virtueller Computerressourcen

Wie funktioniert Load Balancing?

Unternehmen lassen ihre Anwendung in der Regel auf mehreren Servern laufen. Eine solche Serveranordnung wird als Serverfarm bezeichnet. Benutzeranfragen an die Anwendung gehen zuerst an den Load Balancer. Der Load Balancer leitet dann jede Anforderung an einen einzelnen Server in der Serverfarm weiter, der für die Bearbeitung der Anforderung am besten geeignet ist.

Load Balancing ist wie die Arbeit eines Managers in einem Restaurant. Stellen Sie sich ein Restaurant mit fünf Kellnern vor. Wenn Kunden ihre Kellner wählen dürften, könnten ein oder zwei Kellner mit Arbeit überlastet sein, während die anderen untätig sind. Um dieses Szenario zu vermeiden, weist der Restaurantleiter Kunden den spezifischen Kellnern zu, die am besten geeignet sind, sie zu bedienen.

Was sind Load Balancing-Algorithmen?

Ein Load Balancing-Algorithmus ist ein Satz von Regeln, die ein Load Balancer befolgt, um den besten Server für jede der verschiedenen Clientanforderungen zu ermitteln. Load Balancing Algorithmen lassen sich in zwei Hauptkategorien unterteilen.

Statisches Load Balancing

Algorithmen für statisches Load Balancing folgen festen Regeln und sind unabhängig vom aktuellen Serverstatus. Im Folgenden finden Sie Beispiele für statisches Load Balancing.

Round--Robin-Methode

Server haben IP-Adressen, die dem Client mitteilen, wohin er Anfragen senden soll. Bei diesen IP-Adressen handelt es sich um lange Nummern, die schwer zu merken sind. Um es einfach zu machen, ordnet ein Domain Name System (DNS) Website-Namen Servern zu. Wenn Sie aws.amazon.com in Ihren Browser eingeben, geht die Anfrage zunächst an unseren Nameserver, der unsere IP-Adresse an Ihren Browser zurückgibt.

Bei der Round-Robin-Methode führt ein autorisierender Nameserver das Load Balancing anstelle von spezialisierter Hardware oder Software durch. Der Namenserver gibt abwechselnd oder im Round-Robin-Modus die IP-Adressen verschiedener Server in der Serverfarm zurück.

Gewichtete Round-Robin-Methode

Beim gewichteten Round-Robin-Load Balancing können Sie jedem Server je nach Priorität oder Kapazität unterschiedliche Gewichtungen zuweisen. Server mit höheren Gewichten erhalten mehr eingehenden Anwendungsdatenverkehr vom Nameserver.

IP-Hash-Methode

Bei der IP-Hash-Methode führt der Load Balancer eine mathematische Berechnung, Hashing genannt, für die Client-IP-Adresse durch. Es konvertiert die Client-IP-Adresse in eine Nummer, die dann einzelnen Servern zugeordnet wird.

Dynamisches Load Balancing 

Dynamische Load Balancing-Algorithmen untersuchen den aktuellen Status der Server, bevor der Datenverkehr verteilt wird. Im Folgenden finden Sie einige Beispiele für dynamische Load Balancing-Algorithmen.

Methode der geringsten Verbindung

Eine Verbindung ist ein offener Kommunikationskanal zwischen einem Client und einem Server. Wenn der Client die erste Anfrage an den Server sendet, authentifiziert er sich und stellt eine aktive Verbindung zueinander her. Bei der Methode der geringsten Verbindung überprüft der Load Balancer, welche Server die wenigsten aktiven Verbindungen haben, und sendet Datenverkehr an diese Server. Bei dieser Methode wird davon ausgegangen, dass alle Verbindungen die gleiche Rechenleistung für alle Server benötigen.

Methode der gewichteten geringsten Verbindung

Algorithmen für die gewichtete geringste Verbindung gehen davon aus, dass einige Server aktivere Verbindungen verarbeiten können als andere. Daher können Sie jedem Server unterschiedliche Gewichtungen oder Kapazitäten zuweisen, und der Load Balancer sendet die neuen Clientanforderungen an den Server mit den geringsten Verbindungen nach Kapazität.

Methode der geringsten Reaktionszeit

Die Antwortzeit ist die Gesamtzeit, die der Server benötigt, um die eingehenden Anforderungen zu verarbeiten und eine Antwort zu senden. Bei der Methode der geringsten Reaktionszeit werden die Serverantwortzeit und die aktiven Verbindungen kombiniert, um den besten Server zu ermitteln. Load Balancer verwenden diesen Algorithmus, um einen schnelleren Service für alle Benutzer zu gewährleisten.

Ressourcenbasierte Methode

Bei der ressourcenbasierten Methode verteilen Load Balancer den Datenverkehr, indem sie die aktuelle Serverlast analysieren. Ein spezialisierte Software, Agent genannt, wird auf jedem Server ausgeführt und berechnet die Nutzung von Serverressourcen wie Rechenkapazität und Arbeitsspeicher. Anschließend überprüft der Load Balancer den Agenten auf ausreichend freie Ressourcen, bevor der Datenverkehr an diesen Server verteilt wird.

Welche Arten von Load Balancing gibt es?

Load Balancing kann in drei Hauptkategorien unterteilt werden, je nachdem, was der Load Balancer in der Clientanforderung überprüft, um den Datenverkehr umzuleiten.

Load Balancing von Anwendungen

Komplexe moderne Anwendungen verfügen über mehrere Serverfarmen mit mehreren Servern, die für eine einzelne Anwendungsfunktion reserviert sind. Application Load Balancer überprüfen den Anforderungsinhalt, wie HTTP-Header oder SSL-Sitzungs-IDs, um den Datenverkehr umzuleiten. 

Beispielsweise verfügt eine E-Commerce-Anwendung über ein Produktverzeichnis, einen Warenkorb und Checkout-Funktionen. Der Application Load Balancer sendet Anfragen zum Durchsuchen von Produkten an Server, die Bilder und Videos enthalten, aber keine offenen Verbindungen aufrechterhalten müssen. Im Vergleich dazu sendet er Warenkorbanforderungen an Server, die viele Client-Verbindungen aufrechterhalten und Warenkorbdaten für eine lange Zeit speichern können.

Network Load Balancing

Network Load Balancer überprüfen IP-Adressen und andere Netzwerkinformationen, um den Datenverkehr optimal umzuleiten. Sie verfolgen die Quelle des Anwendungsdatenverkehrs und können mehreren Servern eine statische IP-Adresse zuweisen. Network Load Balancer verwenden die zuvor beschriebenen statischen und dynamischen Load Balancing-Algorithmen, um die Serverlast auszugleichen.

Globales Server-Load Balancing

Globales Server-Load Balancing erfolgt über mehrere geografisch verteilte Server hinweg. Unternehmen können beispielsweise Server in mehreren Rechenzentren, in verschiedenen Ländern und bei Cloud-Anbietern von Drittanbietern auf der ganzen Welt haben. In diesem Fall verwalten lokale Load Balancer die Anwendungslast innerhalb einer Region oder Zone. Sie versuchen, den Datenverkehr an ein Serverziel umzuleiten, das geografisch näher am Client liegt. Sie können den Datenverkehr nur bei einem Serverausfall auf Server außerhalb der geografischen Zone des Clients umleiten.

DNS-Load Balancing

Beim DNS-Load Balancing konfigurieren Sie Ihre Domain so, dass Netzwerkanforderungen über einen Ressourcenpool in Ihrer Domain weitergeleitet werden. Eine Domain kann einer Website, einem Mailsystem, einem Druckserver oder einem anderen Dienst entsprechen, der über das Internet zugänglich gemacht wird. DNS-Load Balancing ist hilfreich, um die Anwendungsverfügbarkeit aufrechtzuerhalten und den Netzwerkverkehr über einen global verteilten Ressourcenpool auszugleichen. 

Welche Arten von Load Balancing-Technologien gibt es?

Es gibt zwei Arten von Load Balancern: Hardware-Load-Balancer und Software-Load-Balancer.

Hardware-Load Balancer

Ein hardwarebasierter Load Balancer ist eine Hardware-Appliance, die Gigabytes an Datenverkehr sicher verarbeiten und zu Hunderten verschiedener Server umleiten kann. Sie können sie in Ihren Rechenzentren speichern und mithilfe der Virtualisierung mehrere digitale oder virtuelle Load Balancer erstellen, die Sie zentral verwalten können.

Software-Load Balancer

Softwarebasierte Load Balancer sind Anwendungen, die alle Load-Balancing-Funktionen ausführen. Sie können sie auf jedem Server installieren oder als vollständig verwalteten Drittanbieter-Service nutzen.

Vergleich von Hardware-Balancern mit Software-Load Balancern

Hardware-Load Balancer erfordern eine anfängliche Investition, Konfiguration und laufende Wartung. Möglicherweise werden sie auch nicht voll ausgelastet, vor allem, wenn sie nur angeschafft werden, um Spitzenzeiten zu bewältigen. Wenn das Datenverkehrsaufkommen plötzlich über die aktuelle Kapazität hinausgeht, wirkt sich dies auf Benutzer aus, bis Sie einen weiteren Load Balancer kaufen und einrichten können.

Im Gegensatz dazu sind softwarebasierte Load Balancer wesentlich flexibler. Sie können problemlos hoch- oder herunterskaliert werden und sind besser mit modernen Cloud-Computing-Umgebungen kompatibel. Außerdem kosten die Einrichtung, Verwaltung und Nutzung im Laufe der Zeit weniger.

Wie kann AWS beim Load Balancing helfen?

Elastic Load Balancing (ELB) ist ein vollständig verwalteter Load Balancing-Service, der eingehenden Anwendungsdatenverkehr automatisch an mehrere Ziele und virtuelle Appliances in AWS und On-Premises-Ressourcen verteilt. Sie können ELB verwenden, um moderne Anwendungen bedarfsgerecht ohne komplexe Konfigurationen oder API-Gateways zu skalieren. Mit ELB können Sie vier verschiedene Arten von Software-Load Balancern einrichten.

  • Ein Application Load Balancer leitet den Datenverkehr für HTTP-basierte Anfragen weiter.

  • Ein Network Load Balancer leitet den Datenverkehr basierend auf IP-Adressen weiter. Es ist ideal für das Balancing von TCP- und User Datagram Protocol-basierten (UDP) Anforderungen geeignet.

  • Ein Gateway Load Balancer leitet den Datenverkehr an virtuelle Geräte von Drittanbietern weiter. Es ist ideal geeignet, um eine Appliance eines Drittanbieters, wie z. B. eine Netzwerk-Firewall, auf skalierbare und einfach zu verwaltende Weise in Ihren Netzwerkverkehr zu integrieren.

  • Ein Classic Load Balancer leitet den Datenverkehr an Anwendungen im Amazon EC2-Classic-Netzwerk weiter – einem einzelnen, flachen Netzwerk, das Sie gemeinsam mit anderen Kunden nutzen.

Sie können den Load Balancer basierend auf Ihren Anforderungen auswählen. Beispielsweise verwendet Terminix, eine globale Schädlingsbekämpfungsmarke, Gateway Load Balancer, um 300 % mehr Durchsatz zu erzielen. Second Spectrum, ein Unternehmen, das auf künstlicher Intelligenz basierende Tracking-Technologie für Sportübertragungen anbietet, verwendet AWS Load Balancer Controller, um die Hosting-Kosten um 90 % zu senken. Code.org, eine gemeinnützige Organisation, die sich der Erweiterung des Zugangs zur Informatik an Schulen verschrieben hat, verwendet Application Load Balancer, um einen 400 %-igen Anstieg des Datenverkehrs bei Online-Coding-Veranstaltungen effizient zu bewältigen.

Beginnen Sie noch heute mit dem Load Balancing, indem Sie ein AWS-Konto erstellen!

Lastenverteilung mit AWS – nächste Schritte

Zusätzliche produktbezogene Ressourcen ansehen
Weitere Informationen zu Computing-Services 
Ein kostenloses Konto erstellen

Sie erhalten sofort Zugriff auf das kostenlose Kontingent von AWS. 

Registrieren 
Beginnen Sie mit der Entwicklung in der Konsole

Beginnen Sie mit der Entwicklung mit AWS in der AWS-Managementkonsole.

Anmeldung