Verwenden Sie den Kapazitätsausgleich in der EC2 Flotte und der Spot-Flotte, um gefährdete Spot-Instances zu ersetzen - Amazon Elastic Compute Cloud

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 den Kapazitätsausgleich in der EC2 Flotte und der Spot-Flotte, um gefährdete Spot-Instances zu ersetzen

Mit Capacity Rebalancing kann Ihre EC2 Flotte oder Spot-Flotte die gewünschte Spot-Kapazität aufrechterhalten, indem Spot-Instances, bei denen das Risiko einer Unterbrechung besteht, proaktiv ersetzt werden. Wenn für eine Spot-Instance ein erhöhtes Risiko einer Unterbrechung besteht, EC2 sendet Amazon eine Empfehlung zur Neuverteilung. Wenn Kapazitätsneuausgleich aktiviert ist, löst die Empfehlung zur Neuverteilung den Start einer neuen Spot-Instance aus, bevor die gefährdete Instance unterbrochen wird.

Capacity Rebalancing hilft Ihnen dabei, die Workload-Verfügbarkeit aufrechtzuerhalten, indem Sie Ihre Flotte proaktiv um neue Spot-Instances erweitern, bevor laufende Instances von Amazon unterbrochen werden. EC2

Um EC2 Fleet so zu konfigurieren, dass Capacity Rebalancing verwendet wird, um eine Ersatz-Spot-Instance zu starten

Verwenden Sie den Befehl create-fleet und die entsprechenden Parameter in der Struktur. MaintenanceStrategies Eine JSON Beispielkonfiguration finden Sie unter. Beispiel 7: Konfigurieren des Kapazitätsneuausgleichs, um Ersatz-Spot-Instances zu starten

Spot-Flotte so konfigurieren, dass der Kapazitätsneuausgleich zum Starten einer neuen Spot Instance verwendet wird

Sie können die EC2 Amazon-Konsole oder die verwenden AWS CLI , um Capacity Rebalancing zu konfigurieren.

(Konsole) Aktivieren Sie bei der Erstellung der Spot-Flotte das Kontrollkästchen Kapazitätsneuausgleich. Weitere Informationen finden Sie in Schritt 6.d unter Erstellen einer Spot-Flotten-Anforderung mit definierten Parametern (Konsole).

(AWS CLI) Verwenden Sie den request-spot-fleetBefehl und die entsprechenden Parameter in der SpotMaintenanceStrategies Struktur. Eine JSON Beispielkonfiguration finden Sie unterBeispiel 8: Konfigurieren des Kapazitätsneuausgleichs, um den Ersatz Spot-Instances zu starten.

Einschränkungen

  • Die Kapazitätsanpassung ist nur für Flotten des Typs maintain verfügbar.

  • Wenn die Flotte läuft, können Sie die Kapazitätsausgleichs-Einstellung nicht ändern. Um die Einstellung Kapazitätsausgleich zu ändern, müssen Sie die Flotte löschen und eine neue Flotte erstellen.

Konfigurationsoptionen

Die EC2 Fleet ReplacementStrategy for Fleet und Spot Fleet unterstützt die folgenden beiden Werte:

launch-before-terminate

Amazon EC2 beendet die Spot-Instances, die eine Rebalance-Benachrichtigung erhalten, nachdem neue Ersatz-Spot-Instances gestartet wurden. Wenn Sie launch-before-terminate angeben, müssen Sie auch einen Wert für termination-delay angeben. Nachdem die neuen Ersatz-Instances gestartet wurden, EC2 wartet Amazon die Dauer der termination-delay Instances ab und beendet dann die alten Instances. Für termination-delay beträgt das Minimum 120 Sekunden (2 Minuten) und das Maximum 7 200 Sekunden (2 Stunden).

Wir empfehlen die Verwendung von launch-before-terminate nur, wenn Sie vorhersagen können, wie lange Ihre Verfahren zum Herunterfahren der Instances dauern werden. Dadurch wird sichergestellt, dass die alten Instances erst beendet werden, wenn die Verfahren zum Herunterfahren abgeschlossen sind. Beachten Sie, dass Amazon die alten Instanzen mit einer zweiminütigen Warnung vor dem unterbrechen EC2 kann. termination-delay

