Elastic Load Balancing ist das Herzstück der Anwendungen in AWS. Erfahren Sie in diesem Beitrag alles über ELB, seine Typen und Funktionen.

Heutzutage müssen die meisten Unternehmen die Skalierbarkeit, Verfügbarkeit und Fehlertoleranz ihrer Anwendungen verwalten und verbessern. AWS bietet hierfür mit dem Dienst Elastic Load Balancing eine hervorragende Lösung. Dieser Dienst besteht aus einem Load Balancer, der Workloads auf viele Rechenressourcen wie virtuelle Server verteilen kann.

Lastverteilung

Die Load Balancing-Dienste ermöglichen uns die Konfiguration Gesundheitschecks um den Zustand der Rechenressourcen zu überwachen. Außerdem können wir die Verschlüsselungs- und Entschlüsselungsarbeit auf Ihren Load Balancer auslagern, damit sich die Rechenressourcen auf ihre Hauptarbeit konzentrieren können.

Elastic Load Balancing (ELB): Overview

ELB ist ein Dienst, der eingehenden Datenverkehr automatisch auf mehrere verteilt EC2 Instanzen. Dies trägt dazu bei, höhere Fehlertoleranzniveaus in Ihren Anwendungen zu erreichen, indem die Lastausgleichskapazität für die Verteilung des Anwendungsdatenverkehrs bereitgestellt wird.

Elastischer Lastausgleich
Quelle: AWS

Darüber hinaus kann Elastic Load Balancing fehlerhafte EC2-Instances erkennen, und sobald festgestellt wird, dass eine EC2-Instance fehlerhaft ist, sendet ELB keinen Datenverkehr mehr an sie, bis sie wieder fehlerfrei ist. Kunden können Elastic Load Balancing problemlos innerhalb einer oder mehrerer Availability Zones aktivieren, um eine konsistentere Anwendungsleistung zu erzielen.

Elastic Load Balancing Features

Sicherheit

Sie können Sicherheitsgruppen verwalten und erstellen, die mit Elastic Load Balancing in Amazon verknüpft sind Virtuelle Private Cloud (VPC), um zusätzliche Netzwerk- und Sicherheitsoptionen für Application Load Balancer und Classic Load Balancer bereitzustellen.

Hohe Verfügbarkeit

Ein Elastic Load Balancer ist hochverfügbar. Sie können den eingehenden Datenverkehr zu Ihrer Anwendung auf EC2-Instances in einer einzelnen Availability Zone oder mehreren Availability Zones verteilen.

hoher Durchsatz

Elastic Load Balancer sind so konzipiert, dass sie den wachsenden Datenverkehr bewältigen und Millionen von Anfragen pro Sekunde laden und ausgleichen können. Es kann auch plötzliche Verkehrsspitzen bewältigen.

Gesundheitschecks

Mit Elastic Load Balancing können Sie den Zustand Ihrer EC2-Instances unter Kontrolle halten und riskieren nicht, Datenverkehr an eine fehlerhafte Instance zu senden.

Betriebsüberwachung und Protokollierung

Amazon CloudWatch meldet Anwendungs- und Classic Load Balancer-Metriken wie Fehleranzahl, Fehlertypen, Anfrage Latenz, Anzahl der Anfragen und mehr.

Schutz löschen

Sie können den Löschschutz auf einem Elastic Load Balancer aktivieren, um zu verhindern, dass er versehentlich gelöscht wird.

YouTube-Video

Components of Elastic Load Balancers

Zuhörer

Sie müssen einen oder mehrere Listener für Ihren Load Balancer konfigurieren. Es ist ein Prozess, der nach Verbindungsanforderungen sucht. Es ist mit einem Protokoll und einem Port für Verbindungen für die Front-End-Verbindungen (Client zu Load Balancer) und einem Protokoll für die Back-End-Verbindungen (Load Balancer zu Back-End-Instanz) eingerichtet.

Zu den unterstützten Protokollen für Elastic Load Balancing gehören:

  • HTTPS (sicheres HTTP)
  • TCP
  • SSL (sicheres TCP)

Lastenausgleicher

Ein Load Balancer dient als „Verkehrspolizist“ vor Ihren Servern und verteilt Client-Anfragen auf alle Server, die dafür ausgestattet sind, um sie so zu verarbeiten, dass Geschwindigkeit und Kapazitätsauslastung maximiert werden und sichergestellt wird, dass kein Server überlastet wird, was zu Leistungseinbußen führen kann.

Der Load Balancer leitet den Datenverkehr an die aktiven Server weiter, falls ein Server offline geht. Der Load Balancer initiiert Anfragen an einen neuen Server, wenn er zur Servergruppe hinzugefügt wird.

