Konfigurieren eines Classic Load Balancers - AWS Elastic Beanstalk

Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.

Konfigurieren eines Classic Load Balancers

Wenn Sie enable load balancing (Load Balancing aktivieren), ist in der AWS Elastic Beanstalk-Umgebung ein Elastic-Load-Balancing-Load-Balancer vorhanden, mit dem der Datenverkehr auf die Instances in der Umgebung verteilt wird. Elastic Load Balancing unterstützt verschiedene Load Balancer-Typen. Weitere Informationen dazu finden Sie im Elastic Load Balancing-Benutzerhandbuch. Elastic Beanstalk kann einen Load Balancer für Sie erstellen oder Sie einen von Ihnen erstellten freigegebenen Load Balancer angeben lassen.

Dieses Thema beschreibt die Konfiguration eines Classic Load Balancers, den Elastic Beanstalk erstellt und Ihrer Umgebung zuweist. Weitere Informationen zur Konfiguration aller Load Balancer-Typen, die Elastic Beanstalk unterstützt, finden Sie unter Load Balancer Ihrer Elastic-Beanstalk-Umgebung.

Anmerkung

Sie können den Typ des Load Balancer, den Ihre Umgebung verwendet, nur während der Erstellung der Umgebung wählen. Sie können Einstellungen später ändern, um das Verhalten des Load Balancer Ihrer laufenden Umgebung zu verwalten, Sie können allerdings seinen Typ nicht ändern.

Einführung

Ein Classic Load Balancer ist der Elastic Load Balancer der vorherigen Generation. Er unterstützt das Weiterleiten des Datenverkehrs aus HTTP-, HTTPS- oder TCP-Anforderungen an verschiedene Ports auf Instances in der Umgebung.

Wenn Ihre Umgebung einen Classic Load Balancer verwendet, konfiguriert Elastic Beanstalk diesen standardmäßig auf listen für HTTP-Datenverkehr über Port 80 und leitet ihn an Instances am selben Port weiter. Obwohl Sie den Standard-Listener für Port 80 nicht löschen können, können Sie ihn deaktivieren, wodurch die gleiche Funktionalität erreicht wird, indem der Datenverkehr blockiert wird. Beachten Sie, dass Sie andere Listener hinzufügen oder löschen können. Zur Unterstützung sicherer Verbindungen können Sie einen Listener auf Port 443 und ein TLS-Zertifikat für den Load Balancer konfigurieren.

Der Load Balancer überprüft mittels einer Zustandsprüfung, ob die Amazon EC2-Instances, auf denen die Anwendung ausgeführt wird, stabil sind. Die Zustandsprüfung sendet in festgelegten Intervallen eine Anfrage an eine angegebene URL. Wenn die URL eine Fehlermeldung zurückgibt oder nicht innerhalb eines definierten Timeouts antwortet, schlägt die Zustandsprüfung fehl.

Sofern sich die Anwendungsleistung verbessern lässt, wenn mehrere Anforderungen vom gleichen Client auf einem einzigen Server verarbeitet werden, können Sie den Load Balancer für die Nutzung von Sticky Sessions konfigurieren. Bei Verwendung von Sticky Sessions fügt der Load Balancer den HTTP-Antworten ein Cookie zur Identifizierung der Amazon EC2-Instance hinzu, von der die Anforderung verarbeitet wurde. Bei der nächsten eingehenden Anforderung vom gleichen Client nutzt der Load Balancer das Cookie, um die Anforderung an dieselbe Instance zu senden.

Wenn zonenübergreifendes Load Balancing aktiviert ist, verteilt jeder Load Balancer-Knoten für Ihren Classic Load Balancer Anfragen gleichmäßig auf die registrierten Instances in allen aktivierten Availability Zones. Wenn zonenübergreifendes Load Balancing deaktiviert ist, verteilt jeder Load Balancer-Knoten Anfragen gleichmäßig nur auf die registrierten Instances in seiner aktivierten Availability Zone.

Falls eine Instance aus dem Load Balancer entfernt wird (aufgrund ihres instabilen Zustands oder wegen einer Herunterskalierung der Umgebung), kann die Instance mithilfe von Connection Draining die Anforderungen abschließen, bevor die Verbindung zwischen der Instance und dem Load Balancer getrennt wird. Sie können den Zeitraum ändern, in dem Instances eine Antwort senden können, oder Connection Draining vollständig deaktivieren.

Anmerkung

Connection Draining wird standardmäßig aktiviert, wenn Sie eine Umgebung mit der Elastic Beanstalk-Konsole oder der EB CLI erstellen. Bei anderen Clients können Sie die Aktivierung in den Konfigurationsoptionen vornehmen.

