Ausgleich eines Amazon ECS-Service über mehrere Availability Zones - Amazon Elastic Container Service

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 den Neuausgleich der Availability Zone für alle Services, die für dieses Feature in Frage kommen. Ein Service ist berechtigt, wenn die Verteilung auf Availability Zones die erste Strategie zur Aufgabenplatzierung ist oder wenn es keine Platzierungsstrategie gibt.

Damit Ihre Anwendungen eine hohe Verfügbarkeit erreichen, empfehlen wir, Ihre Multitask-Services 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.

Nachstehend finden Sie eine Übersicht über den Neuausgleich-Prozess der Availability Zone:

  1. Amazon ECS beginnt mit der Überwachung eines Service, nachdem dieser den stabilen Status erreicht hat, und untersucht die Anzahl der Aufgaben, die in jeder Availability Zone ausgeführt werden.

  2. Amazon ECS führt die folgenden Vorgänge durch, wenn es ein Ungleichgewicht in der Anzahl der in jeder Availability Zone ausgeführten Aufgaben feststellt:

    • Sendet ein Service-Ereignis, das darauf hinweist, dass der Neuausgleich der Availability Zone beginnt.

    • Startet Aufgaben in Availability Zones mit der geringsten Anzahl von ausgeführten Aufgaben

    • Stoppt Aufgaben in Availability Zones mit der größten Anzahl von ausgeführten Aufgaben

    • Der Scheduler wartet, bis die neu gestarteten Aufgaben HEALTHY und RUNNING sind, bevor er die Aufgaben in der überskalierten Availability Zone anhält.

    • Sendet ein Service-Ereignis mit dem Ergebnis des Neuausgleichs der Availability Zone.

So erkennt Amazon ECS eine ungleichmäßige Aufgabenverteilung

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 Aufgaben in Availability Zone 2 gibt, würde Amazon ECS den Neuausgleich 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 Aufgaben 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 für die Konfiguration des Availability-Zone-Neuausgleichs

Berücksichtigen Sie Folgendes, wenn Sie den Availability-Zone-Neuausgleich konfigurieren möchten:

  • Availability Zone Rebalancing unterstützt Fargate und EC2 Kapazitätsanbieter und wird auf Amazon ECS Managed Instances unterstützt. Für Fargate verteilt Amazon ECS die Aufgaben automatisch auf die verfügbaren Availability Zones, um das Gleichgewicht zu halten. Für EC2 Kapazitätsanbieter 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 Neuausgleich-Prozesses keine neuen Instances in nicht ausgelasteten Availability Zones starten, wodurch der Neuausgleich auf bestehende Container-Instances beschränkt wird.

  • Der Availability-Zone-Neuausgleich funktioniert in den folgenden Konfigurationen:

    • Services, die die Replica-Strategie verwenden

    • Services, die die Verteilung auf Availability Zones als erste Strategie für die Aufgabenverteilung angeben oder keine Platzierungsstrategie angeben.

  • Sie können den Availability-Zone-Neuausgleich nicht für Services verwenden, die eines der folgenden Kriterien erfüllen:

    • Verwendet die Daemon-Strategie

    • Verwendet den EXTERNAL-Starttyp (ECS Anywhere)

    • Verwendet 100 % für den maximumPercent-Wert

    • Verwendet einen Classic Load Balancer

    • Verwendet attribute:ecs.availability-zone als Einschränkung bei die Aufgabenplatzierung

Platzierungsstrategien und Platzierungsbeschränkungen beim Availability-Zone-Neuausgleich

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.

Denn EC2 Sie können Platzierungsstrategien und Platzierungsbeschränkungen in Verbindung mit der Availability Zone Rebalancing verwenden. Damit der Availability-Zone-Neuausgleich funktioniert, muss die Strategie zur Verteilung der Availability Zone jedoch als erste Strategie angegeben werden.

Der Availability-Zone-Neuausgleich ist mit verschiedenen Kombinationen von Platzierungsstrategien kompatibel. Sie können beispielsweise eine Strategie erstellen, die zuerst Aufgaben gleichmäßig auf Availability Zones verteilt und anschließend basierend auf dem Arbeitsspeicher innerhalb der einzelnen Availability Zone Aufgaben in einem Bin verpackt. In diesem Fall funktioniert der Availability-Zone-Neuausgleich, weil zuerst die Verteilungsstrategie der Availability Zone festgelegt wird.

