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.
Ausgleich eines Amazon ECS-Service über mehrere Availability Zones
Ab dem 5. September 2025 ermöglicht Amazon ECS das Rebalancing der Availability Zone für alle Services, die für diese Funktion in Frage kommen. Ein Service kommt in Frage, wenn Availability Zone Spread die erste Strategie zur Aufgabenplatzierung ist oder wenn es keine Platzierungsstrategie gibt.
Damit Ihre Anwendungen eine hohe Verfügbarkeit erreichen, empfehlen wir, Ihre Multitask-Dienste so zu konfigurieren, dass sie in mehreren Availability Zones ausgeführt werden. Bei Diensten, deren erste Platzierungsstrategie auf Availability Zone verteilt AWS ist, wird versucht, die Serviceaufgaben gleichmäßig auf die verfügbaren Availability Zones zu verteilen.
Es kann jedoch vorkommen, dass die Anzahl der Aufgaben, die in einer Availability Zone ausgeführt werden, nicht die gleiche ist wie in anderen Availability Zones, z. B. nach einer Unterbrechung der Availability Zone. Um dieses Aufgabenungleichgewicht zu beheben, können Sie die Funktion zur Neuverteilung der Availability Zone aktivieren.
Beim Rebalancing der Availability Zone überwacht Amazon ECS kontinuierlich die Verteilung der Aufgaben auf die Availability Zones für jeden Ihrer Services. Wenn Amazon ECS eine ungleichmäßige Aufgabenverteilung feststellt, ergreift es automatisch Maßnahmen, um die Arbeitslast zwischen den Availability Zones neu zu verteilen. Dies beinhaltet das Starten neuer Aufgaben in den Availability Zones mit den wenigsten Aufgaben und das Beenden von Aufgaben in den überlasteten Availability Zones.
Diese Umverteilung stellt sicher, dass keine einzelne Availability Zone zu einem Ausfallpunkt wird, und trägt so dazu bei, die Gesamtverfügbarkeit Ihrer containerisierten Anwendungen aufrechtzuerhalten. Durch den automatisierten Rebalancing-Prozess ist kein manuelles Eingreifen mehr erforderlich, sodass die Wiederherstellung nach einem Ereignis schneller vonstatten geht.
Im Folgenden finden Sie einen Überblick über den Rebalancing-Prozess für die Availability Zone:
-
Amazon ECS beginnt mit der Überwachung eines Service, nachdem dieser den Steady State erreicht hat, und untersucht die Anzahl der Aufgaben, die in jeder Availability Zone ausgeführt werden.
-
Amazon ECS führt die folgenden Operationen durch, wenn es ein Ungleichgewicht in der Anzahl der in jeder Availability Zone ausgeführten Aufgaben feststellt:
-
Sendet ein Serviceereignis, das darauf hinweist, dass das Rebalancing der Availability Zone beginnt.
-
Startet Aufgaben in Availability Zones mit der geringsten Anzahl ausgeführter Aufgaben
-
Stoppt die Aufgaben in Availability Zones mit der größten Anzahl ausgeführter Aufgaben.
-
Der Scheduler wartet, bis die neu gestarteten Aufgaben abgeschlossen sind,
HEALTHY
undRUNNING
stoppt dann die Aufgaben in der überskalierten Availability Zone. -
Sendet ein Serviceereignis mit dem Ergebnis der Neuverteilung der Availability Zone.
-
Wie Amazon ECS eine ungleichmäßige Aufgabenverteilung erkennt
Amazon ECS ermittelt ein Ungleichgewicht in der Anzahl der Aufgaben, die in jeder Availability Zone ausgeführt werden, indem die Anzahl der gewünschten Aufgaben des Service durch die Anzahl der konfigurierten Availability Zones dividiert wird. Wenn sich die gewünschte Anzahl an Aufgaben nicht gleichmäßig verteilt, verteilt Amazon ECS die restlichen Aufgaben gleichmäßig auf die konfigurierten Availability Zones. Jede Availability Zone muss mindestens eine Aufgabe haben.
Stellen Sie sich zum Beispiel einen Amazon ECS-Service mit einer gewünschten Anzahl von zwei Aufgaben vor, die für zwei Availability Zones konfiguriert sind. In diesem Szenario verteilt sich die gewünschte Anzahl an Aufgaben gleichmäßig. Eine ausgewogene Verteilung würde aus einer Aufgabe pro Availability Zone bestehen. Wenn es zwei Aufgaben in Availability Zone 1 und keine Tasks in Availability Zone 2 gibt, würde Amazon ECS den Rebalancing einleiten, indem es eine Aufgabe in Availability Zone 2 startet, bevor eine Aufgabe in Availability Zone 1 gestoppt wird.
Stellen Sie sich nun einen Amazon ECS-Service mit einer gewünschten Anzahl von drei Aufgaben vor, die für zwei Availability Zones konfiguriert sind. In diesem Szenario verteilt sich die gewünschte Anzahl an Aufgaben nicht gleichmäßig. Eine ausgewogene Verteilung würde aus einer Aufgabe in Availability Zone 1 und zwei Tasks in Availability Zone 2 bestehen, da jede Availability Zone über mindestens eine Aufgabe verfügt und die restliche Aufgabe in Availability Zone 2 platziert wird.
Stellen Sie sich einen Amazon ECS-Service vor, bei dem die gewünschte Anzahl von fünf Aufgaben für drei Availability Zones konfiguriert ist. In diesem Szenario verteilt sich die gewünschte Anzahl an Aufgaben nicht gleichmäßig. Eine ausgewogene Verteilung würde aus einer Aufgabe in der Availability Zone 1 und jeweils zwei Aufgaben in den Availability Zones 2 und 3 bestehen. Nach Berücksichtigung jeder Availability Zone mit jeweils einer Aufgabe werden die beiden verbleibenden Aufgaben gleichmäßig auf die Availability Zones verteilt.
Überlegungen zur Konfiguration des Rebalancing der Availability Zone
Beachten Sie Folgendes, wenn Sie das Rebalancing der Availability Zone konfigurieren möchten:
Das Rebalancing der Availability Zone unterstützt die Typen Fargate und EC2 Launch. Für Fargate verteilt Amazon ECS die Aufgaben automatisch auf die verfügbaren Availability Zones, um das Gleichgewicht zu halten. Beim EC2 Starttyp verteilt Amazon ECS die Aufgaben auf bestehende Container-Instances nach bestem Wissen und unter Berücksichtigung Ihrer definierten Platzierungsstrategien und Einschränkungen. Amazon ECS kann jedoch im Rahmen des Rebalancing-Prozesses keine neuen Instances in nicht ausgelasteten Availability Zones starten, wodurch das Rebalancing auf bestehende Container-Instances beschränkt wird.
-
Das Rebalancing der Availability Zone funktioniert in den folgenden Konfigurationen:
-
Dienste, die diese Strategie verwenden
Replica
-
Dienste, die Availability Zone Spread als erste Strategie für die Aufgabenverteilung angeben oder keine Platzierungsstrategie angeben.
-
-
Sie können die Availability Zone Rebalancing nicht für Dienste verwenden, die eines der folgenden Kriterien erfüllen:
-
Verwendet die Strategie
Daemon
-
Verwendet den
EXTERNAL
Starttyp (ECS Anywhere) -
Verwendet 100% für den
maximumPercent
Wert -
Verwendet einen Classic Load Balancer
-
Verwendet die
attribute:ecs.availability-zone
als Einschränkung für die Aufgabenplatzierung
-
Platzierungsstrategien und Platzierungsbeschränkungen beim Rebalancing der Availability Zone
Platzierungsstrategien bestimmen, wie Amazon ECS Container-Instances und Availability Zones für die Beendigung der Aufgabenplatzierung auswählt. Einschränkungen bei der Aufgabenplatzierung sind Regeln, die festlegen, ob eine Aufgabe auf einer bestimmten Container-Instance ausgeführt werden darf.
Für den EC2 Starttyp können Sie Platzierungsstrategien und Platzierungsbeschränkungen in Verbindung mit dem Rebalancing der Availability Zone verwenden. Damit das Rebalancing der Availability Zone funktioniert, muss die Strategie zur Verteilung der Availability Zone jedoch als erste Strategie angegeben werden.
Das Rebalancing der Availability Zone ist mit verschiedenen Kombinationen von Platzierungsstrategien kompatibel. Sie können beispielsweise eine Strategie erstellen, bei der die Aufgaben zunächst gleichmäßig auf die Availability Zones verteilt werden und anschließend die Aufgaben auf der Grundlage des Arbeitsspeichers innerhalb jeder Availability Zone als Bin-Packs zusammengefasst werden. In diesem Fall funktioniert das Rebalancing der Availability Zone, da zuerst die Strategie zur Verteilung der Availability Zone festgelegt wird.
Es ist wichtig zu beachten, dass das Rebalancing der Availability Zone nicht funktioniert, wenn es sich bei der ersten Strategie im Placement-Array nicht um eine Spread-Komponente für die Availability Zone handelt. Diese Anforderung stellt sicher, dass das Hauptaugenmerk der Aufgabenverteilung auf der Aufrechterhaltung des Gleichgewichts zwischen den Availability Zones liegt, was für eine hohe Verfügbarkeit von entscheidender Bedeutung ist.
Weitere Informationen zu Strategien und Einschränkungen bei der Aufgabenverteilung finden Sie unterWie Amazon ECS Aufgaben auf Container-Instances platziert.
Aufgabenplatzierungs-Strategien und -Beschränkungen werden für Aufgaben mit dem Fargate-Launchtyp nicht unterstützt. Fargate wird sich bemühen, Aufgaben über zugängliche Availability Zones zu verteilen. Wenn der Kapazitätsanbieter sowohl Fargate als auch Fargate Spot umfasst, ist das Verteilungsverhalten für jeden Kapazitätsanbieter unabhängig.
Mit der folgenden Beispielstrategie werden die Aufgaben gleichmäßig auf die Availability Zones verteilt. Anschließend werden die Aufgaben auf Basis des Arbeitsspeichers innerhalb jeder Availability Zone als Bin-Pack zusammengefasst. Das Rebalancing der Availability Zone ist mit dem Service kompatibel, da die spread
Strategie an erster Stelle steht.
"placementStrategy": [ { "field": "attribute:ecs.availability-zone", "type": "spread" }, { "field": "memory", "type": "binpack" } ]
Aktivieren Sie das Rebalancing der Availability Zone
Sie müssen das Rebalancing der Availability Zone für neue und bestehende Dienste aktivieren.
Sie können das Rebalancing der Availability Zone mithilfe der Konsole, APIs AWS CLI, und aktivieren und deaktivieren. AWS CloudFormation
Das Standardverhalten von AvailabilityZoneRebalancing
unterscheidet sich zwischen Erstellungs- und Aktualisierungsanforderungen:
-
Wenn bei der Erstellung von Serviceanfragen kein Wert angegeben ist
AvailabilityZoneRebalancing
, setzt Amazon ECS den Wert standardmäßig aufENABLED
. -
Bei Serviceanfragen zur Aktualisierung verwendet Amazon ECS standardmäßig den Wert des vorhandenen Service
AvailabilityZoneRebalancing
, wenn keinAvailabilityZoneRebalancing
Wert für angegeben ist. Wenn für den Service nie einAvailabilityZoneRebalancing
Wert festgelegt wurde, behandelt Amazon ECS diesen alsDISABLED
.
Servicetyp | API | Konsole | CLI |
---|---|---|---|
Besteht | UpdateService | Aktualisierung eines Amazon ECS-Service | Aktualisierungsservice |
Neu | CreateService | Erstellung einer Bereitstellung von fortlaufenden Updates für Amazon ECS | create-service |
Das folgende Beispiel zeigt, wie der Service Rebalancing aktiviert wird, wenn ein neuer Dienst erstellt wird:
aws ecs create-service \ --cluster my-cluster \ --service-name my-service \ --task-definition my-task-definition:1 \ --desired-count 6 \ --availability-zone-rebalancing ENABLED
Problembehebung beim Rebalancing von Diensten
Wenn Sie Probleme mit der Neuverteilung von Diensten haben, sollten Sie die folgenden Schritte zur Fehlerbehebung in Betracht ziehen:
- Das Rebalancing startet nicht
-
Vergewissern Sie sich, dass folgende Bedingungen erfüllt sind:
-
Der Service Rebalancing ist für Ihren Service aktiviert
-
Ihr Service verwendet eine unterstützte Konfiguration (sieheÜberlegungen zur Konfiguration des Rebalancing der Availability Zone)
-
Ihr Dienst hat einen stabilen Status erreicht
-
- Fehler bei der Aufgabenplatzierung beim Rebalancing
-
Wenn Sie
SERVICE_TASK_PLACEMENT_FAILURE
Ereignisse sehen:-
Für den EC2 Starttyp: Prüfen Sie, ob Container-Instances in der Ziel-Availability Zone verfügbar sind
-
Für den Starttyp Fargate: Prüfen Sie, ob es Ressourcen- oder Servicekontingente gibt, die die Aufgabenplatzierung einschränken
-
Überprüfen Sie Ihre Einschränkungen bei der Aufgabenplatzierung, um sicherzustellen, dass sie die richtige Aufgabenverteilung nicht verhindern
-
- Die Neuverteilung wird unerwartet beendet
-
Wenn Sie
SERVICE_REBALANCING_STOPPED
Ereignisse sehen:-
Suchen Sie nach dem Task-Schutz, der den Vorgang möglicherweise blockiert
-
Halten Sie Ausschau nach gleichzeitigen Dienstbereitstellungen, die das Rebalancing unterbrechen könnten
-
Weitere Informationen darüber, warum der Rebalancing gestoppt wurde, finden Sie unter Serviceereignisse
-
Bewährte Methoden für die Neuausrichtung von Diensten
Folgen Sie diesen bewährten Methoden, um das Beste aus der Neuausrichtung von Diensten herauszuholen:
-
Überwachung von Ausgleichsvorgängen — Richten Sie CloudWatch Alarme ein, um Serviceereignisse im Zusammenhang mit dem Rebalancing zu überwachen und Probleme schnell zu erkennen.
-
Auswirkungen auf die Leistung berücksichtigen — Seien Sie sich bewusst, dass Neugewichte vorübergehend zu einer erhöhten Ressourcenauslastung führen können, da neue Aufgaben gestartet werden, bevor alte beendet werden.
-
Strategischer Einsatz von Task-Protection — Wenn Sie kritische Aufgaben haben, die beim Rebalancing nicht beendet werden sollten, sollten Sie den Task-Schutz in Erwägung ziehen.
-
EC2 Kapazitätsplanung — Stellen Sie für den EC2 Starttyp sicher, dass Sie über genügend Container-Instances in allen Availability Zones verfügen, um eine effektive Neuverteilung zu unterstützen.
-
Testen Sie das Verhalten bei der Neuverteilung — Bevor Sie sich auf eine Neuverteilung in der Produktion verlassen, sollten Sie testen, wie sich Ihre Services bei Neuausgleichsvorgängen in einer Umgebung außerhalb der Produktionsumgebung verhalten.