Konfigurieren von Elastic Load Balancing mit dem AWS Toolkit for Visual Studio
Elastic Load Balancing ist ein Amazon-Webservice, der Ihnen hilft, die Verfügbarkeit und Skalierbarkeit Ihrer Anwendung zu verbessern. Dieser Service macht es für Sie einfacher, Anwendungslasten auf zwei oder mehr Amazon EC2-Instances zu verteilen. Elastic Load Balancing verbessert die Verfügbarkeit durch die Bereitstellung zusätzlicher Redundanz und unterstützt wachsenden Datenverkehr für Ihre Anwendung.
Mit Elastic Load Balancing können Sie den eingehenden Anwendungsdatenverkehr automatisch auf alle ausgeführten Instances verteilen und ausgleichen. Sie können auch ganz einfach neue Instances hinzufügen, wenn eine Erhöhung der Kapazität Ihrer Anwendung erforderlich ist.
Elastic Beanstalk stellt Elastic Load Balancing automatisch bereit, wenn Sie eine Anwendung bereitstellen. Sie können die Amazon-EC2-Instance-Konfiguration der Elastic-Beanstalk-Umgebung über die Registerkarte Lastverteilung innerhalb der Registerkarte für die Anwendungsumgebung im AWS Toolkit for Visual Studio bearbeiten.

In den folgenden Abschnitten werden die Elastic Load Balancing-Parameter beschrieben, die Sie für Ihre Anwendung konfigurieren können.
Ports
Der Load Balancer, der für die Verarbeitung von Anforderungen für Ihre Elastic Beanstalk-Anwendung bereitgestellt wurde, sendet Anforderungen an Amazon EC2-Instances, auf denen Ihre Anwendung ausgeführt wird. Der bereitgestellte Load Balancer kann auf Anforderungen über HTTP- und HTTPS-Ports warten und diese an Amazon EC2-Instances in Ihrer AWS Elastic Beanstalk-Anwendung weiterleiten. Standardmäßig verarbeitet der Load Balancer Anfragen auf dem HTTP-Port. Dazu muss mindestens einer der Ports (HTTP oder HTTPS) aktiviert werden.

Wichtig
Stellen Sie sicher, dass der von Ihnen angegebene Port nicht gesperrt ist. Andernfalls können Sie keine Verbindung zu Ihrer Elastic Beanstalk-Anwendung herstellen.
Steuern des HTTP-Ports
Um den HTTP-Port auszuschalten, wählen Sie OFF (AUS) für HTTP Listener Port aus. Zum Aktivieren des HTTP-Ports wählen Sie einen HTTP-Port (z. B. 80) aus der Liste aus.
Anmerkung
Für den Zugriff auf Ihre Umgebung mit einem anderen als dem Standardport 80, z. B. Port 8080, fügen Sie dem vorhandenen Load Balancer einen Listener hinzu und konfigurieren Sie den neuen Listener für die Überwachung des entsprechenden Ports.
Geben Sie beispielsweise in AWS CLI for Classic load balancers (für klassische Load Balancer) den folgenden Befehl ein, wobei Sie LOAD_BALANCER_NAME
durch den Namen des Load Balancers für Elastic Beanstalk ersetzen.
aws elb create-load-balancer-listeners --load-balancer-name LOAD_BALANCER_NAME
--listeners "Protocol=HTTP, LoadBalancerPort=8080, InstanceProtocol=HTTP, InstancePort=80"
Geben Sie beispielsweise in AWS CLI for Application Load Balancers (für Anwendungs-Load Balander) den folgenden Befehl ein, wobei Sie LOAD_BALANCER_ARN
durch den ARN des Load Balancers für Elastic Beanstalk ersetzen.
aws elbv2 create-listener --load-balancer-arn LOAD_BALANCER_ARN
--protocol HTTP --port 8080
Wenn Elastic Beanstalk Ihre Umgebung überwachen soll, entfernen Sie den Listener für Port 80 nicht.
Steuern des HTTPS-Ports
Elastic Load Balancing unterstützt das HTTPS-/TLS-Protokoll, um die Verschlüsselung des Datenverkehrs für Client-Verbindungen zum Load Balancer zu aktivieren. Verbindungen vom Load Balancer mit EC2-Instances verwenden eine Klartext-Verschlüsselung. Standardmäßig ist der HTTPS-Port deaktiviert.
So aktivieren Sie den HTTPS-Port
-
Erstellen Sie ein neues Zertifikat mit AWS Certificate Manager (ACM) oder laden Sie ein Zertifikat und einen Schlüssel in AWS Identity and Access Management (IAM) hoch. Weitere Informationen zum Anfordern eines ACM-Zertifikats finden Sie unter Zertifikat anfordern im AWS Certificate Manager-Benutzerhandbuch. Weitere Informationen zum Importieren von Zertifikaten von Drittanbietern in ACM finden Sie unter Importieren von Zertifikaten im AWS Certificate Manager-Benutzerhandbuch. Wenn ACM in Ihrer Region nicht verfügbar ist, verwenden Sie AWS Identity and Access Management (IAM) um ein Zertifikat von einem Drittanbieter hochzuladen. Die ACM- und IAM-Services speichern das Zertifikat und stellen einen Amazon-Ressourcennamen (ARN) für das SSL-Zertifikat bereit. Weitere Informationen zum Erstellen und Hochladen von Zertifikaten in IAM finden Sie unter Arbeiten mit Serverzertifikaten im IAM-Benutzerhandbuch.
-
Geben Sie den HTTPS-Port an, indem Sie einen Port für HTTPS Listener Port auswählen.
-
Geben Sie für SSL Certificate ID (SSL-Zertifikat-ID) den Amazon-Ressourcennamen (ARN) Ihres SSL-Zertifikats ein. Beispiel:
arn:aws:iam::123456789012:server-certificate/abc/certs/build
oderarn:aws:acm:us-east-2:123456789012:certificate/12345678-12ab-34cd-56ef-12345678
. Verwenden Sie das SSL-Zertifikat, das Sie in Schritt 1 erstellt oder hochgeladen haben.
Um den HTTPS-Port auszuschalten, wählen Sie OFF (AUS) für HTTPS Listener Port.
Zustandsprüfungen
Die Definition der Zustandsprüfung enthält einen URL, die für den Instance-Zustand abgefragt wird. Standardmäßig nutzt Elastic Beanstalk TCP:80 für Nonlegacy-Container und HTTP:80 für Legacy-Container. Sie können die Standard-URL überschreiben, sodass sie mit einer vorhandenen Ressource der Anwendung übereinstimmt (z. B. /myapp/default.aspx
). Dazu geben Sie diese im Feld Application health check URL (Zustandsprüfungs-URL für die Anwendung) ein. Wenn Sie die Standard-URL überschreiben, verwendet Elastic Beanstalk HTTP zum Abfragen der Ressource. Wenn Sie überprüfen möchten, ob Sie einen Legacy-Container verwenden, erhalten Sie Informationen unter Warum sind einige Plattformversionen als Legacy gekennzeichnet?
Sie können die Einstellungen für die Zustandsprüfung im Abschnitt EC2 Instance Health Check (Zustandsprüfung für EC2-Instances) des Bereichs Load Balancing steuern.

