Auto Scaling und Aufgabenplatzierung mit Amazon ECS Managed Instances - 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.

Auto Scaling und Aufgabenplatzierung mit Amazon ECS Managed Instances

Amazon ECS Managed Instances verwendet intelligente Algorithmen, um Ihre Cluster-Kapazität automatisch zu skalieren und Aufgaben effizient in Ihrer gesamten Infrastruktur zu verteilen. Wenn Sie wissen, wie diese Algorithmen funktionieren, können Sie Ihre Servicekonfigurationen optimieren und Fehler beim Platzierungsverhalten beheben.

Aufgabenplatzierungs-Algorithmus

Amazon ECS Managed Instances verwendet einen ausgeklügelten Platzierungsalgorithmus, der Verfügbarkeit, Ressourcennutzung und Netzwerkanforderungen bei der Planung von Aufgaben in Einklang bringt.

Verteilung auf Availability Zones

Standardmäßig priorisiert Amazon ECS Managed Instances die Verfügbarkeit, indem Aufgaben auf mehrere Availability Zones verteilt werden:

  • Bei Services mit mehreren Aufgaben stellt Amazon ECS Managed Instances nach Möglichkeit die Verteilung auf mindestens 3 Instances in verschiedenen Availability Zones sicher.

  • Dieses Verhalten bietet Fehlertoleranz, kann jedoch zu einer geringeren Ressourcenauslastung pro Instance führen

  • Die Verteilung auf Availability Zones hat Vorrang vor der Optimierung von Bin Packing.

Bin-Packing-Verhalten

Amazon ECS Managed Instances kann zwar Bin Packing durchführen, um die Ressourcennutzung zu maximieren, aber dieses Verhalten wird von Ihrer Netzwerkkonfiguration beeinflusst:

  • Um Bin-Packing zu erreichen, konfigurieren Sie Ihren Service so, dass er ein einzelnes Subnetz verwendet.

  • Bei Konfigurationen mit mehreren Subnetzen hat die Verteilung auf Availability Zones Vorrang vor der Ressourcendichte.

  • Beim ersten Start des Services ist das Bin-Packing wahrscheinlicher als bei Skalierungsereignissen.

Überlegungen zur ENI-Dichte

Bei Services, die den Netzwerkmodus awsvpc verwenden, berücksichtigt Amazon ECS Managed Instances bei Platzierungsentscheidungen die Dichte der Elastic-Network-Schnittstelle (ENI):

  • Für jede Aufgabe im awsvpc-Modus ist eine spezielle ENI erforderlich.

  • Instance-Typen haben unterschiedliche ENI-Grenzwerte, die sich auf die Aufgabendichte auswirken.

  • Amazon ECS Managed Instances berücksichtigt die ENI-Verfügbarkeit bei der Auswahl von Ziel-Instances

Anmerkung

Die ENI-Dichteberechnungen werden kontinuierlich verbessert, um die Platzierungsentscheidungen zu optimieren.

Entscheidungslogik für Kapazitätsanbieter

Die Kapazitätsanbieter von Amazon ECS Managed Instances treffen Skalierungs- und Platzierungsentscheidungen auf der Grundlage mehrerer Faktoren:

Ressourcenanforderungen

CPU-, Arbeitsspeicher- und Netzwerkanforderungen für ausstehende Aufgaben

Instance-Verfügbarkeit

Aktuelle Kapazität und Auslastung der vorhandenen Instances

Netzwerkeinschränkungen

Subnetzkonfiguration und ENI-Verfügbarkeit

Verteilung von Availability Zones

Aufrechterhaltung der Fehlertoleranz über mehrere Availability Zones hinweg

Konfigurationsoptionen

Strategie zur Auswahl von Subnetzen

Ihre Subnetzkonfiguration wirkt sich erheblich auf das Verhalten bei der Aufgabenplatzierung aus:

Mehrere Subnetze (Standard)

Priorisiert die Verteilung auf Availability Zones für hohe Verfügbarkeit

Kann zu einer geringeren Ressourcennutzung pro Instance führen

Empfohlen für Produktions-Workloads, die Fehlertoleranz erfordern