Zielgruppen

Anfragen werden unter Verwendung jeder Zielgruppe an ein oder mehrere registrierte Ziele geleitet. Sie definieren eine Zielgruppe und Bedingungen, wenn Sie jede Listener-Regel erstellen. Wenn eine Regelbedingung erfüllt ist, wird der Datenverkehr an die entsprechende Zielgruppe geleitet.

Für verschiedene Arten von Anfragen können Sie separate Zielgruppen erstellen. Erstellen Sie beispielsweise unterschiedliche Zielgruppen für Anfragen an die Microservices Ihrer Anwendung und generische Anfragen. 

Types of Load Balancers

Anwendungs-Load-Balancer

Application Load Balancer ermöglicht Entwicklern, eingehenden Endbenutzerdatenverkehr einzurichten und an Apps weiterzuleiten, die in der öffentlichen AWS-Cloud ausgeführt werden.

Load Balancing ist in einer Cloud-Umgebung mit zahlreichen Webanwendungen von entscheidender Bedeutung. Ein Load Balancer stellt sicher, dass kein einzelner Server überlastet wird, indem er den Netzwerkverkehr und den Informationsfluss auf mehrere Server aufteilt. Dies verbessert die Benutzererfahrung, erhöht die Reaktionsfähigkeit und Verfügbarkeit von Anwendungen und kann sich gegen verteilte Anwendungen schützen Denial-of-Service (DDoS) Angriffe.

YouTube-Video

Der Zugriff auf Webanwendungen hat in den letzten Jahren stark zugenommen. Unerwartete Verkehrszunahmen können jedoch Onlinedienste verlangsamen und die Verfügbarkeit verringern. Der Application Load Balancer verteilt effizient die Netzwerklast in der Public Cloud, um die Stabilität und Verfügbarkeit zu erhöhen.

Der Application Load Balancer leitet den Datenverkehr nur dann an ein fehlerfreies Ziel innerhalb der Cloud-Ressource weiter, wenn eine problematische Anwendung Layer 7 erreicht. WebSocket ist ein weiteres Protokoll, das von Application Load Balancer für eine verbesserte Konnektivität mit dem zugrunde liegenden Server unterstützt wird.

Websites und mobile Anwendungen, die in Containern oder auf ausgeführt werden AWS EC2 Instanzen profitieren am meisten von der Verwendung eines Application Load Balancers. In einer Microservices-Architektur kann Application Load Balancer als interner Load Balancer vor EC2-Instanzen oder Docker-Containern verwendet werden, die einen bestimmten Dienst implementieren. Darüber hinaus kann es vor einer RESTful-API-Anwendung verwendet werden.

Zahlreiche AWS-Services sind mit dem Application Load Balancer kompatibel, darunter:

  • AWS Auto Scaling
  • Amazon Elastischer Containerservice
  • AWS CloudFormation
  • AWS CodeDeploy
  • AWS-Zertifikatsmanager

Klassischer Load-Balancer

Der Datenverkehr von eingehenden Anwendungen wird mithilfe eines klassischen Load Balancers auf zahlreiche EC2-Instances in verschiedene Availability Zones aufgeteilt. Ein klassischer Load Balancer fungiert dabei als alleiniger Ansprechpartner des Kunden. Dadurch wird Ihre Anwendung zugänglicher. Ohne den allgemeinen Fluss von Anfragen an Ihre Anwendung zu beeinträchtigen, können Sie Ihrem klassischen Load Balancer Instanzen hinzufügen/entfernen, wenn sich Ihre Anforderungen ändern.

Ein Listener verwendet das von Ihnen festgelegte Protokoll und den Port, um Client-Verbindungsanfragen zu überwachen. Der Listener überträgt dann Anforderungen an eine oder mehrere registrierte Instanzen unter Verwendung des konfigurierten Protokolls und Ports. Sie ändern Ihren Load Balancer, indem Sie einen oder mehrere Listener hinzufügen.

Um sicherzustellen, dass der Load Balancer Anfragen nur an fehlerfreie Instanzen weiterleitet, können Sie Gesundheitsprüfungen konfigurieren, mit denen der Zustand der registrierten Instanzen im Auge behalten wird.

Der klassische Load Balancer verteilt den Datenverkehr standardmäßig gleichmäßig auf die Availability Zones, die Sie für Ihren Load Balancer aktivieren. Aktivieren Sie zonenübergreifendes Load Balancing auf Ihrem Load Balancer, um den Datenverkehr auf alle registrierten Instances in allen aktivierten Availability Zones zu verteilen.