Wir raten dringend davon ab, die Zuweisungsstrategie lowest-price (EC2Fleet) oder lowestPrice (Spot-Flotte) in Kombination mit launch-before-terminate zu verwenden, um Ersatz-Spot-Instances zu vermeiden, bei denen ebenfalls ein erhöhtes Ausfallrisiko besteht.

launch

Amazon EC2 startet Ersatz-Spot-Instances, wenn für bestehende Spot-Instances eine Rebalance-Benachrichtigung ausgegeben wird. Amazon beendet die Instances, die eine Benachrichtigung über die Neuverteilung erhalten, EC2 nicht. Sie können die alten Instances beenden oder laufen lassen. Ihnen werden alle Instances in Rechnung gestellt, während sie ausgeführt werden.

Überlegungen

Wenn Sie eine EC2 Flotte oder Spot-Flotte für den Kapazitätsausgleich konfigurieren, sollten Sie Folgendes beachten:

Stellen Sie so viele Spot-Kapazitätspools wie möglich in der Anfrage bereit

Konfigurieren Sie Ihre Flotte für die Verwendung mehrerer Instance-Typen und Availability Zones. Dies bietet die Flexibilität, Spot-Instances in verschiedenen Spot-Kapazitätspools zu starten. Weitere Informationen finden Sie unter Flexibel sein bei Instance-Typen und Availability Zones.

Vermeiden Sie ein erhöhtes Risiko einer Unterbrechung von Ersatz-Spot-Instances

Um ein erhöhtes Unterbrechungsrisiko zu vermeiden, empfehlen wir die capacity-optimized- oder capacity-optimized-prioritized-Zuweisungsstrategie. Diese Strategien stellen sicher, dass Ersatz-Spot-Instances in den optimalen Spot-Kapazitätspools gestartet werden und ihre Unterbrechung in naher Zukunft daher weniger wahrscheinlich ist. Weitere Informationen finden Sie unter Nutzen der preis- und kapazitätsoptimierten Zuweisungsstrategie.

Ihre Ersatz-Spot-Instances haben möglicherweise ein erhöhtes Risiko einer Unterbrechung, wenn Sie die lowest-price-Zuweisungsstrategie verwenden. Dies liegt daran, dass Amazon Instances immer in dem Pool mit dem niedrigsten Preis EC2 startet, der zu diesem Zeitpunkt über verfügbare Kapazität verfügt, auch wenn Ihre Ersatz-Spot-Instances wahrscheinlich bald nach dem Start unterbrochen werden.

Amazon EC2 startet nur dann eine neue Instance, wenn die Verfügbarkeit gleich oder besser ist

Eines der Ziele des Kapazitätsausgleichs ist die Verbesserung der Verfügbarkeit einer Spot Instance. Wenn eine bestehende Spot-Instance eine Rebalance-Empfehlung erhält, EC2 startet Amazon nur dann eine neue Instance, wenn die neue Instance dieselbe oder eine bessere Verfügbarkeit als die bestehende Instance bietet. Wenn das Risiko einer Unterbrechung einer neuen Instance größer ist als das der bestehenden Instance, EC2 wird Amazon keine neue Instance starten. Amazon EC2 wird jedoch weiterhin die Spot-Kapazitätspools bewerten und eine neue Instance starten, wenn sich die Verfügbarkeit verbessert.

Es besteht die Möglichkeit, dass Ihre bestehende Instance unterbrochen wird, ohne dass Amazon EC2 proaktiv eine neue Instance startet. In diesem Fall versucht AmazonEC2, eine neue Instance zu starten, unabhängig davon, ob für die neue Instance ein hohes Ausfallrisiko besteht.

Capacity Rebalancing erhöht nicht die Unterbrechungsrate Ihrer Spot-Instance

Wenn Sie Capacity Rebalancing aktivieren, erhöht sich dadurch nicht die Unterbrechungsrate Ihrer Spot-Instance (die Anzahl der Spot-Instances, die zurückgefordert werden, wenn Amazon die Kapazität wieder EC2 benötigt). Wenn Capacity Rebalancing jedoch feststellt, dass bei einer Instance das Risiko einer Unterbrechung besteht, versucht Amazon EC2 sofort, eine neue Instance zu starten. Das Ergebnis ist, dass möglicherweise mehr Instances ersetzt werden, als wenn Sie darauf gewartet hätten, dass Amazon EC2 eine neue Instance startet, nachdem die gefährdete Instance unterbrochen wurde.

