Amazon ECS-Cluster für den Starttyp Fargate - 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.

Amazon ECS-Cluster für den Starttyp Fargate

Amazon-ECS-Kapazitätsanbieter verwalten die Skalierung der Infrastruktur für Aufgaben in Ihren Clustern. Jeder Cluster kann über einen oder mehrere Kapazitätsanbieter und eine optionale Kapazitätsanbieter-Standardstrategie verfügen. Die Kapazitätsanbieterstrategie legt fest, wie die Aufgaben über die Kapazitätsanbieter eines Clusters verteilt werden. Wenn Sie eine eigenständige Aufgabe ausführen oder einen Service erstellen, können Sie entweder die Kapazitätsanbieter-Standardstrategie des Clusters verwenden oder eine Strategie für Kapazitätsanbieter angeben, die die Standardstrategie überschreibt.

Wenn Sie Ihre Aufgaben am ausführen AWS Fargate, müssen Sie die Kapazität nicht erstellen oder verwalten. Sie müssen dem Cluster lediglich einen der folgenden vordefinierten Kapazitätsanbieter zuordnen:

  • Fargate

  • Fargate Spot

Mit Amazon ECS on AWS Fargate Capacity Providers können Sie sowohl Fargate- als auch Fargate Spot-Kapazitäten für Ihre Amazon ECS-Aufgaben nutzen.

Mit Fargate Spot können Sie unterbrechungstolerante Amazon-ECS-Aufgaben zu einer im Vergleich zum Fargate-Preis ermäßigten Gebühr ausführen. Fargate Spot führt Aufgaben über freie Rechenkapazität aus. Wenn die Kapazität wieder AWS benötigt wird, werden Ihre Aufgaben mit einer zweiminütigen Warnung unterbrochen. Fargate Spot unterstützt nur Linux-Aufgaben mit der X86_64-Architektur auf Plattformversion 1.3.0 oder höher.

Wenn Aufgaben, die die Kapazitätsanbieter Fargate und Fargate Spot verwenden, gestoppt werden, wird das Ereignis zur Änderung des Aufgabenstatus an Amazon gesendet. EventBridge Der Grund für das Anhalten gibt eine Beschreibung der Ursache an. Weitere Informationen finden Sie unter Ereignisse zur Änderung des Amazon ECS-Aufgabenstatus.

Ein Cluster kann eine Mischung aus Fargate- und Auto-Scaling-Gruppen-Kapazitätsanbietern enthalten. Eine Kapazitätsanbieter-Strategie kann jedoch nur entweder Fargate- oder Auto-Scaling-Gruppen-Kapazitätsanbieter enthalten, aber nicht beide. Weitere Informationen finden Sie unter Auto Scaling Group Capacity Providers.

Berücksichtigen Sie bei der Verwendung von Kapazitätsanbietern die folgenden Punkte:

  • Sie müssen einem Cluster einen Kapazitätsanbieter zuordnen, bevor Sie ihn der Kapazitätsanbieterstrategie zuordnen können.

  • Sie können maximal 20 Kapazitätsanbieter für eine Kapazitätsanbieterstrategie angeben.

  • Sie können einen Service, der einen Kapazitätsanbieter einer Auto-Scaling-Gruppe verwendet, nicht aktualisieren, um einen Fargate-Kapazitätsanbieter zu verwenden. Das Gegenteil ist der Fall.

  • Wenn in einer Kapazitätsanbieter-Strategie kein weight-Wert für einen Kapazitätsanbieter in der Konsole angegeben ist, wird der Standardwert von 1 verwendet. Wenn Sie die API oder verwenden AWS CLI, 0 wird der Standardwert von verwendet.

  • Wenn in einer Kapazitätsanbieter-Strategie mehrere Kapazitätsanbieter angegeben sind, muss mindestens einer der Kapazitätsanbieter eine Gewichtung haben, die größer ist als Null. Kapazitätsanbieter mit einer Gewichtung von Null werden nicht für die Vergabe von Aufgaben verwendet. Wenn Sie in einer Strategie mehrere Kapazitätsanbieter mit derselben Gewichtung von Null angeben, schlagen alle RunTask- oder CreateService-Aktionen, die die Kapazitätsanbieter-Strategie verwenden, fehl.

  • In einer Kapazitätsanbieter-Strategie kann nur für einen Kapazitätsanbieter ein Basis-Wert festgelegt werden. Wenn kein Basiswert angegeben wird, wird der Standardwert Null verwendet.

  • Ein Cluster kann eine Mischung aus Kapazitätsanbietern für Auto-Scaling-Gruppen und Fargate-Kapazitätsanbietern enthalten. Eine Kapazitätsanbieter-Strategie kann jedoch nur Kapazitätsanbieter der Auto-Scaling-Gruppe oder Fargate enthalten, aber nicht beides.

  • Ein Cluster kann eine Mischung aus Services und eigenständigen Aufgaben enthalten, die sowohl Kapazitätsanbieter als auch Starttypen verwenden. Ein Service kann aktualisiert werden, um anstelle eines Starttyps eine Kapazitätsanbieterstrategie zu verwenden. Allerdings müssen Sie dabei eine neue Bereitstellung erzwingen.

