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.
Beenden Sie sicher Amazon ECS-Workloads, die auf EC2 Instances ausgeführt werden
Managed Instance Draining ermöglicht die ordnungsgemäße Kündigung von EC2 Amazon-Instances. Auf diese Weise können Ihre Workloads sicher angehalten und auf Instances ohne Beendigung verschoben werden. Wartung und Aktualisierung der Infrastruktur werden durchgeführt, ohne dass Sie sich Gedanken über Unterbrechungen der Workloads machen müssen. Durch die Verwendung von Managed Instance Draining vereinfachen Sie Ihre Workflows zur Infrastrukturverwaltung, die den Austausch von EC2 Amazon-Instances erfordern, und sorgen gleichzeitig für Stabilität und Verfügbarkeit Ihrer Anwendungen.
Das Managed Instance Draining von Amazon ECS funktioniert mit dem Ersatz von Amazon EC2 Auto Scaling Scaling-Gruppeninstanzen. Auf der Grundlage der Instance-Aktualisierung und der maximalen Instance-Lebensdauer können Kunden sicherstellen, dass sie die neuesten Betriebssystem- und Sicherheitsvorschriften für ihre Kapazität einhalten.
Managed Instance Draining kann nur mit Amazon-ECS-Kapazitätsanbietern verwendet werden. Sie können das Managed Instance Draining aktivieren, wenn Sie Ihre Amazon EC2 Auto Scaling Scaling-Gruppenkapazitätsanbieter mithilfe der Amazon ECS-Konsole oder des SDK erstellen oder aktualisieren. AWS CLI
Die folgenden Ereignisse werden durch Amazon ECS Managed Instance Draining abgedeckt.
-
Amazon EC2 Auto Scaling Scaling-Gruppen-Instance-Aktualisierung — Verwenden Sie Instance Refresh, um Ihre EC2 Amazon-Instances in Ihrer Amazon EC2 Auto Scaling Scaling-Gruppe fortlaufend zu ersetzen, anstatt dies manuell stapelweise durchzuführen. Diese Methode ist besonders nützlich, wenn Sie eine große Anzahl von Instances ersetzen müssen. Eine Instance-Aktualisierung wird über die EC2 Amazon-Konsole oder die
StartInstanceRefreshAPI initiiert. Wenn Sie den verwalteten Beendigungsschutz verwenden, stellen Sie sicher, dassReplacefür den Abskalierungsschutz auswählen, wenn SieStartInstanceRefreshaufrufen. -
Maximale Instance-Lebensdauer — Sie können eine maximale Lebensdauer definieren, wenn es darum geht, Amazon EC2 Auto Scaling Scaling-Gruppeninstanzen zu ersetzen. Dies ist hilfreich für die Planung von Ersatz-Instances auf der Grundlage interner Sicherheitsrichtlinien oder der Compliance.
-
Amazon EC2 Auto Scaling-Gruppe — Basierend auf Skalierungsrichtlinien und geplanten Skalierungsaktionen unterstützt die Amazon EC2 Auto Scaling Scaling-Gruppe die Auto Scaling von Instances. Durch die Verwendung einer Amazon EC2 Auto Scaling Scaling-Gruppe als Amazon ECS-Kapazitätsanbieter können Sie Amazon EC2 Auto Scaling-Gruppeninstanzen skalieren, wenn in ihnen keine Aufgaben ausgeführt werden.
-
Zustandsprüfungen für Amazon EC2 Auto Scaling Scaling-Gruppen — Die Amazon EC2 Auto Scaling Scaling-Gruppe unterstützt viele Zustandsprüfungen, um die Kündigung fehlerhafter Instances zu verwalten.
-
CloudFormation Stack-Updates — Sie können Ihrem CloudFormation Stack ein
UpdatePolicyAttribut hinzufügen, um fortlaufende Aktualisierungen durchzuführen, wenn sich die Gruppe ändert. -
Neuausrichtung der Spot-Kapazität — Die Amazon EC2 Auto Scaling Scaling-Gruppe versucht, Spot-Instances, bei denen ein höheres Ausfallrisiko besteht, proaktiv zu ersetzen, basierend auf der Mitteilung von Amazon EC2 Capacity Rebalancing. Die Amazon EC2 Auto Scaling Scaling-Gruppe beendet die alte Instance, wenn die Ersatzinstanz gestartet und funktionsfähig ist. Mit Amazon ECS Managed Instance Draining wird die Spot-Instance genauso ausgeglichen wie eine Nicht-Spot-Instance.
-
Spot-Unterbrechung – Spot Instances werden mit einer Frist von zwei Minuten beendet. Amazon ECS Managed Instance Draining versetzt die Instance daraufhin in den Ausgleichsstatus.
Lebenszyklus-Hooks von EC2 Amazon Amazon EC2 Auto Scaling mit Managed Instance Draining
Mithilfe von Amazon EC2 Auto Scaling Scaling-Gruppen-Lifecycle-Hooks können Kunden Lösungen erstellen, die durch bestimmte Ereignisse im Instance-Lebenszyklus ausgelöst werden, und eine benutzerdefinierte Aktion ausführen, wenn dieses bestimmte Ereignis eintritt. Eine Amazon EC2 Auto Scaling Scaling-Gruppe ermöglicht bis zu 50 Hooks. Es können mehrere Terminierungs-Hooks existieren, die parallel ausgeführt werden, und die Amazon EC2 Auto Scaling Scaling-Gruppe wartet, bis alle Hooks abgeschlossen sind, bevor sie eine Instance beenden.
Neben der von Amazon ECS managed Hook-Beendigung können Sie auch Ihre eigenen Lebenszyklus-Beendigungs-Hooks konfigurieren. Lebenszyklus-Hooks haben eine default action, und wir empfehlen, continue als Standard festzulegen, um sicherzustellen, dass andere Hooks, wie der von Amazon ECS Managed Hook, nicht von Fehlern durch benutzerdefinierte Hooks beeinträchtigt werden.
Wenn Sie bereits einen Lifecycle-Hook zur Gruppenbeendigung von Amazon EC2 Auto Scaling konfiguriert und auch das Amazon ECS-verwaltete Instance-Draining aktiviert haben, werden beide Lifecycle-Hooks ausgeführt. Die jeweiligen Zeitpunkte können jedoch nicht garantiert werden. Lebenszyklus-Hooks haben eine default action-Einstellung, mit der festgelegt wird, welche Aktion ausgeführt werden soll, wenn das Timeout abgelaufen ist. Im Falle von Fehlern empfehlen wir, continue als Standardergebnis in Ihrem benutzerdefinierten Hook zu verwenden. Dadurch wird sichergestellt, dass andere Hooks, insbesondere die von Amazon ECS Managed Hooks, nicht durch Fehler in Ihrem benutzerdefinierten Lebenszyklus-Hook beeinträchtigt werden. Das alternative Ergebnis von abandon führt dazu, dass alle anderen Hooks übersprungen werden und vermieden werden sollten. Weitere Informationen zu Amazon EC2 Auto Scaling Scaling-Gruppen-Lifecycle-Hooks finden Sie unter Amazon EC2 Amazon EC2 Auto Scaling Scaling-Lifecycle-Hooks im Amazon EC2 Amazon EC2 Auto Scaling Scaling-Benutzerhandbuch.
Entlastung von Aufgaben und verwalteten Instances
Amazon ECS Managed Instance Draining verwendet das vorhandene Entlastungs-Feature, das in Container-Instances zu finden ist. Das Feature zur Entlastung von Container-Instances führt den Austausch durch und stoppt bei Replikataufgaben, die zu einem Amazon-ECS-Service gehören. Eine eigenständige Aufgabe, z. B. eine von RunTask aufgerufene, die sich im Status PENDING oder RUNNING befindet, bleibt davon unberührt. Sie müssen entweder warten, bis diese abgeschlossen sind, oder sie manuell anhalten. Die Container-Instance bleibt so lange im DRAINING-Status, bis entweder alle Aufgaben gestoppt wurden oder 48 Stunden vergangen sind. Daemon-Aufgaben werden als letzte beendet, nachdem alle Replikataufgaben gestoppt wurden.
Managed Instance Draining und verwalteter Beendigungsschutz
Managed Instance Draining funktioniert auch dann, wenn die verwaltete Beendigung deaktiviert ist. Weitere Informationen zum verwalteten Beendigungsschutz finden Sie unter Die Instances steuern, die Amazon ECS beendet.
In der folgenden Tabelle ist das Verhalten der verschiedenen Kombinationen aus verwalteter Beendigung und verwalteter Entlastung zusammengefasst.
| Verwaltete Beendigung | Verwaltete Entlastung | Ergebnis |
|---|---|---|
|
Aktiviert |
Aktiviert | Amazon ECS schützt EC2 Amazon-Instances, auf denen Aufgaben ausgeführt werden, davor, durch Scale-In-Ereignisse beendet zu werden. Alle Instances, die beendet werden, z. B. solche, für die kein Beendigungsschutz aktiviert ist, bei denen Spot-Unterbrechungen aufgetreten sind oder die durch eine Instance-Aktualisierung erzwungen wurden, werden ordnungsgemäß ausgeglichen. |
|
Disabled |
Aktiviert | Amazon ECS schützt EC2 Amazon-Instances, die Aufgaben ausführen, nicht vor Skalierung. Alle Instances, die beendet werden, werden jedoch ordnungsgemäß ausgeglichen. |
|
Enabled |
Disabled | Amazon ECS schützt EC2 Amazon-Instances, auf denen Aufgaben ausgeführt werden, davor, durch Scale-In-Ereignisse beendet zu werden. Instances können jedoch immer noch durch Spot-Unterbrechungen oder erzwungene Instance-Aktualisierungen beendet werden oder wenn sie keine Aufgaben ausführen. Amazon ECS führt für diese Instances keine ordnungsgemäße Entlastung durch und startet Ersatz-Service-Aufgaben, nachdem sie beendet wurden. |
|
Disabled |
Disabled | EC2 Amazon-Instances können jederzeit skaliert oder beendet werden, auch wenn sie Amazon ECS-Aufgaben ausführen. Amazon ECS startet Ersatz-Service-Aufgaben, nachdem sie beendet wurden. |
Entlastung verwalteter Instances und Entlastung von Spot Instances
Mit Spot Instance Draining können Sie eine Umgebungsvariable ECS_ENABLE_SPOT_INSTANCE_DRAINING auf dem Amazon-ECS-Agenten einrichten, die es Amazon ECS ermöglicht, eine Instance als Reaktion auf die zweiminütige Spot-Unterbrechung in den Entlastungsstatus zu versetzen. Das Managed Instance Draining von Amazon ECS ermöglicht das reibungslose Herunterfahren von EC2 Amazon-Instances, die aus vielen Gründen beendet werden, nicht nur wegen Spot-Unterbrechungen. Sie können beispielsweise Amazon EC2 Amazon EC2 Auto Scaling Capacity Rebalancing verwenden, um Spot-Instances mit erhöhtem Unterbrechungsrisiko proaktiv zu ersetzen, und das Managed Instance Draining führt dazu, dass die zu ersetzende Spot-Instance ordnungsgemäß heruntergefahren wird. Wenn Sie Managed Instance Draining verwenden, müssen Sie Spot-Instance Draining nicht separat aktivieren, sodass ECS_ENABLE_SPOT_INSTANCE_DRAINING in Amazon EC2 Auto Scaling Gruppenbenutzerdaten redundant sind. Weitere Informationen zur Entlastung von Spot Instances finden Sie unter Spot Instances.
So funktioniert das Managed Instance Draining mit EventBridge
Von Amazon ECS verwaltete Instance-Draining-Ereignisse werden auf Amazon veröffentlicht EventBridge, und Amazon ECS erstellt eine EventBridge verwaltete Regel im Standardbus Ihres Kontos, um das Managed Instance Draining zu unterstützen. Sie können diese Ereignisse zur Überwachung und Fehlerbehebung nach anderen AWS Diensten wie Lambda, Amazon SNS und Amazon SQS filtern.
-
Amazon EC2 Amazon EC2 Auto Scaling sendet ein Ereignis, EventBridge wenn ein Lifecycle-Hook aufgerufen wird.
-
Hinweise zu punktuellen Unterbrechungen werden unter veröffentlicht. EventBridge
-
Amazon ECS generiert Fehlermeldungen, die Sie über die Amazon ECS-Konsole und abrufen können APIs.
-
EventBridge verfügt über integrierte Wiederholungsmechanismen, um vorübergehende Ausfälle zu vermeiden.
Fehlerbehebung bei Amazon ECS Managed Instance Draining
Möglicherweise müssen Sie Probleme mit Managed Instance Draining beheben. Im Folgenden finden Sie ein Beispiel für die Lösung eines Problems, auf das Sie bei der Verwendung stoßen können.
Bei Verwendung von Auto Scaling werden Instances nicht beendet, wenn sie die maximale Instance-Lebensdauer überschritten haben.
Wenn Sie eine Auto-Scaling-Gruppe verwenden und Instances nicht beendet werden, auch nachdem sie die maximalen Instance-Lebensdauer erreicht bzw. überschritten haben, kann das daran liegen, dass sie vor Abskalierung geschützt sind. Sie können die verwaltete Beendigung deaktivieren und die verwaltete Entlastung erlauben, das Instance-Recycling zu übernehmen.
Entlastungsverhalten für Amazon ECS Managed Instances
Amazon ECS Managed Instances implementiert ausgeklügelte Entlastungs- und Beendigungsprozesse, die ordnungsgemäße Workload-Übergänge gewährleisten und gleichzeitig die Kosten optimieren und den Systemzustand aufrechterhalten. Das Beendigungssystem bietet drei unterschiedliche Entscheidungspfade für die Beendigung von Instances, die jeweils unterschiedliche zeitliche Merkmale und Kundenauswirkungsprofile aufweisen.
Entscheidungspfade zur Beendigung
Alle Terminierungspfade laufen über den Lifecycle-Hook POST_DEREGISTER auf demselben Ausführungsmechanismus zusammen, der die Node ReleaseNode Manager-API für die sofortige Kündigung der Amazon-Instance auslöst. EC2
- Vom Kunden initiierte Beendigung
-
Bietet direkte Kontrolle über das Entfernen von Instances, wenn Sie Container-Instances sofort außer Betrieb nehmen müssen. Sie rufen die DeregisterContainerInstance API auf, wobei das Force-Flag auf true gesetzt ist, was darauf hinweist, dass trotz laufender Workloads eine sofortige Kündigung erforderlich ist.
- Vom System initiierte Beendigung im Leerlauf
-
Implementiert Kostenoptimierung durch intelligente Leerlauferkennung, die Instances identifiziert, die Workloads nicht mehr bedienen. Der Elastic Workload Service (EWS) implementiert ausgefeilte Algorithmen zur Erkennung von Leerlaufzeiten, die die Instance-Auslastung überwachen und die Beendigung von Instances einleiten, die für konfigurierbare Zeiträume inaktiv bleiben.
- Beendigung der Aktualisierung der Infrastruktur
-
Implementiert eine proaktive Infrastrukturverwaltung mithilfe der Natural-Decay-Richtlinie von Node Manager, bei der Instances regelmäßig aktualisiert werden, um sicherzustellen, dass sie auf den neuesten Plattformversionen laufen und der Sicherheitsstatus gewahrt bleibt. Node Manager implementiert time-to-live (TTL) -Richtlinien, die eine ordentliche Kündigung für Instances einleiten, die ihre maximale Betriebsdauer erreicht haben.
Ordnungsgemäße Entlastung und Workload-Migration
Das ordnungsgemäße Entlastungssystem sorgt für eine ausgeklügelte Abstimmung mit dem Amazon-ECS-Servicemanagement, um sicherzustellen, dass serviceverwaltete Aufgaben ordnungsgemäß von den Instances entfernt werden, für die eine Beendigung geplant ist.
Koordination der Entlastung von Serviceaufgaben
Wenn eine Instance in den Status DRAINING übergeht, stoppt der Amazon ECS Scheduler automatisch das Platzieren neuer Aufgaben auf der Instance und implementiert gleichzeitig Verfahren zum ordnungsgemäßen Herunterfahren vorhandener Serviceaufgaben. Die Entlastung der Serviceaufgaben umfasst die Koordination mit den Strategien zur Servicebereitstellung, den Anforderungen an die Zustandsprüfungen und Ihren Präferenzen für den Ausgleich, um einen optimalen Zeitpunkt und optimale Erfolgsquoten für die Migration zu gewährleisten.
Eigenständige Bearbeitung von Aufgaben
Eigenständige Aufgaben müssen unterschiedlich bearbeitet werden, da sie nicht vom automatischen Servicemanagement profitieren. Das System bewertet Merkmale eigenständiger Aufgaben, einschließlich Schätzungen der Aufgabendauer, Analysen der Abschlusswahrscheinlichkeit und Bewertung der Auswirkungen auf den Kunden. Die Strategie des ordnungsgemäßen Abschlusses ermöglicht die automatische Ausführung eigenständiger Aufgaben innerhalb eines längeren Übergangszeitraums. Gleichzeitig stellt die erzwungene Beendigung sicher, dass die Infrastruktur innerhalb akzeptabler Zeiträume aktualisiert wird, wenn Aufgaben nicht automatisch abgeschlossen wurden.
Zweiphasige Abschlussstrategie
Das Beendingungssystem verfolgt einen zweiphasigen Ansatz, bei dem die Workload-Kontinuität mit den Anforderungen an die Infrastrukturverwaltung in Einklang gebracht wird.
Phase 1: Ordnungsgemäße Abschlusszeit
Während dieser Phase implementiert das System Strategien zur ordnungsgemäßen Entlastung, bei denen die Kontinuität der Workload an erster Stelle steht. Serviceaufgaben werden durch normale Amazon-ECS-Planungsprozesse problemlos gelöscht, eigenständige Aufgaben werden weiterhin ausgeführt und können auf natürliche Weise abgeschlossen werden, und das System überwacht, ob alle Aufgaben durch natürliche Abschlussprozesse den Status „Angehalten“ erreichen.
Phase 2: Strenge Durchsetzung von Fristen
Wenn durch einen ordnungsgemäßen Abschluss die Beendigungsziele nicht innerhalb eines akzeptablen Zeitrahmens erreicht werden, führt das System eine strikte Durchsetzung der Fristen durch. Die feste Frist wird in der Regel auf die Entlastungs-Initiierungszeit plus sieben Tage festgelegt, sodass ausreichend Zeit für einen ordnungsgemäßen Abschluss unter Wahrung der betrieblichen Anforderungen zur Verfügung steht. Die Durchsetzung umfasst den automatischen Aufruf von Verfahren zur erzwungenen Abmeldung und die sofortige Beendigung aller verbleibenden Aufgaben, unabhängig vom Abschluss-Status.
Serviceübergreifende Koordination und Statussverwaltung
Der Kündigungsprozess erfordert eine ausgeklügelte Koordination zwischen dem Cluster Management Backend Service (CMBS) und Node Manager, um sicherzustellen, dass die Abmeldung von Container-Instances und die Säuberung der EC2 Amazon-Ressourcen in der richtigen Reihenfolge erfolgen und gleichzeitig die Konsistenz gewahrt bleibt.
Ausführung des POST_DEREGISTER-Hooks
Der POST_DEREGISTER-Lebenszyklus-Hook stellt den Konvergenzpunkt dar, an dem alle drei Entscheidungspfade zur Beendigung dieselbe Bereinigungslogik ausführen. Wenn eine Container-Instance den Status DEREGISTERED erreicht, löst der POST_DEREGISTER-Hook automatisch die Node ReleaseNode Manager-API aus, um mit der Säuberung von Amazon-Ressourcen zu beginnen. EC2 Die Hook-Implementierung umfasst eine ausgeklügelte Fehlerbehandlung für verschiedene Ausfallszenarien, darunter Netzwerkverbindungsprobleme, Probleme mit der Verfügbarkeit von EC2 Amazon-Services und Koordinationsfehler zwischen Systemkomponenten.
Säuberung und Freigabe von EC2 Amazon-Ressourcen
Der Prozess zur Kündigung von EC2 Amazon-Instances beinhaltet eine umfassende Abstimmung mit den AWS Services, um sicherzustellen, dass die zugrunde liegenden Rechenressourcen ordnungsgemäß zugewiesen werden. Dazu gehören die Bereinigung der Netzwerkschnittstelle, um Ressourcenlecks zu verhindern, die Verwaltung von Datenbankdatensätzen mit umfassenden Audit Trails sowie geeignete Mechanismen zur Fehlerbehandlung und Wiederherstellung für verschiedene Ausfallszenarien.