Was ist der Unterschied zwischen Application, Network und Gateway Load Balancing?


Was ist der Unterschied zwischen Anwendungs-, Netzwerk- und Gateway-Load-Balancing?

Application Load Balancer (ALB), Network Load Balancer (NLB) und Gateway Load Balancer (GLB) sind drei Arten von Load Balancern, die in der Cloud verwendet werden. Load Balancing ist die Methode, um den Netzwerkverkehr gleichmäßig auf einen Pool von Ressourcen zu verteilen, die eine Anwendung unterstützen. Moderne Anwendungen verarbeiten Millionen von Benutzern gleichzeitig. Für dieses hohe Verkehrsaufkommen sind viele Ressourcenserver mit doppelten Daten erforderlich. Um den Anwendungsdatenverkehr umzuleiten, untersuchen ALBs den angeforderten Inhalt, z. B. HTTP-Header oder SSL-Sitzungs-IDs. NLBs überprüfen IP-Adressen und andere Netzwerkinformationen, um den Datenverkehr optimal umzuleiten. GLBs fungieren als transparentes Netzwerk-Gateway (ein einziger Eingangs- und Ausgangspunkt für den gesamten Datenverkehr) und verteilen den Datenverkehr, während Sie Ihre virtuellen Appliances je nach Bedarf skalieren.

Mehr über Load Balancing lesen

Funktionsweise: ALB im Vergleich zu NLB im Vergleich zu GLB

ALBs, NLBs und GLBs bieten alle unterschiedliche Funktionen. Aus diesem Grund funktionieren sie auf leicht unterschiedliche Weise und enthalten unterschiedliche Komponenten. 

So funktioniert ein Application Load Balancer

ALBs verteilen den eingehenden Datenverkehr auf mehrere Ziele, z. B. EC2-Instances. Beispielsweise verfügt eine E-Commerce-Anwendung über ein Produktverzeichnis, einen Warenkorb und Checkout-Funktionen. Der ALB 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.

Das ALB verfügt über eine Listener-Komponente, die nach Verbindungsanforderungen von Clients sucht. Sie können Regeln für einen Listener definieren, die bestimmen, wie der Load Balancer Anfragen an seine registrierten Ziele weiterleitet. Eine Zielgruppe sortiert registrierte Ziele in Gruppen ein. Sie können Regeln definieren, um allgemeinen Datenverkehr an eine ganze Gruppe weiterzuleiten. Sie können beispielsweise eine Zielgruppe für allgemeine Anfragen und andere Zielgruppen für Anfragen an die Microservices für Ihre Anwendung erstellen.

Das folgende Diagramm zeigt, wie ein ALB funktioniert.

So funktioniert ein Network Load Balancer

NLBs verteilen den Verkehr auf der Grundlage der Netzwerkbedingungen. Wenn Sie beispielsweise mehrere Datenbankserver mit doppelten Daten haben, leitet das NLB den Datenverkehr auf der Grundlage vorgegebener Server-IP-Adressen oder Serververfügbarkeit weiter.

Die NLB überwacht den Zustand ihrer registrierten Ziele und leitet den Verkehr nur an die funktionsfähigen Ziele weiter. Nachdem der Load Balancer eine Verbindungsanforderung erhalten hat, wählt er ein Ziel aus der Zielgruppe für die Standardregel aus. Es versucht, eine TCP-Verbindung zum ausgewählten Ziel auf dem in der Listener-Konfiguration angegebenen Port zu öffnen. Jede einzelne TCP-Verbindung wird für die Lebensdauer der Verbindung an ein einzelnes Ziel weitergeleitet. Ebenso können Sie einen UDP-Flow während seiner gesamten Lebensdauer konsistent an ein einzelnes Ziel weiterleiten. 

So funktioniert ein Gateway-Load-Balancer

