So platziert Amazon ECS Aufgaben in Container-Instances
Mithilfe der Aufgabenplatzierung können Sie Amazon ECS so konfigurieren, dass Ihre Aufgaben auf Container-Instances platziert werden, die bestimmte Kriterien erfüllen, z. B. eine Availability Zone oder einen Instance-Typ.
Folgendes sind Komponenten der Aufgabenplatzierung:
-
Aufgabenplatzierungsstrategie – Ein Algorithmus zum Auswählen von Container-Instances zur Aufgabenplatzierung oder von Aufgaben zur Beendigung. Beispielsweise kann Amazon ECS Container-Instances nach dem Zufallsprinzip auswählen oder Instances so auswählen, dass Aufgaben gleichmäßig auf eine Gruppe von Instances verteilt sind.
-
Aufgabengruppe – Eine Gruppe verwandter Aufgaben, zum Beispiel Datenbankaufgaben.
-
Beschränkung der Aufgabenplatzierung – Dies sind Regeln, die erfüllt sein müssen, um eine Aufgabe auf einer Container-Instance platzieren zu können. Wenn die Einschränkung nicht erfüllt ist, wird die Aufgabe nicht platziert und verbleibt im Status
PENDING. Sie können z. B. eine Einschränkung verwenden, um Aufgaben nur einem bestimmten Instance-Typ zuzuordnen.
Amazon ECS hat unterschiedliche Algorithmen für die verschiedenen Kapazitätsoptionen.
Amazon ECS Managed Instances
Für Aufgaben, die in Amazon ECS Managed Instances ausgeführt werden, muss Amazon ECS festlegen, wo die Aufgabe platziert werden soll und – wenn die Anzahl der Aufgaben herunterskaliert wird – welche Aufgaben beendet werden sollen. Amazon ECS trifft diese Entscheidung auf der Grundlage der Instance-Anforderungen, die in der Startvorlage für den Kapazitätsanbieter angegeben sind, der in der Aufgabendefinition angegebenen Anforderungen wie CPU und Arbeitsspeicher sowie der Einschränkungen bei der Aufgabenplatzierung.
Anmerkung
Amazon ECS Managed Instances unterstützt keine Strategien zur Aufgabenplatzierung. Amazon ECS wird sich bemühen, Aufgaben über zugängliche Availability Zones zu verteilen.
Wenn Amazon ECS Aufgaben platziert, verwendet es das folgende Verfahren zum Auswählen von Container-Instances:
-
Identifizieren der Container-Instances, die die in der Aufgabendefinition angegebenen Anforderungen an CPU, GPU, Arbeitsspeicher und Port erfüllen.
-
Identifizieren der Container-Instances, die die Einschränkungen der Aufgabenplatzierung erfüllen.
-
Identifizieren Sie die Container-Instances, die die Instance-Anforderungen erfüllen, die in der Startvorlage für den Kapazitätsanbieter angegeben sind.
-
Auswählen der Container-Instances für die Aufgabenplatzierung.
EC2
Bei Aufgaben, die den EC2-Starttyp verwenden, muss Amazon ECS anhand der in der Aufgabendefinition angegebenen Anforderungen – beispielsweise 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 Services 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. Es gibt keine Standardbeschränkung für die Aufgabenplatzierung für Aufgaben, die nicht in Services enthalten sind. Weitere Informationen finden Sie unter Planen Sie Ihre Container in 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:
-
Identifizieren der Container-Instances, die die in der Aufgabendefinition angegebenen Anforderungen an CPU, GPU, Arbeitsspeicher und Port erfüllen.
-
Identifizieren der Container-Instances, die die Einschränkungen der Aufgabenplatzierung erfüllen.
-
Identifizieren der Container-Instances, die die Aufgabenplatzierungsstrategien erfüllen.
-
Auswählen der Container-Instances für die Aufgabenplatzierung.
Fargate
Aufgabenplatzierungs-Strategien und -Beschränkungen werden für Aufgaben mit Fargate nicht unterstützt. Fargate wird sich bemühen, Aufgaben über zugängliche Availability Zones zu verteilen. Wenn der Kapazitätsanbieter sowohl Fargate als auch Fargate Spot umfasst, ist das Verteilungsverhalten für jeden Kapazitätsanbieter unabhängig.