Die Definition der Zustandsprüfung enthält einen URL, die für den Instance-Zustand abgefragt wird. Überschreiben Sie die Standard-URL, sodass sie mit einer vorhandenen Ressource der Anwendung übereinstimmt (z. B. /myapp/index.jsp
). Dazu geben Sie diese im Feld Application Health Check URL (Zustandsprüfungs-URL für die Anwendung) ein.
In der folgenden Liste werden die Zustandsprüfungs-Parameter beschrieben, die Sie für Ihre Anwendung festlegen können.
-
Für Health Check Interval (seconds) (Zustandsprüfungsintervall (Sekunden)) geben Sie die Anzahl der Sekunden ein, die Elastic Load Balancing zwischen Zustandsprüfungen für die Amazon EC2-Instances Ihrer Anwendung wartet.
-
Für Health Check Timeout (seconds) (Zustandsprüfungs-Timeout (Sekunden)) geben Sie die Anzahl der Sekunden ein, die Elastic Load Balancing auf eine Antwort wartet, bevor die Instance als nicht reagierend eingestuft wird.
-
Für Healthy Check Count Threshold (Schwellenwert Anzahl erfolgreicher Zustandsprüfungen) und Unhealthy Check Count Threshold (Schwellenwert Anzahl fehlgeschlagener Zustandsprüfungen) geben Sie die Anzahl der aufeinanderfolgenden erfolgreichen oder nicht erfolgreichen URL-Proben ein, bevor Elastic Load Balancing den Status des Instance-Zustands ändert. Beispiel: Die Angabe von
5
für Unhealthy Check Count Threshold (Schwellenwert Anzahl fehlgeschlagener Zustandsprüfungen) bedeutet, dass die URL fünfmal hintereinander eine Fehlermeldung oder eine Zeitüberschreitung zurückgeben muss, bevor Elastic Load Balancing die Zustandsprüfung als fehlgeschlagen einstufen würde.
Sitzungen
Standardmäßig leitet ein Load Balancer jede Anforderung getrennt an die Server-Instance mit der kleinsten Last weiter. Im Vergleich dazu bindet eine Sticky Session eine Benutzersitzung an eine bestimmte Server-Instance, sodass alle vom Benutzer während der Sitzung gesendeten Anforderungen an die gleiche Server-Instance übermittelt werden.
Elastic Beanstalk nutzt von Load Balancer generierte HTTP-Cookies, wenn Sticky Sessions für eine Anwendung aktiviert sind. Der Load Balancer verwendet ein vom Load-Balancer generiertes spezielles Cookie, um die Anwendungs-Instance für jede Anforderung nachzuverfolgen. Wenn der Load Balancer eine Anforderung empfängt, prüft er zunächst, ob dieses Cookie in der Anforderung vorhanden ist. Wenn er vorhanden ist, wird die Anforderung an die Anwendungs-Instance gesendet, die im Cookie angegeben ist. Wenn kein Cookie vorhanden ist, wählt der Load Balancer eine Anwendungs-Instance basierend auf dem vorhandenen Load Balancing-Algorithmus aus. Ein Cookie wird in die Antwort eingefügt, um nachfolgende Anforderungen von demselben Benutzer an diese Anwendungs-Instance zu binden. Mit der Konfiguration der Richtlinie wird ein Cookie-Ablauf definiert, der die Dauer der Gültigkeit für jedes Cookie festlegt.
Sie können über den Abschnitt Sessions (Sitzungen) auf der Registerkarte Load Balancer angeben, ob der Load Balancer für Ihre Anwendung "Sticky Sessions" erlaubt.

Weitere Informationen zu Elastic Load Balancing finden Sie im Elastic Load Balancing-Entwicklerhandbuch.