Mit einem GLB können Sie virtuelle Appliances wie Intrusion Detection and Prevention, Firewalls und Deep Packet Inspection-Systeme bereitstellen, verwalten und skalieren. Er schafft einen einzigen Ein- und Ausstiegspunkt für den gesamten Appliance-Datenverkehr und skaliert Ihre virtuellen Appliances je nach Bedarf. Sie können ihn auch verwenden, um Datenverkehr über die Grenzen der Virtual Private Cloud (VPC) hinweg auszutauschen. 

Im GLB legen Sie Regeln mithilfe von Routing-Tabelle fest. Abhängig von den Regeln, die Sie einrichten, werden verschiedene Zielgruppen ausgewählt, an die der Datenverkehr weitergeleitet werden soll. Es empfängt IP-Pakete und leitet den Datenverkehr an bestimmte Zielgruppen weiter.

Hauptunterschiede: ALB im Vergleich zu NLB im Vergleich zu GLB

ALBs, NLBs und GLBs arbeiten auf verschiedenen Schichten Ihrer Netzwerkkommunikation. Ein ALB arbeitet auf OSI-Schicht 7 und ermöglicht die Manipulation und das Routing des Datenverkehrs auf Anwendungsebene. Ein NLB arbeitet auf Schicht 4 für die Verkehrsverwaltung auf Netzwerkebene auf der Grundlage von Ports und IP-Adressen. Ein GLB arbeitet über die Schichten 3 und 7 hinweg und bietet Balancing- und Routing-Dienste auf Netzwerkebene sowie Gateway-Funktionen.

Mehr über das OSI-Modell lesen

Hier sind weitere wichtige Unterschiede zwischen ALBs, NLBs und GLBs.

Zieltypen

Der Zieltyp ist der Endpunkt, an den jeder dieser Load Balancer den Datenverkehr weiterleitet. Ein ALB arbeitet mit IP-Adressen, Instances und AWS-Lambda-Zieltypen. NLBs arbeiten mit IPs und Instances und können den Datenverkehr für komplexere Anfragen auch an eine ALB weiterleiten. GLBs arbeiten mit IPs und Instancezieltypen.

Mehr über Instances im Cloud-Computing lesen

Proxy-Verhalten

Die Aktion, die ein Load Balancer ergreift, wenn er eine Client-Anfrage empfängt, hängt von einem von zwei Dingen ab:

  • Wenn der Load Balancer als Proxy fungiert und dann die Verbindung des Clients beendet
  • Wenn es die Anfrage weiterleitet, ohne den Flow zu beenden

Wenn der Flow beendet wird, können Load Balancer zusätzliche Funktionen zur Verwaltung des Datenverkehrs ausführen, z. B. SSL-Terminierung, Sitzungspersistenz und inhaltsbasiertes Routing. 

Ein ALB beendet die Client-Verbindung und baut dann eine neue Verbindung auf, die als Proxy fungiert. Ein NLB beendet auch die Clientverbindung und stellt im Namen des Clients eine neue her. Ein GLB fungiert jedoch nicht als Proxy und beendet die Verbindung nicht, sondern leitet den Datenverkehr direkt weiter.

Protokolle

Diese Load Balancer unterstützen verschiedene Protokolle, um bestimmte Arten von Datenverkehr zu verarbeiten und erweiterte Funktionen auszuführen. ALBs unterstützen HTTP-, HTTPS- und gRPC-Protokolle für webbasierten Datenverkehr. Ein NLB unterstützt TCP-, UDP- und TLS-Protokolle, die Verkehrsverteilungen auf Netzwerkebene abdecken. Schließlich deckt ein GLB IP-basiertes Routing ab und verarbeitet alle IP-basierten Protokolle. 

Algorithmen

Diese Load Balancer verwenden verschiedene Arten von Algorithmen, um den Traffic gleichmäßig auf ihre Ziele zu verteilen. Ein ALB verwendet standardmäßig einen Round-Robin-Algorithmus, der den Verkehr nacheinander weiterleitet. Ein NLB verwendet jedoch einen Flow-Hash-Algorithmus, sodass der Datenverkehr auf vorgegebene Weise an bestimmte Ziele weitergeleitet wird. Ein GLB verwendet Suchvorgänge in Routingtabellen, um zu ermitteln, wohin der Verkehr weitergeleitet werden soll. 

