Wählen Sie Ihre Cookie-Einstellungen aus

Wir verwenden essentielle Cookies und ähnliche Tools, die für die Bereitstellung unserer Website und Services erforderlich sind. Wir verwenden Performance-Cookies, um anonyme Statistiken zu sammeln, damit wir verstehen können, wie Kunden unsere Website nutzen, und Verbesserungen vornehmen können. Essentielle Cookies können nicht deaktiviert werden, aber Sie können auf „Anpassen“ oder „Ablehnen“ klicken, um Performance-Cookies abzulehnen.

Wenn Sie damit einverstanden sind, verwenden AWS und zugelassene Drittanbieter auch Cookies, um nützliche Features der Website bereitzustellen, Ihre Präferenzen zu speichern und relevante Inhalte, einschließlich relevanter Werbung, anzuzeigen. Um alle nicht notwendigen Cookies zu akzeptieren oder abzulehnen, klicken Sie auf „Akzeptieren“ oder „Ablehnen“. Um detailliertere Entscheidungen zu treffen, klicken Sie auf „Anpassen“.

Schützen Sie Ihre Amazon ECS-Aufgaben davor, durch Scale-In-Ereignisse beendet zu werden

Fokusmodus
Schützen Sie Ihre Amazon ECS-Aufgaben davor, durch Scale-In-Ereignisse beendet zu werden - 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.

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.

Sie können den Task-Scale-In-Schutz von Amazon ECS verwenden, um zu verhindern, dass Ihre Aufgaben durch Scale-In-Ereignisse von Service Auto Scaling oder Bereitstellungen beendet werden.

Bestimmte Anwendungen erfordern einen Mechanismus zum Schutz unternehmenskritischer Aufgaben vor der Beendigung durch Abskalierungsereignisse in Zeiten geringer Auslastung oder während Service-Bereitstellungen. Zum Beispiel:

  • Sie verfügen über eine asynchrone Anwendung mit Warteschlangenverarbeitung, z. B. einen Video-Transkodierungsauftrag, bei dem einige Aufgaben stundenlang ausgeführt werden müssen, selbst wenn die kumulierte Service-Auslastung gering ist.

  • Sie haben eine Spieleanwendung, die Spieleserver als Amazon ECS-Aufgaben ausführt, die auch dann weiterlaufen müssen, wenn sich alle Benutzer abgemeldet haben, um die Startlatenz bei einem Serverneustart zu reduzieren.

  • Wenn Sie eine neue Codeversion bereitstellen, müssen Aufgaben weiterhin ausgeführt werden, da eine erneute Verarbeitung kostenintesiv wäre.

Um zu verhindern, dass Aufgaben, die zu Ihrem Service gehören, bei einem Abskalierungs-Ereignis beendet werden, setzen Sie das protectionEnabled-Attribut auf true. Wenn Sie protectionEnabled auf true setzen, sind Aufgaben standardmäßig für 2 Stunden geschützt. Anschließend können Sie den Schutzzeitraum mithilfe des expiresInMinutes Attributs anpassen. Sie können Ihre Aufgaben für mindestens 1 Minute und bis zu maximal 2 880 Minuten (48 Stunden) schützen.

Nachdem eine Aufgabe ihre erforderliche Arbeit beendet hat, können Sie das protectionEnabled-Attribut auf false setzen, sodass die Aufgabe durch nachfolgende Abskalierungsereignisse beendet werden kann.

Mechanismus des Abskalierungsschutzes für Aufgaben

