View a markdown version of this page

Bereite dich vor auf AWS Stilllegung der Fargate-Aufgabe auf Amazon ECS - 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.

Bereite dich vor auf AWS Stilllegung der Fargate-Aufgabe auf Amazon ECS

Gehen Sie wie folgt vor, um sich auf die Außerbetriebnahme von Aufgaben vorzubereiten:

  1. Legen Sie die Wartezeit für die Außerbetriebnahme von Aufgaben fest oder verwenden Sie Amazon EC2-Ereignisfenster.

  2. Erfassen Sie Benachrichtigungen zur Außerbetriebnahme von Aufgaben, um Teammitglieder zu benachrichtigen.

  3. Sie können sicherstellen, dass alle Aufgaben Ihrer Services auf der neuesten Plattformversion ausgeführt werden, indem Sie den Service mit der Option Force-Deployment aktualisieren. Dieser Schritt ist optional.

Schritt 1: Legen Sie die Wartezeit für Aufgaben fest oder verwenden Sie Amazon EC2-Ereignisfenster

Sie haben zwei Optionen für Kontoeinstellungen, um den Zeitpunkt zu konfigurieren, zu dem Fargate mit der Einstellung von Aufgaben beginnt: und. fargateTaskRetirementWaitPeriod fargateEventWindows

Verwenden der Fargate-Kontoeinstellungen TaskRetirementWaitPeriod

Sie können den Zeitpunkt konfigurieren, zu dem Fargate mit der Außerbetriebnahme der Aufgabe beginnt. Die Standardwartezeit beträgt 7 Tage. Wählen Sie für Workloads, die eine sofortige Anwendung der Updates erfordern, die Einstellung „Sofort“ (0). Wenn Sie mehr Zeit benötigen, konfigurieren Sie die 7 Option oder 14 Tag.

Wir empfehlen Ihnen, eine kürzere Wartezeit zu wählen, damit Sie neuere Versionen der Plattformversionen früher erwerben können.

Konfigurieren Sie die Wartezeit, indem Sie put-account-setting-default oder put-account-setting als Root-Benutzer oder Administrator ausführen. Verwenden Sie die Option fargateTaskRetirementWaitPeriod für name und die Option value, die auf einen der folgenden Werte eingestellt ist:

  • 0- AWS sendet die Benachrichtigung und beginnt sofort, die betroffenen Aufgaben zurückzuziehen.

  • 7- AWS sendet die Benachrichtigung und wartet 7 Kalendertage, bevor mit der Stilllegung der betroffenen Aufgaben begonnen wird. Das ist die Standardeinstellung.

  • 14 – AWS sendet die Benachrichtigung und wartet 14 Kalendertage, bevor mit der Außerbetriebnahme der betroffenen Aufgaben begonnen wird.

Weitere Informationen finden Sie unter put-account-setting-default und put-account-setting in der Referenz zu Amazon Elastic Container Service API.

Verwenden Sie die EventWindows Fargate-Kontoeinstellung

Ab 12/18 /2025 können Sie mit Amazon ECS Amazon EC2-Ereignisfenster für Ihre Fargate-Aufgaben konfigurieren. Wenn Sie eine genaue Kontrolle über den genauen Zeitpunkt der Aussetzung von Aufgaben benötigen, indem Sie sie beispielsweise über Wochenenden planen, um Unterbrechungen während der Geschäftszeiten zu vermeiden, können Sie Amazon EC2-Ereignisfenster für Ihre Aufgaben, Dienste oder Cluster konfigurieren.

Wenn Sie Ereignisfenster verwenden, stellt Fargate sicher, dass Ihre Aufgaben mindestens 3 Tage lang ausgeführt werden, bevor sie innerhalb des nächsten verfügbaren Zeitfensters eingestellt werden, sofern sie nicht durch vom Benutzer initiierte Aktionen oder kritische Integritätsereignisse wie z. B. eine Verschlechterung der zugrunde liegenden Hardware gestoppt werden.

Stellen Sie die Kontoeinstellung fargateEventWindows auf enabled ein. Sie können eine der folgenden APIs verwenden: put-account-setting-default oder put-account-setting als Root-Benutzer oder Administratorbenutzer.

Jedes Amazon EC2-Ereignisfenster muss mindestens 4 Stunden pro Woche geöffnet sein, und jeder Zeitraum muss mindestens 2 Stunden lang sein. Für große Cluster und Services empfehlen wir, Ereignisfenster mit einer langen Dauer (8 Stunden oder mehr) oder mit häufigeren Zeiträumen zu konfigurieren, die mindestens einmal alle 3 Tage auftreten. Weitere Überlegungen zu Amazon EC2-Ereignisfenstern finden Sie im Benutzerhandbuch. Stellen Sie AWS Fargate sicher, dass Ihre Aufgaben mindestens 3 Tage lang ausgeführt werden, bevor sie eingestellt werden, sofern sie nicht durch vom Benutzer initiierte Aktionen oder kritische Integritätsereignisse wie eine Verschlechterung der zugrunde liegenden Hardware gestoppt werden.

