Laufende Aktualisierung - Amazon ECS

Laufende Aktualisierung

Wenn der Bereitstellungstyp Laufende Aktualisierung (ECS) für Ihren Service verwendet wird, wenn eine neue Servicebereitstellung gestartet wird, ersetzt der Amazon ECS-Service-Scheduler die derzeit ausgeführten Aufgaben durch neue Aufgaben. Die Anzahl der Aufgaben, die Amazon ECS während einer fortlaufenden Aktualisierung für den Service hinzufügt oder entfernt, wird durch die Bereitstellungskonfiguration gesteuert. Die Bereitstellungskonfiguration besteht aus den minimumHealthyPercent- und maximumPercent-Werten, die beim Erstellen des Service definiert werden, aber auch für einen vorhandenen Service aktualisiert werden können.

minimumHealthyPercent stellt die Untergrenze für die Anzahl der Aufgaben dar, die für einen Service während einer Bereitstellung oder wenn eine Container-Instance entleert wird, als Prozentsatz der gewünschten Anzahl von Aufgaben für den Service. Dieser Wert wird aufgerundet. Zum Beispiel, wenn der minimale gesunde Prozentsatz 50 ist und die gewünschte Aufgabenanzahl vier ist, kann der Scheduler zwei bestehende Aufgaben stoppen, bevor er zwei neue Aufgaben startet. Ebenso kann der Scheduler, wenn der minimale fehlerfreie Prozentsatz 75 % beträgt und die gewünschte Anzahl zwei ist, keine Aufgaben stoppen, da der resultierende Wert auch zwei ist.

maximumPercent stellt die Obergrenze für die Anzahl der Aufgaben dar, die für einen Service während einer Bereitstellung oder wenn eine Container-Instance entleert wird, als Prozentsatz der gewünschten Anzahl von Aufgaben für einen Service. Dieser Wert wird abgerundet. Zum Beispiel, wenn der maximale Prozentsatz 200 ist und die gewünschte Aufgabenanzahl vier ist, kann der Scheduler vier neue Aufgaben starten, bevor er vier vorhandene Aufgaben beendet. Ebenso, wenn der maximale Prozentsatz 125. ist und die gewünschte Aufgabenanzahl drei ist, kann der Scheduler keine Aufgaben starten, da der resultierende Wert ebenfalls drei ist.

Wichtig

Wenn Sie einen minimalen fehlerfreien Prozentsatz oder einen maximalen Prozentsatz festlegen, sollten Sie sicherstellen, dass der Scheduler mindestens eine Aufgabe anhalten oder starten kann, wenn eine Bereitstellung ausgelöst wird. Wenn Ihr Service über eine Bereitstellung verfügt, die aufgrund einer ungültigen Bereitstellungskonfiguration nicht mehr besteht, wird eine Serviceereignismeldung gesendet. Weitere Informationen finden Sie unter Service (service-name) konnte Tasks während einer Bereitstellung aufgrund der Konfiguration der Dienstbereitstellung nicht anhalten oder starten. Aktualisieren Sie den Wert minimumHealthYPercent oder maximumPercent, und versuchen Sie es erneut..

Wenn eine neue Servicebereitstellung gestartet wird oder eine Bereitstellung abgeschlossen ist, sendet Amazon ECS ein Änderungsereignis für den Status der Servicebereitstellung an EventBridge. Dies bietet eine programmgesteuerte Möglichkeit, den Status Ihrer Servicebereitstellungen zu überwachen. Weitere Informationen finden Sie unter Änderungen des Zustands bei der Servicebereitstellung.

Um einen neuen Amazon-ECS-Service zu erstellen, der den Bereitstellungstyp Laufende Aktualisierung verwendet, siehe Erstellen eines Amazon-ECS-Services.

Verwenden des Bereitstellungsschutzschalters

Wenn ein Service, der den Bereitstellungstyp für laufende Aktualisierung verwendet, eine neue Bereitstellung startet, startet der Service-Scheduler standardmäßig neue Aufgaben, bis die gewünschte Anzahl erreicht ist. Sie können optional die Logik des Bereitstellungs-Leistungsschalters für den Service verwenden, wodurch die Bereitstellung in einen fehlgeschlagenen Zustand übergeht, wenn sie keinen stabilen Zustand erreichen kann. Die Logik für die Bereitstellung kann Amazon ECS auch dazu führen, dass bei einem Ausfall der Bereitstellung ein Rollback auf die zuletzt abgeschlossene Bereitstellung erfolgt.

Das folgende create-service-AWS CLI-Beispiel zeigt, wie ein Linux-Service erstellt wird, wenn der Bereitstellungs-Leistungsschalter mit Rollback aktiviert ist.

aws ecs create-service \ --service-name MyService \ --deployment-controller type=ECS \ --desired-count 2 \ --deployment-configuration "deploymentCircuitBreaker={enable=true,rollback=true}" \ --task-definition sample-fargate:1 \ --launch-type FARGATE \ --platform-os LINUX \ --platform-version 1.4.0 \ --network-configuration "awsvpcConfiguration={subnets=[subnet-12344321],securityGroups=[sg-12344321],assignPublicIp=ENABLED}"

