GNU/Linux >> LINUX-Kenntnisse >  >> Linux

So konfigurieren Sie Host-basiertes Routing auf AWS Application Load Balancer

In AWS ist ELB oder Elastic Load Balancing ein Konzept, bei dem die Server je nach Bedarf unserer Anwendung hinzugefügt oder freigegeben werden können. Der eingehende Datenverkehr einer Anwendung wird auf mehrere Ziele verteilt. Diese Ziele können EC2-Instances, Container und IP-Adressen in einer oder mehreren Availability Zones sein. Unterstützte Arten von AWS Elastic Load Balancern sind Application Load Balancer (ALB), Network Load Balancer (NLB), Gateway Load Balancer (kürzlich eingeführt) und Classic Load Balancer. Diese Load-Balancer haben unterschiedliche Konfigurationen, z. B. 

  1. Application Load Balancer:Es funktioniert, indem es den eingehenden Anwendungsdatenverkehr automatisch zwischen zwei oder mehr EC2-Instanzen verteilt. Wir können Routing-Regeln gemäß dem Inhalt der Anfrage definieren (inhaltsbasiertes Routing). Es ist ein Layer-7-Load-Balancer.
  2. Netzwerk-Load-Balancer:NLB verwendet IP-Protokolldaten (TCP und UDP), um Verbindungen zu AWS-Ressourcen wie EC2, Microservices und Containern weiterzuleiten. Es ist ein Layer-4-Load-Balancer.
  3. Gateway Load Balancer:Diese werden mit virtuellen Appliances von Drittanbietern wie NextGen-Firewalls (NGFW), IPS, IDS usw. verwendet, die auf EC2-Instanzen ausgeführt werden. Es funktioniert, indem es ein einziges Gateway für den Datenverkehr von mehreren virtuellen Appliances platziert und diese mehreren virtuellen Appliances je nach Bedarf hoch- oder herunterskaliert werden können. Das ist gut für die Stabilität des Netzwerks. Es ist ein Layer 3 (Gateway) plus Layer 4 (Load Balancing) Load Balancer.
  4. Klassischer Load Balancer:CLB ist ein Legacy-Load-Balancer von AWS, der für den Lastausgleich über mehrere EC2-Instances verwendet wird. Es wird für Anwendungen empfohlen, die innerhalb des EC2-Classic-Netzwerks entwickelt wurden. Es ist ein Layer 4/7 Load Balancer. Es wird von AWS empfohlen, diesen Load Balancer zu vermeiden.

Übersicht über diesen Leitfaden


In diesem Tutorial konfigurieren wir pfadbasiertes Routing für Application Load Balancer auf AWS. Wir werden ein IAM-Benutzerkonto mit eingeschränkten Berechtigungen verwenden, die für diese Aufgabe erforderlich sind. Wir haben die folgenden Ressourcen für dieses Experiment:

  1. Zwei Availability Zones mit jeweils mindestens einer EC2-Instanz.
  2. Eine VPC hat mindestens ein öffentliches Subnetz in jeder der beiden oben genannten Availability Zones. Dieses öffentliche Subnetz wird für die Konfiguration des Load Balancers verwendet.
  3. Installieren Sie einen Webserver auf jeder Instanz und erlauben Sie den Zugriff auf Port 80 auf diesen Instanzen mithilfe der Sicherheitsgruppe.

Konfiguration von EC2-Instanzen

Für diese Anleitung haben wir zwei Amazon Linux EC2-Instanzen konfiguriert, auf denen Apache Httpd installiert ist. Auf einem Server haben wir ein „Signin“-Verzeichnis und darin eine index.html-Datei mit folgendem Inhalt:“Welcome User? Melden Sie sich an, um fortzufahren...“

Auf einem anderen Server haben wir ein „signup“-Verzeichnis und darin eine index.html-Datei mit folgendem Inhalt:„Neuer Benutzer? Melden Sie sich zuerst an...“

Sowohl die Verzeichnisse „signin“ als auch „signup“ befinden sich im Stammverzeichnis (/var/www/html).

Konfigurieren der Zielgruppe

Schritt 1. Zum Weiterleiten der Anfrage erstellen wir zunächst zwei Zielgruppen, eine für jeden Server. Öffnen Sie die EC2-Konsole und suchen und wählen Sie auf der linken Seite „Zielgruppen“ (unter Lastausgleich):

