Lastenverteilung mit AWS ELB

Hallo zusammen! Heute startet der Kurs „AWS fĂŒr Entwickler“, 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.

Lastenverteilung mit AWS ELB

Nachdem Sie das Webinar gehört haben,:

  • 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 Rishat Teregulov, 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:

Lastenverteilung mit AWS ELB

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):

Lastenverteilung mit AWS ELB

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:

Lastenverteilung mit AWS ELB

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:

Lastenverteilung mit AWS ELB

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“:

Lastenverteilung mit AWS ELB

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

Lastenverteilung mit AWS ELB

  • 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.

Lastenverteilung mit AWS ELB

Lastenverteilung mit AWS ELB

  • 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:

Lastenverteilung mit AWS ELB

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

Lastenverteilung mit AWS ELB

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.

Lastenverteilung mit AWS ELB

Lastenverteilung mit AWS ELB

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 unterhaltsamer und benutzerfreundlicher..

Lastenverteilung mit AWS ELB

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:

Lastenverteilung mit AWS ELB

Lastenverteilung mit AWS ELB

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

Lastenverteilung mit AWS ELB

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 noch ein Anwendungsfall 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:

Lastenverteilung mit AWS ELB

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.

Lastenverteilung mit AWS ELB

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:

  1. Elastic Load Balancing.
  2. Funktionen des Elastic Load Balancing.

Quelle: habr.com

ZuverlĂ€ssiges Hosting fĂŒr Websites mit DDoS-Schutz kaufen, VPS VDS Server đŸ”„ ZuverlĂ€ssiges Hosting fĂŒr Websites mit DDoS-Schutz kaufen, VPS VDS Server - ProHoster