Service-Load Balancing - Amazon ECS

Service-Load Balancing

Ihr Amazon-ECS-Service kann optional zur Verwendung von Elastic Load Balancing konfiguriert werden, um Datenverkehr gleichmäßig auf die Aufgaben in Ihrem Service zu verteilen.

Anmerkung

Wenn Sie Aufgabensätze verwenden, müssen alle Aufgaben im Satz so konfiguriert sein, dass sie entweder Elastic Load Balancing verwenden oder Elastic Load Balancing nicht verwenden.

Amazon-ECS-Services, die auf AWS Fargate gehostet werden, unterstützen die Load Balancer-Typen Application Load Balancer und Network Load Balancer. Application Load Balancer werden zum Weiterleiten von HTTP/HTTPS-Datenverkehr (oder Layer 7) verwendet. Network Load Balancer werden zum Weiterleiten von TCP- oder UDP-Datenverkehr (oder Layer 4) verwendet. Weitere Informationen finden Sie unter Load Balancer-Typen.

Application Load Balancers bieten verschiedene Funktionen an, die sie besonders attraktiv für die Verwendung mit Amazon-ECS-Services machen:

  • Jeder Service kann den Datenverkehr von mehreren Load Balancern abwickeln und mehrere Ports mit Lastenausgleich verfügbar machen, indem er mehrere Zielgruppen festlegt.

  • Application Load Balancers ermöglichen es, dass Container die dynamische Host-Port-Zuweisung verwenden (so dass mehrere Aufgaben von demselben Service pro Container-Instance erlaubt sind).

  • Application Load Balancers unterstützen pfadbasierte Routing- und Prioritätsregeln (sodass mehrere Services denselben Listener-Port auf einem einzelnen Application Load Balancer verwenden können).

Mit Ihrem Load Balancer zahlen Sie nur für das, was Sie auch tatsächlich nutzen. Weitere Informationen finden Sie unter Elastic Load Balancing Pricing.

Überlegungen zum Service-Load-Balancing

Beachten Sie Folgendes, wenn Sie Service Load Balancing verwenden.

Überlegungen zum Application Load Balancer und zum Network Load Balancer

Die folgenden Überlegungen gelten speziell für Amazon-ECS-Services, die Application Load Balancer oder Network Load Balancer verwenden:

  • Amazon ECS erfordert die service-verknüpfte IAM-Rolle, die die Berechtigungen bietet, die erforderlich sind, um Ziele bei Ihrem Load Balancer zu registrieren und abzumelden, wenn Aufgaben erstellt und gestoppt werden. Weitere Informationen finden Sie unter Serviceverknüpfte Rolle für Amazon ECS.

  • Für Services, die einen Application Load Balancer oder einen Network Load Balancer verwenden, können Sie nicht mehr als fünf Zielgruppen an einen Service anfügen.

  • Erstellen einer Zielgruppe für Ihren Service ip als Zieltyp auswählen, nicht instance.

  • Wenn Ihr Service, der einen Application Load Balancer verwendet, Zugriff auf mehrere lastverteilte Ports benötigt, z. B. Port 80 und Port 443 für einen HTTP/HTTPS-Service, können Sie zwei Listener konfigurieren. Ein Listener ist für HTTPS verantwortlich, sodass die Anforderung an den Service weitergeleitet wird, und ein anderer Listener für die Umleitung von HTTP-Anforderungen an den entsprechenden HTTPS-Port. Weitere Informationen finden Sie Erstellen eines Listeners für Ihren Application Load Balancer im Benutzerhandbuch für Application Load Balancers.

  • Nachdem Sie einen Service erstellt haben, sind ARN der Zielgruppe oder der Name des Load Balancers, der Name des Containers und der Container-Port in der Servicedefinition nicht mehr änderbar. Sie können das AWS CLI oder SDK verwenden, um die Konfiguration der Lastenverteilung zu ändern. Informationen zum Ändern der Konfiguration finden Sie unter UpdateService in der API-Referenz zu Amazon Elastic Container Service. Sie können die Load Balancer-Konfiguration eines vorhandenen Diensts nicht hinzufügen, entfernen oder ändern. Wenn Sie die Aufgabendefinition für den Service aktualisieren, müssen der Containername und der Container-Port, die bei der Erstellung des Services angegeben wurden, in der Aufgabendefinition bleiben.

  • Wenn die Aufgabe eines Services die Zustandsprüfungskriterien des Load Balancers nicht besteht, wird die Aufgabe gestoopt und neu gestartet. Dieser Vorgang wird fortgesetzt, bis Ihr Service die Anzahl der gewünschten ausgeführten Aufgaben erreicht.

  • Wenn Sie Network Load Balancer verwenden, die mit IP-Adressen als Ziele konfiguriert sind, gelten Anforderungen als von der privaten IP-Adresse von Network Load Balancer. Dies bedeutet, dass Services hinter einem Network Load Balancer effektiv für die Welt offen sind, sobald Sie eingehende Anforderungen und Zustandsprüfungen in der Sicherheitsgruppe des Ziels zulassen.

  • Die Verwendung eines Network Load Balancers zum Weiterleiten von UDP-Datenverkehr an Ihre Amazon-ECS-Aufgaben auf Fargate erfordert die Verwendung der Plattformversion 1.4.0 (Linux) oder 1.0.0 (Windows).

  • Minimieren Sie Fehler in Ihren Client-Anwendungen, indem Sie StopTimeout in der Aufgabendefinition länger als die Verzögerung für die Abmeldung der Zielgruppe festlegen, die länger sein sollte als Ihre Client-Verbindungs-Zeitbeschränkung. Weitere Informationen zur empfohlenen Clientkonfiguration finden Sie hier in der Entwicklerbibliothek.

    Außerdem schließt das Zielgruppenattribut des Network Load Balancers für die Verbindungsbeendigung alle verbleibenden Verbindungen nach der Abmeldezeit. Dies kann dazu führen, dass Clients unerwünschte Fehlermeldungen anzeigen, wenn der Client sie nicht behandelt.

  • Informationen zu Problemen mit Services, für die ein Load Balancer aktiviert ist, finden Sie unter Fehlerbehebung bei Service-Load Balancers.