Amazon-ECS-Services - Amazon ECS

Amazon-ECS-Services

Sie können einen Amazon-ECS-Service verwenden, um eine bestimmte Anzahl von Instances einer Aufgabendefinition gleichzeitig in einem Amazon-ECS-Cluster auszuführen und zu verwalten. Wenn eine Ihrer Aufgaben ausfällt oder anhält, startet der Amazon-ECS-Service-Scheduler eine andere Instance Ihrer Aufgabendefinition, um sie zu ersetzen. Dies trägt dazu bei, dass die von Ihnen gewünschte Anzahl von Aufgaben im Service erhalten bleibt.

Sie können Ihren Service optional auch hinter einem Load Balancer ausführen. Der Load Balancer verteilt den Datenverkehr über die mit dem Service verbundenen Aufgaben.

Service-Scheduler-Konzepte

Wir empfehlen die Verwendung des Service-Schedulers 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 ausfällt, plant der Service-Scheduler eine Aufgabe neu ein. Sie können Strategien zur Aufgabenplatzierung und Einschränkungen verwenden, um die Platzierung und Beendigung von Aufgaben durch den Scheduler anzupassen. Wenn eine Aufgabe in einem Service gestoppt wird, startet der Scheduler eine neue Aufgabe, die diese ersetzt. Dieser Vorgang wird so lange fortgesetzt, bis Ihr Service die gewünschte Anzahl von Aufgaben erreicht hat, basierend auf der Planungsstrategie, die der Service verwendet. Die Planungsstrategie des Services wird auch als Servicetyp bezeichnet.

Der Service-Scheduler enthält eine Logik, die die Häufigkeit des Neustarts von Aufgaben drosselt, wenn Aufgaben wiederholt nicht gestartet werden. Wenn eine Aufgabe gestoppt wird, ohne dass sie in einen RUNNING-Status eingetreten ist, beginnt der Service-Scheduler, die Startversuche zu verlangsamen, und sendet eine Service-Ereignismeldung aus. Dieses Verhalten verhindert, dass unnötige Ressourcen für fehlgeschlagene Aufgaben verwendet werden, bevor Sie das Problem beheben können. Nachdem der Service aktualisiert wurde, nimmt der Service-Scheduler sein normales Planungsverhalten wieder auf. Weitere Informationen finden Sie unter Service-Drosselungslogik und Service-Ereignismeldungen.

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.

Replikat

Die Planungsstrategie replica platziert und bewahrt die gewünschte Anzahl von Aufgaben in Ihrem Cluster.

Wenn der Service-Scheduler für einen Service, der Aufgaben auf Fargate ausführt, neue Aufgaben startet oder die Ausführung von Aufgaben stoppt, versucht der Service-Scheduler, ein Gleichgewicht zwischen den Availability Zones aufrechtzuerhalten. Sie müssen keine Aufgabenplatzierungsstrategien oder Einschränkungen angeben.

Zusätzliche Service-Konzepte

  • Sie können Ihren Service optional auch hinter einem Load Balancer ausführen. Weitere Informationen finden Sie unter Service-Load Balancing.

  • Sie können optional eine Bereitstellungskonfiguration für Ihren Service festlegen. Eine Bereitstellung wird durch Aktualisierung der Aufgabendefinition oder der gewünschten Zahl eines Services ausgelöst. Während einer Bereitstellung verwendet der Service Scheduler die Parameter mindestens fehlerfreie Prozentsatz und maximaler Prozentsatz, um die Bereitstellungsstrategie zu ermitteln. Weitere Informationen finden Sie unter Servicedefinitionsparameter.

  • Sie können Ihren Service optional so konfigurieren, dass er Amazon ECS-Service Discovery verwendet. Die Service-Discovery verwendet die AWS Cloud Map-Auto-Namen-APIs, um DNS-Einträge für die Aufgaben Ihres Services zu verwalten. Dadurch sind sie in Ihrer VPC auffindbar. Weitere Informationen finden Sie unter Service Discovery.

  • Wenn Sie einen Service löschen und noch Aufgaben ausgeführt werden, die eine Bereinigung erfordern, wechselt der Service von einem ACTIVE- in einen DRAINING-Status, und der Service ist nicht mehr in der Konsole oder in der ListServices-API-Operation sichtbar. Nachdem alle Aufgaben entweder in den STOPPING- oder STOPPED-Status übergegangen ist, ändert sich der Servicestatus von DRAINING zu INACTIVE. Sie können Services im DRAINING- oder INACTIVE-Status anzeigen, indem Sie den API-Vorgang DescribeServices verwenden. In Zukunft werden jedoch INACTIVE-Services möglicherweise bereinigt und von der Amazon-ECS-Datensatzverwaltung gelöscht. DescribeService-Aufrufe für diese Services geben dann einen ServiceNotFoundException-Fehler zurück.