Sie können zwar mehr Instances mit aktiviertem Capacity Rebalancing ersetzen, jedoch Sie profitieren davon, dass Sie eher proaktiv als reaktiv sind, indem Sie mehr Zeit haben, Maßnahmen zu ergreifen, bevor Ihre Instances unterbrochen werden. Mit einer Spot-Instance-Unterbrechungsbenachrichtigung haben Sie normalerweise nur bis zu zwei Minuten Zeit, um Ihre Instance ordnungsgemäß herunterzufahren. Wenn Capacity Rebalancing eine neue Instance im Voraus startet, geben Sie bestehenden Prozessen eine bessere Chance, sie auf Ihrer gefährdeten Instance abzuschließen. Sie können mit dem Herunterfahren Ihrer Instance beginnen und verhindern, dass neue Arbeiten für Ihre gefährdete Instance geplant werden. Sie können auch damit beginnen, die neu gestartete Instance für die Übernahme der Anwendung vorzubereiten. Mit dem proaktiven Ersetzen durch Capacity Rebalancing profitieren Sie von einer reibungslosen Kontinuität.

Betrachten Sie als theoretisches Beispiel zur Demonstration der Risiken und Vorteile des Einsatzes von Capacity Rebalancing das folgende Szenario:

  • 14:00 Uhr — Es geht eine Empfehlung zur Neuverteilung für Instance A ein und Amazon versucht EC2 sofort, eine Ersatzinstance-B zu starten, sodass Sie Zeit haben, Ihre Shutdown-Verfahren zu starten. *

  • 14:30 Uhr — Für Instance-B wird eine Empfehlung zum erneuten Ausgleich empfangen, die durch Instance-C ersetzt wird, sodass Sie Zeit haben, Ihre Shutdown-Verfahren zu starten.*

  • 14:32 Uhr — Wenn Capacity Rebalancing nicht aktiviert wäre und um 14:32 Uhr eine Benachrichtigung über eine Unterbrechung der Spot-Instance für Instance-A eingegangen wäre, hätten Sie nur bis zu zwei Minuten Zeit gehabt, um Maßnahmen zu ergreifen, währenddessen Instance-A allerdings bis zu diesem Zeitpunkt hochgefahren wäre.

* Falls launch-before-terminate angegeben, beendet Amazon EC2 die gefährdete Instance, sobald die Ersatz-Instance online ist.

Amazon EC2 kann neue Ersatz-Spot-Instances auf den Markt bringen, bis die erfüllte Kapazität das Doppelte der Zielkapazität erreicht hat

Wenn eine Flotte für den Kapazitätsneuausgleich konfiguriert ist, versucht die Flotte, eine neue Ersatz-Spot-Instance für jede Spot-Instance zu starten, die eine Ausgleichsempfehlung erhält. Nachdem eine Spot-Instance eine Neuausgleichsempfehlung erhalten hat, wird sie nicht mehr als Teil der erfüllten Kapazität gezählt. Abhängig von der Ersatzstrategie beendet Amazon die Instance EC2 entweder nach einer vorkonfigurierten Terminierungsverzögerung oder lässt sie laufen. Dies gibt Ihnen die Möglichkeit, Neuausgleichsaktionen für die Instance durchzuführen.

Wenn Ihre Flotte die doppelte Zielkapazität erreicht, wird sie keine neuen Ersatz-Instances mehr starten, selbst wenn die Ersatz-Instances selbst eine Empfehlung zum Neuausgleich erhalten.

Angenommen, Sie erstellen Sie eine Spot-Flotte mit einer Zielkapazität von 100 Spot Instances. Alle Spot-Instances erhalten eine Empfehlung zur Neuverteilung, was Amazon veranlasst, 100 Ersatz-Spot-Instances EC2 auf den Markt zu bringen. Dadurch wird die Anzahl der erfüllten Spot-Instances auf 200 erhöht, was der doppelten Zielkapazität entspricht. Einige der Ersatz-Instances erhalten eine Neuausgleichsempfehlung, es werden jedoch keine Ersatz-Instances mehr gestartet, da die Flotte die doppelte Zielkapazität nicht überschreiten kann.