Einzelnes Subnetz

Ermöglicht Bin-Packing für eine höhere Ressourcenauslastung

Reduziert die Fehlertoleranz, indem Aufgaben auf eine Availability Zone konzentriert werden

Geeignet für Entwicklungs- oder kostenoptimierte Workloads

Überlegungen zum Netzwerkmodus

Der von Ihnen gewählte Netzwerkmodus wirkt sich auf die Platzierungsentscheidungen aus:

  • awsvpc-Modus – Für jede Aufgabe ist eine eigene ENI erforderlich, wodurch die Aufgabendichte pro Instance begrenzt wird

  • host-Modus – Aufgaben nutzen das Netzwerk des Hosts direkt, wobei die Platzierung in erster Linie von der Ressourcenverfügbarkeit abhängt

Überlegungen zur CPU-Architektur

Die cpuArchitecture Angaben, die Sie in Ihrer Aufgabendefinition angeben, werden verwendet, um Aufgaben auf einer bestimmten Architektur zu platzieren. Wenn Sie kein angeben, versucht Amazon ECScpuArchitecture, Aufgaben auf jeder verfügbaren CPU-Architektur zu platzieren, die auf der Konfiguration des Kapazitätsanbieters basiert. Sie können entweder X86_64 oder ARM64 angeben.

Fehlerbehebung bei der Aufgabenplatzierung

Gängige Platzierungsmuster

Wenn Sie die zu erwartenden Platzierungsmuster verstehen, können Sie normales Verhalten von potenziellen Problemen unterscheiden:

Verteilung

Auf mehrere Instances verteilte Aufgaben mit teilweiser Auslastung

Normales Verhalten bei der Verwendung mehrerer Subnetze

Zeigt an, dass der Verfügbarkeit Vorrang vor der Ressourceneffizienz eingeräumt wird

Konzentrierte Platzierung

Mehrere Aufgaben werden auf weniger Instances mit höherer Auslastung verteilt

Wird erwartet, wenn eine Konfiguration mit einem einzigen Subnetz verwendet wird

Kann beim ersten Start des Services auftreten

Ungleiche Verteilung

Einige Instances werden stark ausgelastet, während andere nach wie vor zu wenig genutzt werden

Kann auf ENI-Limits oder Ressourcenbeschränkungen hinweisen

Erwägen Sie, die Instance-Typen und die Netzwerkkonfiguration zu überprüfen

Optimierung des Platzierungsverhaltens

So optimieren Sie die Aufgabenplatzierung für Ihre spezifischen Anforderungen:

  1. Bewerten Sie Ihre Verfügbarkeitsanforderungen im Vergleich zu Ihren Anforderungen an die Kostenoptimierung.

  2. Wählen Sie die passende Subnetzkonfiguration auf der Grundlage Ihrer Prioritäten.

  3. Wählen Sie Instance-Typen mit ausreichender ENI-Kapazität für Ihren Netzwerkmodus.

  4. Überwachen Sie die Platzierungsmuster und passen Sie die Konfiguration nach Bedarf an.

Best Practices

  • Für Produktions-Workloads – Verwenden Sie mehrere Subnetze in verschiedenen Availability Zones, um eine hohe Verfügbarkeit zu gewährleisten und nehmen Sie dabei Kompromisse bei der Ressourcennutzung in Kauf.

  • Für Entwicklung oder Tests – Ziehen Sie eine Konfiguration mit einem einzigen Subnetz in Betracht, um die Ressourcennutzung zu maximieren und den Preis zu senken.

  • Für den awsvpc-Modus – Wählen Sie Instance-Typen mit ausreichender ENI-Kapazität, um Platzierungsbeschränkungen zu vermeiden.

  • Zur Kostenoptimierung – Überwachen Sie die Nutzungsmuster und passen Sie die Servicekonfiguration an, um ein Gleichgewicht zwischen Verfügbarkeit und Effizienz zu finden.

  • Zur Fehlerbehebung – Überprüfen Sie die Subnetzkonfiguration und den Netzwerkmodus, wenn Sie unerwartete Platzierungsmuster untersuchen.