Verwenden Sie Strategien, um die Amazon ECS-Aufgabenverteilung zu definieren - 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.

Verwenden Sie Strategien, um die Amazon ECS-Aufgabenverteilung zu definieren

Für Aufgaben, die den EC2 Starttyp verwenden, muss Amazon ECS anhand der in der Aufgabendefinition angegebenen Anforderungen, wie CPU und Arbeitsspeicher, bestimmen, wo die Aufgabe platziert werden soll. Wenn Sie die Anzahl der Aufgaben herunterskalieren, muss Amazon ECS auf ähnliche Weise bestimmen, welche Aufgaben beendet werden sollen. Mit Aufgabenplatzierungsstrategien und -bedingungen können Sie festlegen, wie Amazon ECS Aufgaben platziert und beendet.

Die Standardstrategien für die Aufgabenplatzierung hängen davon ab, ob Sie Aufgaben manuell (eigenständige Aufgaben) oder innerhalb eines Service ausführen. Für Aufgaben, die als Teil eines Amazon-ECS-Service ausgeführt werden, ist die Strategie zur Aufgabenplatzierung spread unter Verwendung von attribute:ecs.availability-zone. Für Aufgaben, die nicht in Diensten enthalten sind, gibt es keine Standardbeschränkung für die Aufgabenplatzierung. Weitere Informationen finden Sie unter Planen Sie Ihre Container auf Amazon ECS.

Anmerkung

Aufgabenplatzierungsstrategien entsprechen bestem Bemühen. Amazon ECS versucht auch dann noch, Aufgaben zu platzieren, wenn die optimale Platzierungsoption nicht verfügbar ist. Einschränkungen der Aufgabenplatzierung sind jedoch verbindlich und können eine Aufgabenplatzierung verhindern.

Sie können Aufgabenplatzierungsstrategien mit Bedingungen kombinieren. Beispielsweise können Sie eine Aufgabenplatzierungsstrategie und eine Aufgabenplatzierungsbeschränkung verwenden, um Aufgaben auf Availability Zones zu verteilen und Bin-Pack-Aufgaben basierend auf dem Arbeitsspeicher innerhalb jeder Availability Zone zu verteilen (jedoch nur für G2-Instances).

Wenn Amazon ECS Aufgaben platziert, verwendet es das folgende Verfahren zum Auswählen von Container-Instances:

  1. Identifizieren Sie die Container-Instances, die die CPU-, GPU-, Speicher- und Port-Anforderungen in der Aufgabendefinition erfüllen.

  2. Identifizieren Sie die Container-Instances, die die Einschränkungen bei der Aufgabenplatzierung erfüllen.

  3. Identifizieren Sie die Container-Instances, die die Strategien zur Aufgabenplatzierung erfüllen.

  4. Wählen Sie die Container-Instances für die Aufgabenplatzierung aus.

Sie geben Strategien zur Aufgabenplatzierung in der Servicedefinition oder der Aufgabendefinition mithilfe des placementStrategy Parameters an.

"placementStrategy": [ { "field": "The field to apply the placement strategy against", "type": "The placement strategy to use" } ]

Sie können die Strategien angeben, wenn Sie eine Aufgabe ausführen (RunTask), einen neuen Dienst erstellen (CreateService) oder einen vorhandenen Dienst aktualisieren (UpdateService).

In der folgenden Tabelle werden die verfügbaren Typen und Felder beschrieben.

Typ Gültige Feldwerte
binpack

Aufgaben werden auf Container-Instances platziert, um so wenig ungenutzten CPU- oder Arbeitsspeicherplatz wie möglich zu belassen. Diese Strategie minimiert die Anzahl der verwendeten Container-Instances.

Wenn diese Strategie verwendet wird und eine Abskalierungs-Aktion durchgeführt wird, beendet Amazon ECS Aufgaben. Es tut dies basierend auf der Menge der Ressourcen, die nach dem Beenden der Aufgabe in der Container-Instance verbleiben. Die Container-Instance, die nach der Beendigung der Aufgabe die meisten verfügbaren Ressourcen hat, veranlasst die Beendigung dieser Aufgabe.

  • cpu

  • memory

random

Aufgaben werden nach dem Zufallsprinzip platziert.

Nicht verwendet
spread

Aufgaben werden gleichmäßig basierend auf dem angegebenen Wert platziert.

Service-Aufgaben werden basierend auf den Aufgaben von diesem Service verteilt. Eigenständige Aufgaben werden basierend auf den Aufgaben derselben Aufgabengruppe verteilt. Weitere Informationen über Aufgabengruppen finden Sie unter Gruppenbezogene Amazon ECS-Aufgaben .

Wenn die spread-Strategie verwendet wird und eine Abskalierungs-Aktion durchgeführt wird, wählt Amazon ECS Aufgaben zum Beenden aus, die ein Gleichgewicht über Availability Zones aufrechterhalten. Innerhalb einer Availability Zone werden Aufgaben nach dem Zufallsprinzip ausgewählt.

  • instanceId(oderhost, was den gleichen Effekt hat)

  • jede Plattform oder jedes benutzerdefinierte Attribut, das auf eine Container-Instance angewendet wird, wie attribute:ecs.availability-zone

Die Aufgabenplatzierungsstrategien können auch für bestehende Services aktualisiert werden. Weitere Informationen finden Sie unter Wie Amazon ECS Aufgaben auf Container-Instances platziert.

Sie können eine Strategie zur Aufgabenverteilung erstellen, die mehrere Strategien verwendet, indem Sie Arrays von Strategien in der Reihenfolge erstellen, in der sie ausgeführt werden sollen. Wenn Sie beispielsweise Aufgaben auf Availability Zones und anschließend mit der Binpacks-Strategie basierend auf dem Speicher innerhalb der einzelnen Availability Zone platzieren möchten, geben Sie die Availability-Zone-Strategie gefolgt von der Speicherstrategie an. Beispielstrategien finden Sie unter Beispiele für Amazon ECS-Strategien zur Aufgabenplatzierung.