Einsatzbereich: ALB im Vergleich zu NLB im Vergleich zu GLB

Ein ALB ist eine gute Wahl, wenn Sie ein flexibles Verkehrsmanagement und Routing auf Anwendungsebene benötigen. Am besten eignet es sich für Microservices, containerisierte Umgebungen und Webanwendungen. Seine Features – wie SSL-Terminierung, Sitzungspersistenz und inhaltsbasiertes Routing – ermöglichen es, Unterstützung bei komplexen Routing-Szenarien anzubieten. 

Ein NLB eignet sich am besten für leistungsstarkes, skalierbares Balancing auf Netzwerkebene mit niedriger Latenz. Anwendungen, die den Verkehr auf der Transportschicht verteilen, verwenden NLBs, insbesondere im Hinblick auf deren Zuverlässigkeit. Spielesysteme, Medienstreaming-Dienste und große IoT-Systeme verwenden NLBs. 

Eine GLB ist ideal für den Lastenausgleich auf Netzwerk-Gateway-Ebene. Ein GLB funktioniert beispielsweise gut, wenn Sie den Datenverkehr zwischen Cloud- und On-Premises-Umgebungen oder zwischen verschiedenen Regionen verwalten. Da er das Balancing der OSI-Schichten 3 und 4 kombiniert, kann er den Verkehr zwischen verschiedenen Regionen und Netzwerken weiterleiten. Da er IP-basiertes Routing unterstützt, kann er den Datenverkehr auf virtuelle Gateways verteilen und bietet so eine hohe Skalierbarkeit und Verfügbarkeit.

Zusammenfassung der Unterschiede: ALB im Vergleich zu NLB im Vergleich zu GLB

 

Application Load Balancer (ALB)

Network Load Balancer (NLB)

Gateway Load Balancer (GLB)

OSI-Schicht

Funktioniert auf Schicht 7, der Anwendungsschicht.

Funktioniert auf Schicht 4, der Transportschicht.

Funktioniert auf der Netzwerkschicht, Schicht 3 und Schicht 7.

Zieltypen

Funktioniert mit IP-, Instance- und Lambda-Zieltypen.

Funktioniert mit IP-, Instance- und ALB-Zieltypen.

Funktioniert mit IP- und Instancezieltypen.

Proxy-Verhalten

Beendet die Verbindung.

Beendet die Verbindung.

Beendet den Ablauf nicht.

Protokolle

Unterstützt HTTP-, HTTPS- und gRPC-Protokolle.

Unterstützt TCP-, UDP- und TLS-Protokolle.

Unterstützt IP-basiertes Routing. 

Algorithmen

Round-Robin.

Flow-Hash.

Suche in der Routing-Tabelle.

Wie kann AWS Ihnen bei Ihren Lastausgleichs-Anforderungen helfen?

Elastic Load Balancing (ELB) ist ein vollständig verwalteter Lastausgleichs-Service. Er verteilt automatisch den eingehenden Anwendungsdatenverkehr an mehrere Ziele und virtuelle Appliances über Amazon Web Services (AWS) und On-Premises-Ressourcen. Darüber hinaus unterstützt er zonenübergreifendes Load Balancing über AWS-Regionen hinweg. Sie können ELB verwenden, um ALB, NLB oder GLB gemäß Ihren Anforderungen einzurichten. 

ALB ist eine Komponente von ELB. ELB unterstützt auch NLB, GLB und Classic Load Balancer. Diese Load Balancer sind Anlaufstellen für Kunden und tragen durch sichere Verwaltung zur Verbesserung der Anwendungsskalierbarkeit bei. Sie können einen oder mehrere Load Balancer auswählen und diese konfigurieren, wenn Sie ELB für Ihre Cloud-Umgebung einrichten.

Beginnen Sie mit dem Load Balancing auf AWS, indem Sie noch heute ein Konto erstellen.