Sie können den Abskalierungsschutz für Aufgaben entweder über den Amazon-ECS-Container-Agent-Endpunkt oder die Amazon-ECS-API einrichten und abrufen.

  • Amazon-ECS-Container-Agent-Endpunkt

    Wir empfehlen die Verwendung des Amazon-ECS-Container-Agent-Endpunkts für Aufgaben, die den Schutzbedarf selbst bestimmen können. Verwenden Sie diesen Ansatz für warteschlangenbasierte oder Auftragsverarbeitungs-Workloads.

    Wenn ein Container mit der Verarbeitung von Aufgaben beginnt, z. B. durch Konsumieren einer SQS-Nachricht, können Sie das ProtectionEnabled-Attribut über den Endpunkt-Pfad $ECS_AGENT_URI/task-protection/v1/state zum Abskalierungsschutz für Aufgaben innerhalb des Containers festlegen. Amazon ECS beendet diese Aufgabe bei Abskalierungsereignissen nicht. Wenn Ihre Aufgabe ihre Arbeit beendet hat, können Sie das ProtectionEnabled Attribut mit demselben Endpunkt löschen, sodass die Aufgabe bei nachfolgenden Skalierungsereignissen beendet werden kann.

    Weitere Informationen zum Amazon ECS-Container-Agent-Endpunkt finden Sie unterSkalierbarer Schutzendpunkt für Amazon ECS Task.

  • Amazon-ECS-API

    Sie können die Amazon ECS-API verwenden, um den Task-Scale-In-Schutz einzurichten und abzurufen, wenn Ihre Anwendung über eine Komponente verfügt, die den Status aktiver Aufgaben verfolgt. Verwenden Sie UpdateTaskProtection, um eine oder mehrere Aufgaben als geschützt zu markieren. Wird verwendetGetTaskProtection, um den Schutzstatus abzurufen.

    Ein Beispiel für diesen Ansatz wäre, wenn Ihre Anwendung Spielserver-Sitzungen als Amazon-ECS-Aufgaben hostet. Wenn sich ein Benutzer bei einer Sitzung auf dem Server (Aufgabe) anmeldet, können Sie die Aufgabe als geschützt markieren. Nachdem sich der Benutzer abgemeldet hat, können Sie entweder den Schutz speziell für diese Aufgabe aufheben oder den Schutz für ähnliche Aufgaben, die keine aktiven Sitzungen mehr haben, regelmäßig aufheben, je nachdem, ob Sie Server im Leerlauf halten möchten.

    Weitere Informationen finden Sie unter UpdateTaskProtectionund GetTaskProtectionin der Amazon Elastic Container Service API-Referenz.

Sie können beide Ansätze kombinieren. Verwenden Sie beispielsweise den Amazon-ECS-Agent-Endpunkt, um den Aufgabenschutz innerhalb eines Containers einzurichten, und verwenden Sie die Amazon-ECS-API, um den Aufgabenschutz für Ihren externen Controller-Service zu entfernen.

Überlegungen

