Hallo zusammen! Heute startet der Kurs , weshalb wir ein entsprechendes thematisches Webinar zur Übersicht über ELB gemacht haben. Wir haben die verschiedenen Typen von Lastverteilern betrachtet und mehrere EC2-Instanzen mit einem Lastverteiler erstellt. Außerdem haben wir andere Anwendungsbeispiele untersucht.

:
- werden Sie verstehen, was AWS Load Balancing ist;
- die Typen des Elastic Load Balancer und seine Komponenten kennen;
- AWS ELB in Ihrer Praxis verwenden.
Warum ist es überhaupt wichtig, das zu können:
- nützlich, wenn Sie Zertifizierungsprüfungen für AWS ablegen möchten;
- es ist eine einfache Methode zur Lastverteilung zwischen Servern;
- es ist eine einfache Möglichkeit, Lambda in Ihren Service (ALB) einzufügen.
Der offene Unterricht wurde geleitet von , Systemingenieur in einem Marketingunternehmen für die Entwicklung und Unterstützung von Websites.
Einführung
Was ein Elastic Load Balancer ist, sehen Sie in der untenstehenden Diagramm, das ein einfaches Beispiel darstellt:

Der Lastverteiler nimmt Anfragen entgegen und verteilt sie auf die Instanzen. Wir haben eine separate Instanz, es gibt Lambda-Funktionen, und es gibt eine AutoScaling-Gruppe (eine Gruppe von Servern).
Typen von AWS ELB
1. Lassen Sie uns die Haupttypen betrachten:
Classic Load Balancer. Der erste Lastverteiler von AWS, der sowohl auf der 4. als auch auf der 7. OSI-Ebene arbeitet, unterstützt HTTP, HTTPS, TCP und SSL. Er bietet grundlegende Lastverteilung zwischen mehreren Amazon EC2-Instanzen und funktioniert sowohl auf Anfrage- als auch auf Verbindungsebene. Lassen Sie uns ihn öffnen (grau hervorgehoben):

Dieser Lastverteiler gilt als veraltet, weshalb seine Verwendung nur in bestimmten Fällen empfohlen wird. Beispielsweise für Anwendungen, die im EC2-Classic-Netzwerk betrieben werden. Im Grunde genommen steht es uns frei, ihn zu erstellen:

2. Network Load Balancer. Geeignet für hohe Lasten, funktioniert auf der 4. OSI-Ebene (kann in EKS und ECS verwendet werden), unterstützt TCP, UDP und TLS.
Der Network Load Balancer leitet den Datenverkehr auf Zielobjekte in Amazon VPC und kann Millionen von Anfragen pro Sekunde mit extrem niedrigen Latenzen verarbeiten. Darüber hinaus ist er für die Verarbeitung von Verkehrsmodellen mit plötzlichem und wechselndem Lastverhalten optimiert.
3. Application Load Balancer. Arbeitet auf der 7. Ebene, unterstützt Lambda, ermöglicht Regeln auf Header- und Pfadebene, unterstützt HTTP und HTTPS.
Bietet erweiterte Anfragen-Routing an, das sich auf die Bereitstellung von Anwendungen konzentriert, die auf modernen Architekturen basieren, einschließlich Mikrodiensten und Containern. Leitet den Verkehr zu Zielobjekten in Amazon VPC, basierend auf dem Inhalt der Anfrage.
Für viele Nutzer hat der Application Load Balancer zunächst den Classic Load Balancer ersetzt, da TCP nicht so verbreitet ist wie HTTP.
Lassen Sie uns auch einen erstellen, sodass wir bereits zwei Load Balancer haben:

Load Balance Komponenten
Allgemeine Load Balance Komponenten (typisch für alle Balancer):
- Zugriffsprotokollrichtlinie
– Ihre Zugriffsprotokolle zum ELB. Um die Einstellungen vorzunehmen, gehen Sie zur Beschreibung und wählen Sie die Schaltfläche „Attribute bearbeiten“:

Geben Sie dann das S3Bucket an – den Objektspeicher von Amazon:

- Schema
– interner oder externer Balancer. Es geht darum, ob Ihr LoadBalancer externe Adressen empfangen soll, um von außen zugänglich zu sein, oder ob es sich um Ihren internen Balancer handeln kann;
- Security Groups
– Zugriffskontrolle für den Balancer. Im Grunde handelt es sich um eine hochgradige Firewall.


- Subnetze
– Subnetze innerhalb Ihrer VPC (entsprechend auch Verfügbarkeitszonen). Subnetze werden beim Erstellen angegeben. Wenn VPC auf eine Region beschränkt ist, sind Subnetze auf Verfügbarkeitszonen beschränkt. Wenn Sie den Load Balancer erstellen, ist es besser, ihn in mindestens zwei Subnetzen zu erstellen (hilft, wenn es mit einer Verfügbarkeitszone Probleme gibt);
- Listener
– Ihre Protokolle des Balancers. Wie bereits erwähnt, kann es für den Classic Load Balancer HTTP, HTTPS, TCP und SSL sein, für den Network Load Balancer – TCP, UDP und TLS, für den Application Load Balancer – HTTP und HTTPS.
Beispiel für den Classic Load Balancer:

Hier sehen wir im Application Load Balancer auch eine etwas andere Benutzeroberfläche und insgesamt eine andere Logik:

Komponenten des Load Balancer v2 (ALB und NLB)
Schauen wir uns nun die Load Balancer der zweiten Version, Application Load Balancer und Network Load Balancer, näher an. Diese Balancer haben ihre eigenen komponentenspezifischen Eigenschaften. Zum Beispiel gibt es das Konzept der Zielgruppen – Instances (und Funktionen). Dank dieser Komponente haben wir die Möglichkeit, anzugeben, auf welche der Zielgruppen wir den Verkehr leiten möchten.


Einfach ausgedrückt geben wir in den Zielgruppen die Instances an, zu denen der Verkehr gelangen wird. Während Sie im Classic Load Balancer einfach direkt Instances an den Balancer anschließen, müssen Sie im Application Load Balancer zunächst:
- einen Load Balancer erstellen;
- eine Zielgruppe erstellen;
- Leiten Sie den Verkehr über die erforderlichen Ports oder Regeln des Load Balancers zu den entsprechenden Zielgruppen;
- In den Zielgruppen weisen Sie Instanzen zu.
Diese Arbeitsweise mag komplizierter erscheinen, ist aber tatsächlich benutzerfreundlicher.
Die nächste Komponente ist — Listener-Regeln (Regeln zur Routensteuerung). Dies betrifft nur den Application Load Balancer. Bei einem Network Load Balancer erstellen Sie einfach einen Listener, der den Verkehr an eine bestimmte Zielgruppe sendet. Beim Application Load Balancer ist alles .

Jetzt sagen wir ein paar Worte zur nächsten Komponente — Elastic IP (statische Adressen für NLB). Wenn die Regeln für die Routensteuerung der Listener-Regeln nur den Application Load Balancer betrafen, betrifft Elastic IP nur den Network Load Balancer.
Erstellen wir einen Network Load Balancer:


Und während des Erstellungsprozesses sehen wir, dass wir die Möglichkeit haben, eine Elastic IP auszuwählen:

Elastic IP bietet eine einzige IP-Adresse, die über die Zeit mit verschiedenen EC2-Instanzen verknüpft werden kann. Wenn eine EC2-Instanz eine Elastic IP-Adresse hat und diese Instanz beendet oder gestoppt wird, können Sie sofort eine neue EC2-Instanz mit der Elastic IP-Adresse verknüpfen. Ihre aktuelle Anwendung läuft dabei weiter, da die Anwendungen weiterhin dieselbe IP-Adresse sehen, selbst wenn die echte EC2-Instanz gewechselt hat.
Hier zum Thema, warum eine Elastic IP benötigt wird. Sehen Sie, wir sehen 3 IP-Adressen, aber sie werden nicht für immer hier bleiben:

Amazon ändert sie im Laufe der Zeit, möglicherweise alle 60 Sekunden (aber in der Praxis, natürlich, seltener). Das bedeutet, die IP-Adressen können sich ändern. Und im Fall des Network Load Balancers können Sie die IP-Adresse verknüpfen und sie in Ihren Regeln, Richtlinien usw. verwenden.

Lassen Sie uns zusammenfassen
ELB sorgt für die automatische Verteilung des eingehenden Traffics auf mehrere Zielobjekte (Container, Amazon EC2-Instanzen, IP-Adressen und Lambda-Funktionen). ELB kann den Traffic sowohl in einer Availability Zone als auch zwischen mehreren Availability Zones mit variierender Belastung verteilen. Der Benutzer kann aus drei Typen von Load Balancern wählen, die sowohl hohe Verfügbarkeit als auch automatisches Skalieren und annehmbare Sicherheit bieten. All dies ist wichtig für die Gewährleistung der Ausfallsicherheit Ihrer Anwendungen.
Die Hauptvorteile:
- hohe Verfügbarkeit. In der Servicevereinbarung wird eine Verfügbarkeit von 99,99 % für den Lastenausgleich vorausgesetzt. Mehrere Verfügbarkeitszonen garantieren beispielsweise, dass der Datenverkehr nur von funktionsfähigen Objekten verarbeitet wird. Das heißt, es ist möglich, die Last über die gesamte Region zu verteilen, indem der Verkehr auf funktionsfähige Zielobjekte in verschiedenen Verfügbarkeitszonen umgeleitet wird;
- Sicherheit. ELB funktioniert mit Amazon VPC und bietet verschiedene Sicherheitsfunktionen – einschließlich integriertem Zertifikatsmanagement, Benutzerauthentifizierung und SSL/TLS-Dekodierung. All dies ermöglicht ein zentrales und flexibles Management der TLS-Einstellungen;
- Elastizität. ELB kann plötzliche Änderungen im Netzwerkverkehr verarbeiten. Eine tiefe Integration mit Auto Scaling stellt sicher, dass die Anwendung über ausreichende Ressourcen verfügt, wenn sich die Last ändert, ohne dass manuelles Eingreifen erforderlich ist;
- Flexibilität. IP-Adressen können zur Lenkung von Anfragen an die Zielobjekte Ihrer Anwendungen verwendet werden. Dies gewährleistet Flexibilität bei der Virtualisierung der Zielanwendungen und ermöglicht es, mehrere Anwendungen auf einer Instanz zu hosten. Da Anwendungen denselben Netzwerkport verwenden und getrennte Sicherheitsgruppen haben, wird die Interaktion zwischen Anwendungen, beispielsweise in einer mikroservicebasierten Architektur, vereinfacht;
- Monitoring und Audit. Anwendungen können in Echtzeit mithilfe der Funktionen von Amazon CloudWatch überwacht werden. Es handelt sich um Metriken, Protokolle, Abfrageverfolgung. Einfach ausgedrückt, können Sie Probleme erkennen und Engpässe in der Leistung recht genau bestimmen;
- Hybrides Lastenmanagement. Die Möglichkeit, die Last zwischen lokalen Ressourcen und AWS mit demselben Lastenausgleich zu verteilen, erleichtert die Migration oder die Erweiterung lokaler Anwendungen in die Cloud. Auch das Handling von Ausfällen mit Hilfe der Cloud wird vereinfacht.
Wenn Sie weitere Informationen wünschen, hier sind noch ein paar nützliche Links von der offiziellen Website von Amazon:
- .
Quelle: habr.com
