Planen von Amazon ECS-Aufgaben - Amazon ECS

Planen von Amazon ECS-Aufgaben

Amazon Elastic Container Service (Amazon ECS) ist ein Shared-State, optimistisches Gleichzeitigkeitssystem, das für Ihre Aufgaben und Container flexible Planungsmöglichkeiten bietet. Die Amazon ECS-Scheduler nutzen dieselben Clusterzustandsinformationen, die von der Amazon ECS-API bereitgestellt werden, um entsprechende Entscheidungen zur Platzierung zu treffen.

Jede Aufgabe, die den Starttyp Fargate verwendet, hat ihre eigene Isolationsgrenze und teilt die zugrunde liegenden Ressourcen nicht mit anderen Aufgaben. Zu diesen Ressourcen gehören der zugrunde liegende Kernel, die CPU-Ressourcen, Speicherressourcen und die Elastic-Network-Schnittstelle.

Amazon ECS bietet einen Service-Scheduler für lang laufende Aufgaben und Anwendungen. Es bietet auch die Möglichkeit, Aufgaben für Batchaufträge oder einzeln ausgeführte Aufgaben manuell auszuführen. Amazon ECS stellt einen zur Verfügung, wenn Aufgaben in Ihrem Cluster platziert werden. Sie können die Strategien und Einschränkungen für die Aufgabenplatzierung für ausgeführte Aufgaben angeben, die Ihren Anforderungen am besten entsprechen. Sie können z. B. angeben, ob Aufgaben über mehrere Availability Zones oder innerhalb einer einzelnen Availability Zone ausgeführt werden. Integrieren Sie Aufgaben optional mit Ihren eigenen benutzerdefinierten oder Drittanbieter-Schedulern.

Service-Scheduler

Der Service-Scheduler eignet sich für lang laufende, zustandslose Services und Anwendungen. Der Service Scheduler stellt sicher, dass die von Ihnen angegebene Einplanungsstrategie einhalten wird, und plant Aufgaben neu ein, wenn eine Aufgabe fehlschlägt. Wenn beispielsweise die zugrunde liegende Infrastruktur fehlschlägt, kann der Service-Scheduler Aufgaben neu planen.

Es gibt zwei Strategien für Service-Scheduler:

  • REPLICA: Die Replica-Einplanungsstrategie platziert und die gewünschte Anzahl von Aufgaben in Ihrem Cluster und behält sie bei. Standardmäßig verteilt der Service-Scheduler Aufgaben über Availability Zones. Mit Aufgabenplatzierungsstrategien und -bedingungen können Sie festlegen, wie Aufgaben platziert und beendet werden. Weitere Informationen finden Sie unter Replikat.

  • DAEMON: Die Daemon-Einplanungsstrategie stellt genau eine Aufgabe auf jeder aktiven Container-Instance bereit, die alle von Ihnen in Ihrem Cluster angegebenen Platzierungsbedingungen für die Aufgaben erfüllt. Der Service-Scheduler wertet die Aufgabenplatzierungsbedingungen für laufende Aufgaben aus und stoppt Aufgaben, die die Platzierungsbedingungen nicht erfüllen. Bei Verwendung dieser Strategie ist es nicht erforderlich, eine gewünschte Anzahl von Aufgaben oder eine Aufgabenplatzierungsstrategie anzugeben oder Auto Scaling-Richtlinien zu verwenden. Weitere Informationen finden Sie unter Daemon im Developerhandbuch zum Amazon Elastic Container Service.

    Anmerkung

    Fargate-Aufgaben unterstützen die DAEMON-Einplanungsstrategie nicht.

Optional stellt der Service-Scheduler auch sicher, dass Aufgaben gegen eine Elastic Load Balancing-Lastenverteilung registriert werden. Sie können Ihre Services, die vom Service-Scheduler verwaltet werden, aktualisieren. Dies kann das Bereitstellen einer neuen Aufgabendefinition oder das Ändern der Anzahl der gewünschten Aufgaben umfassen, die ausgeführt werden. Standardmäßig verteilt der Service Scheduler Aufgaben über mehrere Availability Zones. Mit Aufgabenplatzierungsstrategien und -bedingungen können Sie jedoch festlegen, wie Aufgaben platziert und beendet werden. Weitere Informationen finden Sie unter Amazon-ECS-Services.

Manuelles Ausführen von Aufgaben

Die Aktion RunTask eignet sich für Prozesse wie Stapelverarbeitung, die Aufträge durchführen und dann anhalten. Zum Beispiel können Sie einen Prozess RunTask aufrufen lassen, wenn ein Auftrag in eine Warteschlange gestellt wird. Die Aufgabe nimmt den Auftrag aus der Warteschlange, führt ihn aus und wird dann beendet. Mithilfe von RunTask können Sie der Standardstrategie zur Platzierung von Aufgaben erlauben, Aufgaben zufällig über Ihr Cluster zu verteilen. Dadurch wird die Wahrscheinlichkeit gesenkt, dass einer einzelnen Instance eine unverhältnismäßige Anzahl von Aufgaben zugewiesen wird. Alternativ können Sie RunTask verwenden, um anzupassen, wie der Scheduler mithilfe von Platzierungsstrategien und -einschränkungen Aufgaben platziert. Weitere Informationen finden Sie unter Ausführen einer eigenständigen Aufgabe und RunTask in der Amazon Elastic Container Service-API-Referenz.

Ausführen von Aufgaben auf einem cron-ähnlichen Zeitplan

Wenn in Ihrem Cluster in festgelegten Intervallen Aufgaben ausgeführt werden müssen, können Sie über die Amazon-ECS-Konsole ein EventBridge-Ereignis erstellen. Sie können Aufgaben für einen Backup-Vorgang oder einen Protokoll-Scan ausführen. Das von Ihnen erstellte EventBridge-Ereignis kann eine oder mehrere Aufgaben in Ihrem Cluster zu bestimmten Zeiten ausführen. Ihr geplantes Ereignis kann auf ein bestimmtes Intervall eingestellt werden (alle N Minuten, Stunden oder Tage ausführen). Andernfalls können Sie für eine kompliziertere Planung einen cron-Ausdruck verwenden. Weitere Informationen finden Sie unter Geplante Aufgaben.