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

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.

Im Folgenden finden Sie einen Überblick über den Rebalancing-Prozess für die Availability Zone:

  1. 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.

  2. 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 und RUNNING 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 Tasks 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 mit der Konsole oder dem aktivieren und APIs deaktivieren. AWS CLI