Berücksichtigen Sie die folgenden Punkte, bevor Sie den Abskalierungsschutz für Aufgaben verwenden:

  • Wir empfehlen die Verwendung des Amazon-ECS-Container-Agent-Endpunkts, da der Amazon-ECS-Agent über integrierte Wiederholungsmechanismen und eine einfachere Schnittstelle verfügt.

  • Sie können den Ablaufzeitraum für den Abskalierungsschutz für Aufgaben zurücksetzen, indem Sie UpdateTaskProtection für eine Aufgabe aufrufen, für die der Schutz bereits aktiviert ist.

  • Bestimmen Sie, wie lange eine Aufgabe benötigen würde, um ihre erforderliche Arbeit abzuschließen, und legen Sie die expiresInMinutes-Eigenschaft entsprechend fest. Wenn Sie den Ablauf des Schutzes länger als nötig festlegen, entstehen Ihnen Kosten und Verzögerungen bei der Bereitstellung neuer Aufgaben.

  • Der Aufgaben-Abskalierungsschutz wird auf dem Amazon-ECS-Container-Agenten 1.65.0 oder höher unterstützt.

    Sie können Unterstützung für diese Funktion auf EC2 Amazon-Instances hinzufügen, die ältere Versionen des Amazon ECS-Container-Agenten verwenden, indem Sie den Agenten auf die neueste Version aktualisieren. Weitere Informationen finden Sie unter Überprüfen des Amazon-ECS-Container-Agenten.

  • Überlegungen zur Bereitstellung:

    • Wenn der Service eine fortlaufende Aktualisierung verwendet, werden neue Aufgaben erstellt, aber Aufgaben mit älteren Versionen werden nicht beendet, bis protectionEnabled gelöscht wird oder abläuft. Sie können den maximumPercentage-Parameter in der Bereitstellungskonfiguration auf einen Wert anpassen, der es ermöglicht, neue Aufgaben zu erstellen, wenn alte Aufgaben geschützt sind.

    • Wenn eine Blau/Grün-Aktualisierung angewendet wird, wird die blaue Bereitstellung mit geschützten Aufgaben nicht entfernt, wenn Aufgaben über protectionEnabled verfügen. Der Datenverkehr wird auf die neu hinzukommenden Aufgaben umgeleitet, und ältere Aufgaben werden erst entfernt, wenn sie gelöscht wurden oder abgelaufen protectionEnabled sind. Je nach Timeout der CodeDeploy CloudFormation OR-Updates kann es bei der Bereitstellung zu einem Timeout kommen und die älteren Blue-Aufgaben sind möglicherweise noch vorhanden.

    • Wenn Sie dies verwenden CloudFormation, hat der Update-Stack ein Timeout von 3 Stunden. Wenn Sie also Ihren Task-Schutz auf mehr als 3 Stunden einstellen, kann Ihre CloudFormation Implementierung zu einem Ausfall und Rollback führen.

      Während der Zeit, in der Ihre alten Aufgaben geschützt sind, wird der CloudFormation Stack angezeigtUPDATE_IN_PROGRESS. Wenn der Abskalierungsschutz für Aufgaben entfernt wird oder innerhalb des 3-Stunden-Fensters abläuft, wird Ihre Bereitstellung erfolgreich sein und in den Status UPDATE_COMPLETE wechseln. Wenn die Bereitstellung länger als 3 Stunden in UPDATE_IN_PROGRESS verharrt, schlägt sie fehl, zeigt den UPDATE_FAILED-Status an und wird dann auf den alten Aufgabensatz zurückgesetzt.

    • Amazon ECS sendet Service-Ereignisse, wenn geschützte Aufgaben eine Bereitstellung (fortlaufend oder blau/grün) davon abhalten, den stabilen Zustand zu erreichen, so dass Sie Abhilfemaßnahmen ergreifen können. Wenn Sie beim Versuch, den Schutzstatus einer Aufgabe zu aktualisieren, eine DEPLOYMENT_BLOCKED-Fehlermeldung erhalten, bedeutet dies, dass der Service über mehr geschützte Aufgaben verfügt als die gewünschte Anzahl von Aufgaben für den Service. Führen Sie einen der folgenden Schritte aus, um diesen Fehler zu beheben:

      • Warten Sie, bis der aktuelle Aufgabenschutz abgelaufen ist. Stellen Sie dann den Aufgabenschutz ein.

      • Stellen Sie fest, welche Aufgaben angehalten werden können. Dann verwenden Sie UpdateTaskProtection mit der auf false festgelegten protectionEnabled-Option für diese Aufgaben.

      • Erhöhen Sie die Anzahl der gewünschten Aufgaben des Services auf mehr als die Anzahl der geschützten Aufgaben.

Für den Abskalierungsschutz für Aufgaben erforderliche IAM-Berechtigungen

Die Aufgabe muss über die Amazon ECS-Aufgabenrolle mit den folgenden Berechtigungen verfügen:

  • ecs:GetTaskProtection: Erlaubt dem Amazon-ECS-Container-Agenten GetTaskProtection aufzurufen.

  • ecs:UpdateTaskProtection: Erlaubt dem Amazon-ECS-Container-Agenten UpdateTaskProtection aufzurufen.

DatenschutzNutzungsbedingungen für die WebsiteCookie-Einstellungen
© 2025, Amazon Web Services, Inc. oder Tochtergesellschaften. Alle Rechte vorbehalten.