Wichtig

Das Ersetzen von Aufgaben innerhalb des Eventfensters erfolgt nach bestem Wissen und Gewissen. Wenn Sie feststellen, dass Aufgaben außerhalb Ihres Veranstaltungsfensters eingestellt werden, sollten Sie erwägen, die Dauer (8 Stunden oder mehr) zu verlängern oder die Häufigkeit zu erhöhen (mindestens einmal alle 3 Tage).

Gehen Sie wie folgt vor, um Amazon EC2-Eventfenster auf die Einstellung Ihrer Fargate-Aufgaben anzuwenden:

  • Stellen Sie die Kontoeinstellung fargateEventWindows auf enabled ein. Sie können eine der folgenden APIs verwenden: put-account-setting-default oder put-account-setting als Root-Benutzer oder Administratorbenutzer. Beachten Sie, dass dies eine einmalige Aktivierung für die Nutzung der Amazon EC2-Eventfenster-Funktion für Ihre Fargate-Aufgaben ist.

  • Erstellen Sie ein Amazon EC2-Ereignisfenster über die AWS-Konsole oder die AWS-CLI. Um ein Ereignisfenster mithilfe der CLI zu erstellen, verwenden Sie die create-instance-event-window EC2-API mit Zeitbereichen oder Cron-Ausdrücken. Notieren Sie sich den Text InstanceEventWindowId aus der Antwort.

    aws ec2 create-instance-event-window \ --time-range StartWeekDay=monday,StartHour=2,EndWeekDay=wednesday,EndHour=8 \ --tag-specifications "ResourceType=instance-event-window,Tags=[{Key=K1,Value=V1" \ --name myEventWindowName

    Alternativ können Sie beim Erstellen von EC2-Ereignisfenstern Cron-Ausdrücke verwenden.

    aws ec2 create-instance-event-window \ --cron-expression "* 21-23 * * 2,3" \ --tag-specifications "ResourceType=instance-event-window,Tags=[{Key=K1,Value=V1" \ --name myEventWindowName
  • Anschließend können Sie das Eventfenster mithilfe der associate-instance-event-window EC2-API bestimmten Diensten, Clustern oder allen Aufgaben in Ihrem Konto zuordnen.

    • Für ECS-Serviceaufgaben

      aws ec2 associate-instance-event-window \ --instance-event-window-id iew-0abcdef1234567890 \ --association-target "InstanceTags=[{Key=aws:ecs:serviceArn,Value=your-service-arn}]"
    • Für ECS-Cluster

      aws ec2 associate-instance-event-window \ --instance-event-window-id iew-0abcdef1234567890 \ --association-target "InstanceTags=[{Key=aws:ecs:clusterArn,Value=your-cluster-arn}]"
    • Um ein Ereignisfenster mit allen Aufgaben im Konto zu verknüpfen

      aws ec2 associate-instance-event-window \ --instance-event-window-id iew-0abcdef1234567890 \ --association-target "InstanceTags=[{Key=aws:ecs:fargateTask,Value=true}]"

Sie können mehr als ein Schlüssel-Wert-Paar verwenden, um ein Eventfenster mehreren Diensten oder Clustern zuzuordnen.

Fargate wählt das Eventfenster für jede Aufgabe in der folgenden Reihenfolge aus:

  • Wenn dem Dienst der Aufgabe ein Ereignisfenster zugeordnet ist, wird es verwendet. Dies gilt nicht für eigenständige oder nicht verwaltete Aufgaben.

  • Wenn dem Cluster der Aufgabe ein Ereignisfenster zugeordnet ist, wird es verwendet.

  • Wenn für alle Fargate-Aufgaben ein Eventfenster eingerichtet ist, wird es verwendet.

  • Die fargateTaskRetirementWaitPeriod Einstellung wird verwendet, wenn keines der Eventfenster mit der Aufgabe übereinstimmt.

Konfiguration von Ereignisfenstern für die Wartung von Fargate-Aufgaben

Stellen Sie sich einen Fall vor, in dem Sie mehrere ECS-Dienste mit unterschiedlichen Verfügbarkeitsanforderungen auf Fargate ausführen. Sie möchten eine präzise Kontrolle über die Stilllegung von Aufgaben haben. Sie können mehrere Eventfenster wie folgt konfigurieren:

  • Standardwartung für alle Fargate-Aufgaben: Erstellen Sie ein Ereignisfenster für routinemäßige Wartungsarbeiten außerhalb der Spitzenzeiten (täglich von 12 bis 4 Uhr) und verknüpfen Sie es mithilfe des Tags mit allen Fargate-Aufgaben. aws:ecs:fargateTask

  • Weekend-only Wartung für den Entwicklungscluster: Erstellen Sie für einen Entwicklungscluster mit Diensten, die Unterbrechungen am Wochenende tolerieren können, ein 24-Stunden-Wochenendfenster (Samstag und Sonntag, den ganzen Tag) und verknüpfen Sie es mit aws:ecs:clusterArn dem Cluster, indem Sie das Tag mit Ihrem Cluster-ARN verwenden.

  • Eingeschränktes Zeitfenster für geschäftskritische Dienste: Beschränken Sie für einen geschäftskritischen Zahlungsabwicklungsdienst, der an Wochentagen eine hohe Verfügbarkeit erfordert, die Wartung auf die frühen Morgenstunden am Wochenende (Samstag und Sonntag, 12 Uhr bis 4 Uhr) und verknüpfen Sie ihn mit dem jeweiligen Dienst, indem Sie das aws:ecs:serviceArn Tag mit Ihrem Service-ARN verwenden.