Es ist wichtig zu beachten, dass der Availability-Zone-Neuausgleich nicht funktioniert, wenn es sich bei der ersten Strategie in der Platzierungsstrategie nicht um eine Verteilungskomponente 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 Aufgabenplatzierungs-Strategien und -Einschränkungen, finden Sie unter Wie Amazon ECS Aufgaben auf Container-Instances platziert.

Aufgabenplatzierungs-Strategien und -Beschränkungen werden für Aufgaben mit Fargate 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.

Im folgenden Beispiel werden Aufgaben gleichmäßig auf Availability Zones verteilt und anschließend basierend auf dem Arbeitsspeicher in jeder Availability Zone in einem Bin verpackt. Der Availability-Zone-Neuausgleich 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" } ]

Availability-Zone-Neuausgleich aktivieren

Sie müssen den Availability-Zone-Neuausgleich für neue und bestehende Services aktivieren.

Sie können das Rebalancing der Availability Zone mithilfe der Konsole, APIs AWS CLI, und aktivieren und deaktivieren. CloudFormation

Das Standardverhalten von AvailabilityZoneRebalancing unterscheidet sich zwischen Erstellungs- und Aktualisierungsanforderungen:

  • Wenn bei Service-Erstellungsanforderungen kein Wert für AvailabilityZoneRebalancing angegeben ist, setzt Amazon ECS den Wert standardmäßig auf ENABLED.

  • Wenn bei Service-Aktualisierungsanforderungen kein Wert für AvailabilityZoneRebalancing angegeben ist, setzt Amazon ECS den Wert standardmäßig auf den AvailabilityZoneRebalancing-Wert des vorhandenen Service. Wenn für den Service nie ein AvailabilityZoneRebalancing-Wert festgelegt wurde, behandelt Amazon ECS diesen als DISABLED.

Im folgenden Beispiel wird gezeigt, wie der Service-Neuausgleich beim Erstellen eines neuen Services aktiviert 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

Fehlerbehebung bei Service-Neuausgleich

Wenn Sie Probleme mit dem Neuausgleich von Services haben, sollten Sie die folgenden Schritte zur Fehlerbehebung in Betracht ziehen:

Der Neuausgleich startet nicht

Vergewissern Sie sich, dass folgende Bedingungen erfüllt sind:

Fehler bei der Aufgabenplatzierung beim Neuausgleich

Wenn Sie SERVICE_TASK_PLACEMENT_FAILURE-Ereignisse sehen:

  • Für EC2: Prüfen Sie, ob in der Ziel-Availability Zone Container-Instances verfügbar sind

  • Für Fargate: Prüfen Sie, ob es Ressourcenbeschränkungen oder Service Quotas gibt, die die Aufgabenplatzierung einschränken

  • Überprüfen Sie Ihre Einschränkungen bei der Aufgabenplatzierung, um sicherzustellen, dass sie die ordentliche Aufgabenverteilung nicht verhindern

Der Neuausgleich wird unerwartet angehalten

Wenn Sie SERVICE_REBALANCING_STOPPED-Ereignisse sehen:

  • Suchen Sie nach einem Aufgabenschutz, der den Vorgang möglicherweise blockiert.

  • Halten Sie Ausschau nach gleichzeitigen Service-Bereitstellungen, die den Neuausgleich unterbrechen könnten.

  • Überprüfen Sie die Service-Ereignisse für weitere Informationen darüber, warum der Neuausgleich angehalten wurde

Bewährte Methoden für den Service-Neuausgleich

Befolgen Sie diese bewährten Methoden, um den Service-Neuausgleich optimal einzusetzen.

  • Überwachung von Rebalancing-Vorgä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 Neuausgleichsvorgänge vorübergehend die Ressourcenauslastung erhöhen können, da neue Aufgaben gestartet werden, bevor alte beendet werden.

  • Strategischer Einsatz von Aufgabenschutz – Wenn Sie kritische Aufgaben haben, die beim Neuausgleich nicht beendet werden sollten, sollten Sie den Aufgabenschutz in Erwägung ziehen.

  • EC2 Kapazitätsplanung — Stellen Sie sicher EC2, dass Sie über genügend Container-Instances in allen Availability Zones verfügen, um ein effektives Rebalancing zu unterstützen.

  • Verhalten beim Neuausgleich testen – Bevor Sie einen Neuausgleich in der Produktion einsetzen, sollten Sie testen, wie sich Ihre Services bei Neuausgleichsvorgängen in einer Nicht-Produktionsumgebung verhalten.