Schritt 2. Klicken Sie auf der neuen Seite auf die Schaltfläche „Zielgruppe erstellen“:


Schritt 3. Wir befinden uns jetzt auf der Seite „Gruppendetails angeben“. Gehen Sie unter Basiskonfiguration wie folgt vor:

  1. Wählen Sie einen Zieltyp aus:Wählen Sie hier „Instanzen“ aus.
  2. Name der Zielgruppe:Geben Sie der Zielgruppe einen passenden Namen (in unserem Fall ‚Sign-In‘.)
  3. Protokoll:HTTP
  4. Anschluss:80
  5. VPC:Wählen Sie hier Ihren VPC-Namen aus.
  6. Protokollversion:Behalten Sie die standardmäßig ausgewählte bei (HTTP1)

Unter den Einstellungen für „Gesundheitsprüfungen“:

Health-Check-Protokoll:HTTP

Pfad der Gesundheitsprüfung:„Pfad, den Sie verwenden möchten“ (in unserem Fall „/signin“)

Lassen Sie die „Erweiterten Zustandsprüfungseinstellungen“ auf dem Standardwert. Fügen Sie bei Bedarf Tags hinzu (optional). Klicken Sie auf „Weiter“, um fortzufahren.

Registrieren von EC2-Instanzen bei den Zielgruppen

Schritt 3. Fügen Sie nun eine der EC2-Instanzen zu den oben genannten Zielgruppen hinzu. Wählen Sie eine Instanz aus und klicken Sie dann auf die Schaltfläche „Unten als ausstehend einschließen“


Die oben ausgewählte Instanz wird unter „Ziele überprüfen“ angezeigt. Klicken Sie nun auf „Zielgruppe erstellen“.


Klicken Sie im nächsten Fenster erneut auf „Fortfahren“. Wiederholen Sie nun den gleichen Vorgang für eine andere Zielgruppe und nennen Sie sie „Sign-Up“. Verwenden Sie eine andere Instanz (in einer anderen Verfügbarkeitszone) mit dieser Zielgruppe und verwenden Sie einen anderen Zustandsprüfungspfad (in unserem Fall „/signup“):



Erstellen des Application Load Balancer

Schritt 1. Gehen Sie von der EC2-Konsole aus zu Load Balancers und klicken Sie auf die Schaltfläche Create Load Balancer und wählen Sie dann „Application Load Balancer“, das auf der neuen Seite angezeigt wird:


Schritt 2. Geben Sie einen passenden Namen (hier 'My-Path-ALB') für Ihre Lastenausgleicher. Belassen Sie das Schema auf dem Standard („Internet-facing“), wählen Sie den IP-Adresstyp als IPv4 aus



Schritt 3. Wählen Sie im Abschnitt Netzwerkzuordnung die Ziel-VPC aus und in Wählen Sie im Abschnitt „Zuordnungen“ die beiden Verfügbarkeitszonen mit Ihren Zielen aus, an die der Load-Balancer den Datenverkehr weiterleiten soll.


Schritt 4. Konfigurieren Sie Sicherheitsgruppen für den Load Balancer und erlauben Sie Ihren Zielport (Port 80 in unser Fall) zum Anhören:


Schritt 5. Wählen Sie einen Listener aus (in unserem Fall HTTP) und geben Sie einen Port zum Abhören ein oder entscheiden Sie sich dafür, den Standardport 80 für HTTP-Anfragen beizubehalten. Wählen Sie unter der Standardaktion das Ziel „Anmelden“ für die Spalte „Weiterleiten an“ aus:



Schritt 6. Optionale Schritte können übersprungen werden. Überprüfen Sie nun die Zusammenfassung und klicken Sie auf die Schaltfläche „Load Balancer erstellen“:

Host-basierte Weiterleitungsregeln hinzufügen

Schritt 1. Gehen Sie jetzt wieder auf die Seite „Load Balancer“ und finden Sie Ihren Ziel-Load Balancer hier:


 

Schritt 2. Sobald sich der ALB-Status in Aktiv ändert, fahren wir mit den Weiterleitungsregeln fort. Klicken Sie auf den Namen des Load Balancers und gehen Sie dann zur Registerkarte Listeners

Schritt 3. Klicken Sie in der Spalte „Regeln“ auf „Regeln anzeigen/bearbeiten“ und dann auf das „+“-Symbol, gefolgt von „Regel einfügen“:




Schritt 4. Klicken Sie unter der Spalte „IF(all match)“ auf den Dropdown-Pfeil „+ Bedingung hinzufügen“ und wählen Sie „Host“ als Regeltyp aus und geben Sie Ihre ein Hostname oder Domänenname (in unserem Fall „www.signin.tecofers.com“) in das Textfeld ein, das dem Label „ist“ entspricht.

Schritt 5. Klicken Sie in der Spalte „Dann“ auf den Dropdown-Pfeil „+Aktion hinzufügen“ und wählen Sie „Weiterleiten an“ als Aktion aus. Wählen Sie hier die Zielgruppe „Sign-In“ aus.
Wiederholen Sie die obigen Schritte 2 und 3 für die Zielgruppe „SignUp“ mit Hostname oder Domainname (in unserem Fall „www.signup.tecofers.com“). Nach dem Speichern der Regeln haben wir zwei Regeln:

Die letzte Regel gilt für die Standardaktion, wenn die beiden oben genannten Bedingungen nicht erfüllt sind.

Registrieren der Domäne in Route 53

Um die Hosts/Domänen für das hostbasierte Routing über das Internet zu registrieren, müssen wir den DNS-Namen ihrer entsprechenden EC2-Instances mit ihrem Hostnamen/Domänennamen in Route 53 hinzufügen .

Schritt 1. Öffnen Sie das Route 53-Dashboard über die Verwaltungskonsole und klicken Sie auf „Gehostete Zone erstellen“:


Schritt 2. Geben Sie auf der Konfigurationsseite der gehosteten Zone den Domänennamen ein und wählen Sie Typ als „ Öffentliche gehostete Zone' und wählen Sie 'Gehostete Zone erstellen':


Schritt 3. Klicken Sie auf der neuen Seite auf „Create Record“:


Schritt 4. Klicken Sie auf der neuen Seite auf das Label „Zum Assistenten wechseln“ und wählen Sie es aus Option „Einfaches Routing“


Schritt 5. Klicken Sie hier auf 'Einfachen Datensatz definieren'


Schritt 6. Geben Sie verschiedene Details für diesen Datensatz ein:

Domain:Subdomain, die Ihrer gehosteten Zone entspricht.

Datensatztyp:Wählen Sie hier einen Typ aus.

Wert/Datenverkehr weiterleiten an:

  1. Wählen Sie „Alias ​​für Anwendung und Classic Load Balancer“ aus
  2. Wählen Sie die Region aus, in der sich der Load Balancer befindet
  3. Wählen Sie den Ziel-Load-Balancer aus.




Klicken Sie schließlich auf „Einfachen Datensatz definieren“.

Der obige Datensatz erscheint nun wie hier gezeigt:


Wiederholen Sie die obigen Schritte für den anderen Host.

Überprüfe die Einrichtung…

Um zu überprüfen, ob alles wie erwartet funktioniert, öffnen Sie einen Webbrowser und fügen Sie das DNS des Load Balancers ein und hängen Sie es an mit:

1) Hostname für das Ziel „Anmeldung“



2) Hostname für das Anmeldeziel





Fazit

Herzlichen Glückwunsch, wir haben endlich ein funktionierendes Szenario für hostbasiertes Routing auf AWS Application Load Balancer konfiguriert.


Linux
  1. So konfigurieren Sie NGINX als TCP/UDP-Load-Balancer unter Linux

  2. So konfigurieren Sie den HAProxy-Load-Balancer

  3. So installieren und konfigurieren Sie den HAProxy-Load-Balancer unter Debian 11

  4. So installieren und konfigurieren Sie den HAProxy-Load-Balancer unter Rocky Linux/Alma Linux 8

  5. So installieren und konfigurieren Sie den HAProxy-Load-Balancer unter Ubuntu 20.04

So starten Sie RHEL 8 von Amazon EC2 in der AWS Cloud

So richten Sie HAProxy als Load Balancer für Nginx in CentOS 7 ein

Wie funktioniert ein Load Balancer? Was ist Load-Balancing?

So konfigurieren Sie Load Balancing mit NGINX in Jelastic Cloud

Richten Sie eine WordPress-Website mit Lastenausgleich auf AWS EC2 ein – Teil 2

Wie lösche ich die Anmeldeinformationen in AWS Configure?