Mit erweiterten Load Balancer-Einstellungen können Listener für beliebige Ports eingerichtet, zusätzliche Sticky Session-Einstellungen bearbeitet und eine sichere Verbindung vom Load Balancer zu den EC2-Instances konfiguriert werden. Diese Einstellungen stehen über Konfigurationsoptionen zur Verfügung, die Sie mithilfe von Konfigurationsdateien im Quellcode oder über die Elastic Beanstalk-API direkt in der Umgebung festlegen können. Viele dieser Einstellungen sind auch in der Elastic Beanstalk-Konsole verfügbar. Außerdem können Sie den Load Balancer für den Upload von Zugriffsprotokollen in Amazon S3 konfigurieren.

Classic Load Balancer mit der Elastic Beanstalk-Konsole konfigurieren

Sie können die Elastic Beanstalk-Konsole zum Konfigurieren der Ports, des HTTPS-Zertifikats und anderer Einstellungen eines Classic Load Balancer verwenden, während die Umgebung erstellt wird oder später, wenn die Umgebung bereits ausgeführt wird.

Anmerkung

Die Option „Classic Load Balancer (CLB)“ ist im Konsolenassistenten Umgebung erstellen deaktiviert. Wenn Sie eine bestehende Umgebung mit einem Classic Load Balancer konfiguriert haben, können Sie eine neue erstellen, indem Sie die bestehende Umgebung entweder mit der Elastic-Beanstalk-Konsole oder der EB CLI klonen. Sie haben auch die Möglichkeit, die EB-CLI oder die AWS CLI zu verwenden, um eine neue Umgebung zu erstellen, die mit einem Classic Load Balancer konfiguriert ist. Diese Befehlszeilentools erstellen eine neue Umgebung mit einem CLB, auch wenn in Ihrem Konto noch keiner vorhanden ist.

So konfigurieren Sie den Classic Load Balancer einer laufenden Umgebung in der Elastic Beanstalk-Konsole:
  1. Öffnen Sie die Elastic-Beanstalk-Konsole und wählen Sie in der Liste Regions (Regionen) Ihre AWS-Region aus.

  2. Wählen Sie im Navigationsbereich Environments (Umgebungen) aus und wählen Sie dann in der Liste den Namen Ihrer Umgebung aus.

    Anmerkung

    Wenn Sie viele Umgebungen haben, verwenden Sie die Suchleiste, um die Umgebungsliste zu filtern.

  3. Wählen Sie im Navigationsbereich Configuration (Konfiguration) aus.

  4. Wählen Sie in der Konfigurationskategorie Load Balancer die Option Edit (Bearbeiten) aus.

    Anmerkung

    Ist in der Konfigurationskategorie Load balancer die Schaltfläche Edit (Bearbeiten) nicht vorhanden, verfügt Ihre Umgebung über keinen Load Balancer. Informationen zur Einrichtung finden Sie unter Ändern des Umgebungstyps.

  5. Nehmen Sie die für Ihre Umgebung erforderlichen Konfigurationsänderungen am Classic Load Balancer vor.

  6. Wählen Sie unten auf der Seite die Option Apply (Anwenden) aus, um die Änderungen zu speichern.

Listener

Verwenden Sie diese Liste, um Listener für Ihren Load Balancer anzugeben. Jeder Listener leitet den eingehenden Client-Datenverkehr eines bestimmten Ports mittels eines festgelegten Protokolls an Ihre Instances weiter. Anfänglich wird in der Liste der Standard-Listener angezeigt, der eingehenden HTTP-Datenverkehr auf Port 80 an Instance-Server Ihrer Umgebung weiterleitet, die HTTP-Port 80 überwachen.

Anmerkung

Obwohl Sie den Standard-Listener für Port 80 nicht löschen können, können Sie ihn deaktivieren, wodurch die gleiche Funktionalität erreicht wird, indem der Datenverkehr blockiert wird.

Classic Load Balancer-Konfiguration – Listener bearbeiten
So konfigurieren Sie einen vorhandenen Listener
  1. Aktivieren Sie das Kontrollkästchen neben dem Tabelleneintrag und wählen Sie Actions (Aktionen) und dann die gewünschte Aktion aus.

  2. Falls Sie Edit (Bearbeiten) ausgewählt haben, verwenden Sie das Dialogfeld Classic Load Balancer listener (Listener Ihres Classic Load Balancers), um die Einstellungen zu bearbeiten, und wählen Sie dann Save (Speichern) aus.

Beispielsweise können Sie den Standard-Listener bearbeiten und die Einstellung Protocol (Protokoll) von HTTP in TCP ändern, wenn der Load Balancer die Anforderungen unverändert weiterleiten soll. Dadurch wird verhindert, dass der Load Balancer Header umschreibt (einschließlich X-Forwarded-For). Die Technik funktioniert nicht mit Sticky Sessions.