Bei dieser Konfiguration verwendet der Zahlungsdienst sein spezielles Fenster nur am Wochenende, die Dienste und Aufgaben des Entwicklungsclusters verwenden das 24-Stunden-Wochenfenster und alle anderen Fargate-Aufgaben verwenden das tägliche Standardwartungsfenster.

Weitere Informationen finden Sie unter put-account-setting-default und put-account-setting in der Referenz zu Amazon Elastic Container Service API.

Schritt 2: Erfassen Sie Benachrichtigungen über die Außerbetriebnahme von Aufgaben, um Teams zu benachrichtigen und Maßnahmen zu ergreifen

Wenn eine Aufgabe demnächst stillgelegt wird, wird eine Benachrichtigung über die Außerdienststellung der Aufgabe an das AWS Health Dashboard und an den primären E-Mail-Kontakt auf der AWS gesendet. AWS-Konto Das AWS Health Dashboard bietet eine Reihe von Integrationen in andere AWS Dienste, einschließlich Amazon EventBridge. Sie können EventBridge es verwenden, um anhand einer Benachrichtigung über die Einstellung einer Aufgabe Automatisierungen zu erstellen. So können Sie beispielsweise die Sichtbarkeit der bevorstehenden Außerbetriebnahme erhöhen, indem Sie die Nachricht an ein ChatOps Tool weiterleiten. AWS Health Aware ist eine Ressource, die zeigt, wie leistungsfähig das AWS Health Dashboard ist und wie Benachrichtigungen im gesamten Unternehmen verteilt werden können. Sie können eine Benachrichtigung über die Außerbetriebnahme einer Aufgabe an eine Chat-Anwendung wie Slack weiterleiten.

In der folgenden Abbildung ist die Lösungsübersicht dargestellt.

Diagramm, das die Fargate-Lösung zur Erfassung von Benachrichtigungen über die Außerbetriebnahme von Fargate-Aufgaben zeigt.

Die folgenden Informationen enthalten Einzelheiten.

  • Fargate sendet die Benachrichtigung über die Außerbetriebnahme der Aufgabe an das AWS Health -Dashboard.

  • Das AWS Health Dashboard sendet E-Mails an den primären E-Mail-Kontakt auf dem AWS-Konto und benachrichtigt EventBridge.

  • EventBridge hat eine Regel, die die Benachrichtigung über die Pensionierung erfasst.

    Die Regel sucht nach Ereignissen mit dem Ereignisdetails-Typ: "AWS Health Event" and the Event Detail Type Code: "AWS_ECS_TASK_PATCHING_RETIREMENT"

  • Die Regel löst eine Lambda-Funktion aus, die die Informationen mithilfe eines eingehenden Slack-Webhooks an Slack weiterleitet. Weitere Informationen finden Sie unter Eingehende Webhooks.

Ein Codebeispiel finden Sie auf Github unter Erfassung von Benachrichtigungen zur Außerdienststellung von AWS Fargate Aufgaben.

Schritt 3: Den Ersatz von Aufgaben steuern

Sie können den genauen Zeitpunkt der Außerbetriebnahme einer Aufgabe nicht kontrollieren, Sie können jedoch eine Wartezeit definieren. Wenn Sie die Kontrolle darüber haben möchten, ob Aufgaben nach Ihrem eigenen Zeitplan ersetzt werden, können Sie die Benachrichtigung über die Außerbetriebnahme einer Aufgabe erfassen, um zunächst das Datum der Außerbetriebnahme der Aufgabe zu ermitteln. Anschließend können Sie Ihren Service erneut bereitstellen, um Ersatzaufgaben zu starten und auch alle eigenständigen Aufgaben zu ersetzen. Bei Services, die eine fortlaufende Bereitstellung verwenden, aktualisieren Sie den Service mit update-service und der Option force-deployment vor Beginn der Außerbetriebnahme.

Im folgenden update-service-Beispiel wird die Option force-deployment verwendet.

aws ecs update-service —-service service_name \ --cluster cluster_name \ --force-new-deployment

Für Dienste, die das blue/green Deployment verwenden, musst du ein neues Deployment in erstellen AWS CodeDeploy. Informationen zum Erstellen der Bereitstellung finden Sie unter Bereitstellung erstellen in der Referenz für AWS Command Line Interface .