Kündigungsmitteilungen von Fargate Spot

In Zeiten extrem hoher Nachfrage sind die Kapazitäten von Fargate Spot möglicherweise nicht verfügbar. Dies kann dazu führen, dass Fargate-Spot-Aufgaben verzögert werden. In diesem Fall versuchen die Amazon ECS-Services erneut, Aufgaben zu starten, bis die erforderliche Kapazität verfügbar ist. Fargate ersetzt Spot-Kapazität nicht durch On-Demand-Kapazität.

Wenn Aufgaben, die Fargate Spot-Kapazität verwenden, aufgrund einer Spot-Unterbrechung angehalten werden, wird zwei Minuten, bevor eine Aufgabe angehalten wird, eine Warnung gesendet. Die Warnung wird als Ereignis zur Änderung des Aufgabenstatus an Amazon EventBridge und als SIGTERM-Signal an die laufende Aufgabe gesendet. Wenn Sie Fargate Spot als Teil eines Service verwenden, empfängt der Service-Planer in diesem Szenario das Unterbrechungssignal und versucht, zusätzliche Aufgaben auf Fargate Spot zu starten, wenn Kapazität verfügbar ist. Ein Service mit nur einer Aufgabe wird unterbrochen, bis Kapazität verfügbar ist. Weitere Informationen zu einem korrekten Herunterfahren finden Sie unter Korrektes Herunterfahren mit ECS.

Um sicherzustellen, dass Ihre Container korrekt beendet werden, bevor die Aufgabe endet, können Sie Folgendes konfigurieren:

  • In der Containerdefinition, die die Aufgabe verwendet, kann ein stopTimeout-Wert von 120 Sekunden oder weniger angegeben werden. Der stopTimeout-Standardwert liegt bei 30 Sekunden. Sie können einen längeren stopTimeout-Wert angeben, um mehr Zeit zwischen dem Eingang des Ereignisses zur Änderung des Aufgabenstatus und dem Zeitpunkt, an dem der Container zwangsweise angehalten wird, zu gewinnen. Weitere Informationen finden Sie unter Container-Timeouts.

  • Das SIGTERM-Signal muss innerhalb des Containers empfangen werden, um alle Bereinigungsaktionen ausführen zu können. Wird dieses Signal nicht verarbeitet, erhält die Aufgabe nach dem konfigurierten stopTimeout ein SIGKILL-Signal, was zu Datenverlust oder -beschädigung führen kann.

Das Folgende ist ein Ausschnitt eines Ereignisses zur Änderung des Aufgabenstatus. Dieser Codeausschnitt zeigt den Anhaltegrund und den Anhaltecode für eine Fargate-Spot-Unterbrechung an.

{ "version": "0", "id": "9bcdac79-b31f-4d3d-9410-fbd727c29fab", "detail-type": "ECS Task State Change", "source": "aws.ecs", "account": "111122223333", "resources": [ "arn:aws:ecs:us-east-1:111122223333:task/b99d40b3-5176-4f71-9a52-9dbd6f1cebef" ], "detail": { "clusterArn": "arn:aws:ecs:us-east-1:111122223333:cluster/default", "createdAt": "2016-12-06T16:41:05.702Z", "desiredStatus": "STOPPED", "lastStatus": "RUNNING", "stoppedReason": "Your Spot Task was interrupted.", "stopCode": "SpotInterruption", "taskArn": "arn:aws:ecs:us-east-1:111122223333:task/b99d40b3-5176-4f71-9a52-9dbd6fEXAMPLE", ... } }

Das Folgende ist ein Ereignismuster, das verwendet wird, um eine EventBridge Regel für Ereignisse zur Änderung des Amazon ECS-Aufgabenstatus zu erstellen. Optional können Sie einen Cluster im detail-Feld angeben. Das bedeutet, dass Sie Ereignisse zur Statusänderung von Aufgaben für diesen Cluster erhalten. Weitere Informationen finden Sie unter EventBridge Regel erstellen im EventBridge Amazon-Benutzerhandbuch.

{ "source": [ "aws.ecs" ], "detail-type": [ "ECS Task State Change" ], "detail": { "clusterArn": [ "arn:aws:ecs:us-west-2:111122223333:cluster/default" ] } }