Classic Load Balancer-Konfiguration – Standard-Listener-Protokoll auf TCP ändern
So fügen Sie einen Listener hinzu
  1. Wählen Sie Add listener (Listener hinzufügen) aus.

  2. Konfigurieren Sie im Dialogfeld Classic Load Balancer listener (Listener Ihres Classic Load Balancers) die gewünschten Einstellungen und wählen Sie dann Add (Hinzufügen) aus.

Ein häufiger Anwendungsfall ist das Hinzufügen eines sicheren Listener. Im Beispiel im folgenden Image wird ein Listener für HTTPS-Datenverkehr auf Port 443 hinzugefügt. Dieser Listener leitet den eingehenden Datenverkehr an Instance-Server der Umgebung weiter, die Port 443 auf HTTPS-Datenverkehr überwachen.

Bevor Sie einen HTTPS-Listener konfigurieren können, stellen Sie sicher, dass Sie über ein gültiges SSL-Zertifikat verfügen. Führen Sie eine der folgenden Aktionen aus:

  • Wenn AWS Certificate Manager (ACM) in Ihrer AWS-Region verfügbar ist, erstellen oder importieren Sie ein Zertifikat mit ACM. 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 AWS-Region nicht verfügbar ist, laden Sie Ihr vorhandenes Zertifikat und den vorhandenen Schlüssel in IAM hoch. Weitere Informationen zum Erstellen und Hochladen von Zertifikaten in IAM finden Sie unter Arbeiten mit Serverzertifikaten im IAM-Benutzerhandbuch.

Weitere Informationen zum Konfigurieren von HTTPS und zum Verwenden von Zertifikaten in Elastic Beanstalk finden Sie unter Konfigurieren von HTTPS für Elastic Beanstalk-Umgebung.

Wählen Sie unter SSL certificate (SSL-Zertifikat) den ARN des SSL-Zertifikats aus. Beispiel: arn:aws:iam::123456789012:server-certificate/abc/certs/build oder arn:aws:acm:us-east-2:123456789012:certificate/12345678-12ab-34cd-56ef-12345678.

Classic Load Balancer-Konfiguration – Sicheren Listener hinzufügen

Informationen zum Konfigurieren von HTTPS und zum Verwenden von Zertifikaten in Elastic Beanstalk finden Sie unter Konfigurieren von HTTPS für Elastic Beanstalk-Umgebung.

Sitzungen

Aktivieren oder deaktivieren Sie das Kontrollkästchen Session stickiness enabled (Gebundene Sitzung aktiviert) zum Aktivieren oder Deaktivieren von Sticky Sessions. Verwenden Sie Cookie duration (Cookie-Dauer) zum Konfigurieren der Dauer einer Sticky Session (auf bis zu 1000000 Sekunden). Wählen Sie in der Liste Load balancer ports (Load Balancer-Ports) Listener-Ports aus, für die die Standardrichtlinie (AWSEB-ELB-StickinessPolicy) gilt.

Classic Load Balancer-Einstellungen für Session-Stickiness und -Dauer

Zonenübergreifendes Load Balancing

Aktivieren oder deaktivieren Sie das Kontrollkästchen Load balancing across multiple Availability Zones enabled (Das Load Balancing ist für mehrere Availability Zones aktiviert) zum Aktivieren oder Deaktivieren von zonenübergreifendem Load Balancing.

Classic Load Balancer-Einstellungen für zonenübergreifendes Load Balancing

Connection Draining

Aktivieren oder deaktivieren Sie das Kontrollkästchen Connection draining enabled (Connection Draining aktiviert) zum Aktivieren oder Deaktivieren von Connection Draining. Legen Sie das Draining timeout (Draining-Timeout) fest (auf bis zu 3600 Sekunden).

Classic Load Balancer-Einstellungen für Connection-Draining und Draining-Timeout

Zustandsprüfung

Verwenden Sie die folgenden Einstellungen zum Konfigurieren von Zustandsprüfungen des Load Balancer:

  • Health check path (Pfad für die Zustandsprüfung) – Der Pfad, an den der Load Balancer Zustandsprüfungsanforderungen sendet Falls Sie den Pfad nicht festlegen, versucht der Load Balancer, über Port 80 eine TCP-Verbindung herzustellen, um die Zustandsprüfung auszuführen.

  • Timeout – Die Wartezeit in Sekunden, bis eine Antwort von der Zustandsprüfung eingeht

  • Interval (Intervall) – Der Zeitraum in Sekunden zwischen Zustandsprüfungen einer einzelnen Instance Der Intervall-Wert muss größer als der Timeout-Wert sein.

  • Unhealthy threshold, Healthy threshold – Die Anzahl der Zustandsprüfungen, die nicht bestanden bzw. bestanden sein müssen, bevor Elastic Load Balancing den Zustand der Instance ändert.