Beachten Sie, dass Ihnen alle Instances in Rechnung gestellt werden, während sie ausgeführt werden.

Wir empfehlen Ihnen, die Flotte so zu konfigurieren, dass Spot Instances beendet werden, die eine Neuausgleichsempfehlung erhalten.

Wenn Sie Ihre Flotte für den Kapazitätsneuausgleich konfigurieren, empfehlen wir Ihnen, launch-before-terminate mit einer angemessenen Beendigungsverzögerung nur dann auszuwählen, wenn Sie vorhersagen können, wie lange die Verfahren zum Herunterfahren der Instances dauern werden. Dadurch wird sichergestellt, dass die alten Instances erst beendet werden, wenn die Verfahren zum Herunterfahren abgeschlossen sind.

Wenn Sie die für die Neuausgleichsempfehlung empfohlenen Instances selbst beenden möchten, empfehlen wir Ihnen, das Signal für die Neuausgleichsempfehlung zu überwachen, das von den Spot-Instances in der Flotte empfangen wird. Durch die Überwachung des Signals können Sie schnell Ausgleichsaktionen an den betroffenen Instances durchführen, bevor Amazon sie EC2 unterbricht, und sie dann manuell beenden. Wenn Sie die Instances nicht beenden, bezahlen Sie weiterhin für sie, während sie ausgeführt werden. Amazon beendet die Instances, die eine Neugewichtsempfehlung erhalten, EC2 nicht automatisch.

Sie können Benachrichtigungen mithilfe von Amazon EventBridge - oder Instance-Metadaten einrichten. Weitere Informationen finden Sie unter Überwachen von Signalen für Neuausgleichsempfehlungen.

Die Flotte zählt keine Instances, die bei der Berechnung der erfüllten Kapazität bei einer Verringerung oder Vergrößerung eine Neuausgleichsempfehlung während der Skalierung erhalten

Wenn Ihre Flottett für den Kapazitätsneuausgleich konfiguriert ist und Sie die Zielkapazität so ändern, dass sie entweder abskaliert oder aufskaliert wird, zählt die Flotte die Instances nicht, die für den Ausgleich markiert sind, wie folgt:

  • Skalierung — Wenn Sie Ihre gewünschte Zielkapazität verringern, EC2 beendet Amazon Instances, die nicht für eine Neuverteilung markiert sind, bis die gewünschte Kapazität erreicht ist. Die Instances, die für einen Neuausgleich markiert sind, werden nicht auf die erfüllte Kapazität angerechnet.

    Sie erstellen beispielsweise eine Flotte mit einer Zielkapazität von 100 Spot-Instances. 10 Instances erhalten eine Empfehlung zur Neuverteilung, sodass Amazon 10 neue Ersatz-Instances auf den EC2 Markt bringt, was zu einer erfüllten Kapazität von 110 Instances führt. Anschließend reduzieren Sie die Zielkapazität auf 50 (Skalierung), aber die erfüllte Kapazität beträgt tatsächlich 60 Instances, da die 10 Instances, die für die Neuverteilung markiert sind, nicht von Amazon EC2 beendet werden. Sie müssen diese Instances manuell beenden oder Sie können sie laufen lassen.

  • Skalieren — Wenn Sie Ihre gewünschte Zielkapazität erhöhen, EC2 startet Amazon neue Instances, bis die gewünschte Kapazität erreicht ist. Die Instances, die für einen Neuausgleich markiert sind, werden nicht auf die erfüllte Kapazität angerechnet.

    Ein Beispiel: Angenommen, Sie erstellen eine Spot-Flotte mit einer Zielkapazität von 100 Spot Instances. 10 Instances erhalten eine Neuausgleichsempfehlung. Die Flotte startet also 10 neue Ersatz-Instances, was zu einer erfüllten Kapazität von 110 Instances führt. Sie erhöhen dann die Zielkapazität auf 200 (Erweiterung), aber die erfüllte Kapazität beträgt tatsächlich 210 Instances, da die 10 Instances, die für einen Neuausgleich markiert sind, nicht von der Flotte als Teil der Zielkapazität gezählt werden. Sie müssen diese Instances manuell beenden, oder Sie können sie laufen lassen.