Folgendes sollte berücksichtigt werden, wenn Sie die Logik des Bereitstellungs-Leistungsschalters für einen Service aktivieren.

  • Der Leistungsschalter für die Bereitstellung wird nur für Amazon-ECS-Services unterstützt, die den Bereitstellungscontroller für laufende Aktualisierung (ECS) und keinen Classic Load Balancer verwenden.

  • Wenn eine Servicebereitstellung über mindestens eine erfolgreich ausgeführte Aufgabe verfügt, wird die Logik des Leistungsschutzschalters unabhängig davon ausgelöst, ob frühere oder zukünftige fehlgeschlagene Aufgaben bereitgestellt wurden.

  • Es gibt zwei neue Parameter, die der Antwort einer DescribeServices-API-Aktion, die einen Einblick in den Zustand einer Bereitstellung bietet, hinzugefügt werden: rolloutState und rolloutStateReason. Wenn eine neue Bereitstellung gestartet wird, beginnt der Rollout-Status in einem IN_PROGRESS-Zustand. Wenn der Service einen stabilen Zustand erreicht, wechselt der Rollout-Status zu COMPLETED. Wenn der Service einen konstanten Zustand erreicht und der Leistungsschalter aktiviert ist, wechselt die Bereitstellung in einen FAILED-Zustand. Eine Bereitstellung in einem FAILED-Status startet keine neuen Aufgaben.

  • Zusätzlich zu den Ereignissen zur Änderung des Status der Servicebereitstellung, die Amazon ECS für gestartete und abgeschlossene Bereitstellungen sendet, sendet Amazon ECS auch ein Ereignis, wenn eine Bereitstellung mit aktiviertem Leistungsschalter fehlschlägt. Diese Ereignisse enthalten Details dazu, warum eine Bereitstellung fehlgeschlagen ist oder ob eine Bereitstellung aufgrund eines Rollbacks gestartet wurde. Weitere Informationen finden Sie unter Änderungen des Zustands bei der Servicebereitstellung.

  • Wenn eine neue Bereitstellung gestartet wird, weil eine frühere Bereitstellung fehlgeschlagen ist und das Rollback aktiviert wurde, wird das reason-Feld des Ereignisses zur Statusänderung der Servicebereitstellung anzeigen, dass die Bereitstellung aufgrund eines Rollbacks gestartet wurde.

Fehlerschwellenwert

Der Bereitstellungs-Leistungsschalter berechnet den Schwellenwert und verwendet dann den Wert, um zu bestimmen, wann die Bereitstellung in einen FAILED-Zustand versetzt werden soll.

Der Bereitstellungs-Leistungsschalter hat einen Mindestschwellenwert von 10 und einen maximalen Schwellenwert von 200 und verwendet die Werte in der folgenden Formel, um den Bereitstellungsfehler zu ermitteln.

Minimum threshold <= 0.5 * desired task count => maximum threshold

Wenn das Ergebnis der Berechnung kleiner als das Minimum von 10 ist, wird der Fehlerschwellenwert auf 10 festgelegt. Wenn das Ergebnis der Berechnung größer als das Maximum von 200 ist, wird der Fehlerschwellenwert auf 200 festgelegt.

Anmerkung

Sie können keinen der Schwellenwerte ändern.

Es gibt zwei Phasen für die Überprüfung des Bereitstellungsstatus.

  1. Der Bereitstellungs-Leistungsschalter überwacht Aufgaben, die Teil der Bereitstellung sind und sucht nach Aufgaben, die sich im RUNNING-Zustand befinden. Der Scheduler ignoriert die Fehlerkriterien, wenn sich eine Aufgabe in der aktuellen Bereitstellung im RUNNING-Zustand befindet und fährt mit der nächsten Stufe fort. Wenn Aufgaben den RUNNING-Zustand nicht erreichen, erhöht der Bereitstellungs-Leistungsschalter die Fehleranzahl um eins. Wenn die Fehleranzahl dem Schwellenwert entspricht, wird die Bereitstellung als FAILED markiert.

  2. In diese Stufe wird eingetreten, wenn es eine oder mehrere Aufgaben im RUNNING-Zustand gibt. Der Bereitstellungs-Leistungsschalter führt Zustandsprüfungen der folgenden Ressourcen für die Aufgaben in der aktuellen Bereitstellung durch:

    • Elastic Load Balancing-Load Balancer

    • AWS Cloud Map-Service

    • Zustandsprüfungen für Amazon-ECS-Container

    Wenn eine Zustandsprüfung für die Aufgabe fehlschlägt, erhöht der Bereitstellungs-Leistungsschalter die Fehleranzahl um eins. Wenn die Fehleranzahl dem Schwellenwert entspricht, wird die Bereitstellung als FAILED markiert.

Die folgende Tabelle bietet einige Beispiele.

Gewünschte Aufgabenanzahl Berechnung Schwellenwert

1

10 <= 0.5 * 1 => 200
10 (Der berechnete Wert ist kleiner als das Minimum)

25

10 <= 0.5 * 25 => 200
13 (Der Wert wird aufgerundet)

400

10 <= 0.5 * 400 => 200
200

800

10 <= 0.5 * 800 => 200
200 (Der berechnete Wert ist größer als das Maximum)

Weitere Beispiele zur Verwendung der Rollback-Option finden Sie unter Ankündigung des Leistungsschalters für die Bereitstellung von Amazon ECS.