Classic Load Balancer-Einstellungen für die Zustandsprüfung
Anmerkung

Die Zustandsprüfung für Elastic Load Balancing hat keinen Einfluss auf das Verhalten der Zustandsprüfung der Auto Scaling-Gruppe einer Umgebung. Instances, die die Elastic Load Balancing-Zustandsprüfung nicht bestehen, werden nicht automatisch durch die Amazon EC2 Auto Scaling ersetzt, es sei denn, Sie konfigurieren Amazon EC2 Auto Scaling manuell entsprechend. Details dazu finden Sie unter Zustandsprüfungseinstellung für Auto-Scaling.

Weitere Informationen zu Zustandsprüfungen und deren Auswirkungen auf den Gesamtstatus der Umgebung finden Sie unter Grundlegende Zustandsberichte.

Classic Load Balancer mit der EB CLI konfigurieren

Sie werden von der EB CLI aufgefordert, einen Load Balancer-Typ auszuwählen, wenn Sie eb create ausführen.

$ eb create Enter Environment Name (default is my-app): test-env Enter DNS CNAME prefix (default is my-app): test-env-DLW24ED23SF Select a load balancer type 1) classic 2) application 3) network (default is 1):

Drücken Sie die Eingabetaste, um classic auszuwählen.

Sie können einen Load Balancer-Typ auch mithilfe der --elb-type-Option angeben.

$ eb create test-env --elb-type classic

Classic Load Balancer-Konfiguration in Namespaces

In den folgenden Namespaces finden Sie Einstellungen im Zusammenhang mit Classic Load Balancern:

  • aws:elb:healthcheck – Konfigurieren Sie Grenzwerte und überprüfen Sie Intervall sowie Timeout für Load Balancer-Zustandsprüfungen.

  • aws:elasticbeanstalk:application – Konfigurieren Sie die Zustandsprüfungs-URL.

  • aws:elb:loadbalancer – Aktivieren Sie zonenübergreifendes Load Balancing. Ordnen Sie dem Load Balancer Sicherheitsgruppen zu und überschreiben Sie die von Elastic Beanstalk erstellte Standardsicherheitsgruppe. In diesem Namespace finden Sie auch veraltete Optionen für die Konfiguration von Standard- und sicheren Listenern, die durch Optionen im Namespace aws:elb:listener ersetzt wurden.

  • aws:elb:listener – Konfigurieren Sie den Standard-Listener auf Port 80, einen sicheren Listener auf Port 443 oder weitere Listener für beliebige Protokolle auf einem frei wählbaren Port. Sofern Sie aws:elb:listener als Namespace angeben, gelten die Einstellungen für den Standard-Listener auf Port 80. Wenn Sie einen Port festlegen (z. B. aws:elb:listener:443), wird ein Listener auf diesem Port konfiguriert.

  • aws:elb:policies – Konfigurieren Sie zusätzliche Einstellungen für den Load Balancer. Richten Sie mit den Optionen in diesem Namespace Listener für beliebige Ports ein, bearbeiten Sie zusätzliche Sticky Session-Einstellungen und konfigurieren Sie eine sichere Verbindung vom Load Balancer zu den Amazon EC2-Instances.

Die EB-CLI und Elastic-Beanstalk-Konsole wenden die für die vorhergehenden Optionen empfohlenen Werte an. Diese Einstellungen müssen entfernt werden, wenn Sie Konfigurationsdateien zum Konfigurieren dieser Einstellungen verwenden möchten. Details dazu finden Sie unter Empfohlene Werte.

Beispiel .ebextensions/loadbalancer-terminatehttps.config

Die folgende Beispielkonfigurationsdatei wird zur Erstellung eines HTTPS-Listeners auf Port 443, für die Zuweisung eines Zertifikats, mit dem der Load Balancer die sichere Verbindung beendet, und zur Deaktivierung des Standard-Listeners auf Port 80 verwendet. Die entschlüsselten Anforderungen werden dann vom Load Balancer über HTTP:80 an die EC2-Instances in der Umgebung weitergeleitet.

option_settings: aws:elb:listener:443: ListenerProtocol: HTTPS SSLCertificateId: arn:aws:acm:us-east-2:123456789012:certificate/12345678-12ab-34cd-56ef-12345678 InstancePort: 80 InstanceProtocol: HTTP aws:elb:listener: ListenerEnabled: false