Lastverteilung

Arten von Classic Load Balancer:

  • Classic Load Balancer mit Internetzugriff: Ein mit dem Internet verbundener Load Balancer kann dank seiner öffentlich auflösbaren DNS-Domäne Anfragen von Clients an die beim Load Balancer registrierten EC2-Instances über das Internet weiterleiten. Ihr Load Balancer erhält eine öffentliche DNS Name, wenn es erstellt wird, den Clients verwenden können, um Anfragen zu stellen. Die DNS-Server übersetzen den DNS-Namen Ihres Load Balancers in die öffentlichen IP-Adressen der Load Balancer-Knoten. Private IP-Adressen verbinden jeden Lastausgleichsknoten mit den Back-End-Instanzen.
  • Interne Classic Load Balancer: Die Knoten eines internen Load Balancers haben nur persönliche IP-Adressen. Der DNS-Name eines internen Load Balancers kann öffentlich in die IP-Adressen der Knoten aufgelöst werden. Daher können Anfragen nur von internen Load-Balancern von Clients weitergeleitet werden, die Zugriff auf die Load-Balancer haben VPC.

Netzwerk-Load-Balancer

Der Netzwerk-Load-Balancer arbeitet auf der vierten Ebene des OSI-Modell. Es kann Millionen von Anfragen pro Sekunde verarbeiten.

Der Load Balancer wählt ein Ziel aus der Zielgruppe für die Standardregel aus, nachdem er eine Verbindungsanforderung erhalten hat. Es versucht, eine zu etablieren TCP Verbindung zum ausgewählten Ziel auf dem Port, der in den Listener-Einstellungen angegeben ist. 

YouTube-Video

Um die Fehlertoleranz Ihrer Anwendung zu erhöhen, können Sie mehrere Verfügbarkeitszonen aktivieren, einen kostenpflichtigen Service in AWS für Network Load Balancer. Wenn eine Availability Zone ausfällt, funktioniert Ihre Anwendung nicht mehr.

Für TCP-Datenverkehr wird ein Ziel mithilfe eines Flow-Hash-Algorithmus ausgewählt, der auf dem Protokoll, dem Quellport, der Quell-IP-Adresse, dem Zielport, der Ziel-IP-Adresse und der TCP-Sequenznummer basiert.

Die TCP-Verbindungen der Clients haben unterschiedliche Sequenznummern und Quellports, sodass die Verbindungen zu anderen Zielen geleitet werden. Jede eindeutige TCP-Verbindung wird für die Dauer der Verbindung zu einem einzelnen Ziel geleitet.

Gateway-Load-Balancer

Ihre virtuellen Appliances von Drittanbietern können mithilfe von Gateway Load Balancer einfach bereitgestellt, skaliert und verwaltet werden. Es bietet ein einziges Gateway, um den Datenverkehr zwischen zahlreichen virtuellen Appliances aufzuteilen und sie je nach Bedarf nach oben oder unten zu skalieren. Dadurch werden potenzielle Fehlerquellen in Ihrem Netzwerk eliminiert und die Verfügbarkeit erhöht.

YouTube-Video

Virtuelle Appliances von unabhängigen Herstellern können direkt über AWS Marketplace gefunden, getestet und gekauft werden. Unabhängig davon, ob Sie weiterhin mit Ihren aktuellen Anbietern zusammenarbeiten oder etwas Neues ausprobieren möchten, diese integrierte Erfahrung beschleunigt den Bereitstellungsprozess, sodass Sie schneller von Ihren virtuellen Appliances profitieren können.

Vorteile des Gateway-Load-Balancers:

  • Schnellere Bereitstellung virtueller Appliances von Drittanbietern.
  • Skalieren Sie Ihre virtuellen Appliances bei gleichzeitiger Kostenkontrolle.
  • Verbessern Sie die Verfügbarkeit der virtuellen Appliance

Final Words

Elastic Load Balancer sind ein wichtiger Bestandteil vieler auf AWS erstellter Infrastrukturen. Die Funktionen, die wir von einem ELB erhalten, erleichtern die Verwaltung Ihrer Infrastruktur. Elastic Load Balancing ist eine bewährte Methode zur Verteilung von Anwendungs- und Web-Traffic-Anfragen auf mehrere Ziele oder Instanzen.

Mit Elastic Load Balancer können Sie Ihre verschiedenen Workloads automatisch skalieren. Wir haben alle Arten abgedeckt Load Balancer bereitgestellt von AWS, und Sie können sie gemäß den Anforderungen Ihrer Anwendung verwenden.