Ermitteln Sie anhand von Zuweisungsstrategien, wie EC2 Fleet oder Spot-Flotte die Spot- und On-Demand-Kapazitäten ausschöpfen - 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.

Ermitteln Sie anhand von Zuweisungsstrategien, wie EC2 Fleet oder Spot-Flotte die Spot- und On-Demand-Kapazitäten ausschöpfen

Wenn Sie mehrere Kapazitätspools (die jeweils einen Instance-Typ und eine Availability Zone umfassen) in einer EC2 Flotte oder Spot-Flotte verwenden, können Sie mithilfe einer Zuweisungsstrategie verwalten, wie Amazon Ihre Spot- und On-Demand-Kapazitäten aus diesen Pools EC2 ausfüllt. Die Zuweisungsstrategien können je nach verfügbarer Kapazität, Preis und zu verwendenden Instance-Typen optimiert werden. Es gibt unterschiedliche Zuweisungsstrategien für Spot-Instances und On-Demand-Instances.

Zuweisungsstrategien für Spot-Instances

Ihre Startkonfiguration bestimmt alle möglichen Spot-Kapazitätspools (Instance-Typen und Availability Zones), von denen aus die EC2 Flotte oder Spot-Flotte Spot-Instances starten kann. Beim Starten von Instances verwendet die Flotte jedoch die von Ihnen angegebene Zuweisungsstrategie, um die spezifischen Pools aus all Ihren möglichen Pools auszuwählen.

Sie können eine der folgenden Zuweisungsstrategien für Spot Instances angeben:

Preis und Kapazität optimiert (empfohlen)

Die Flotte identifiziert die Pools mit der höchsten Kapazitätsverfügbarkeit für die Anzahl der Instances, die gestartet werden. Das bedeutet, dass wir Spot Instances aus den Pools anfordern werden, von denen wir glauben, dass die Wahrscheinlichkeit einer kurzfristigen Unterbrechung am geringsten ist. Die Flotte fordert dann Spot-Instances aus den Pools mit dem niedrigsten Preis an.

Die auf Preis und Kapazität optimierte Zuweisungsstrategie ist die beste Wahl für die meisten Spot-Workloads, wie z. B. statusfreie containerisierte Anwendungen, Microservices, Webanwendungen, Daten- und Analysejobs und Batch-Verarbeitung.

Wenn Sie den verwenden AWS CLI, lautet der Parametername für Fleet und price-capacity-optimized für Spot EC2 Fleet. priceCapacityOptimized

Kapazität optimiert

Die Flotte identifiziert die Pools mit der höchsten Kapazitätsverfügbarkeit für die Anzahl der Instances, die gestartet werden. Das bedeutet, dass wir Spot Instances aus den Pools anfordern werden, von denen wir glauben, dass die Wahrscheinlichkeit einer kurzfristigen Unterbrechung am geringsten ist. Sie können optional für jeden Instance-Typ in Ihrer Flotte eine Priorität festlegen, wobei die Flotte zunächst die Kapazität optimiert, die Prioritäten des Instance-Typs jedoch nach bestem Wissen berücksichtigt.

Im Fall von Spot-Instances ändern sich die Preise allmählich im Lauf der Zeit, basierend auf langfristigen Trends bei Angebot und Nachfrage. Die Kapazität fluktuiert jedoch in Echtzeit. Bei der kapazitätsoptimierten Strategie werden Spot-Instances automatisch in den Pools mit der höchsten Verfügbarkeit gestartet. Dabei werden Kapazitätsdaten in Echtzeit berücksichtigt und vorhergesagt, welche am besten verfügbar sind. Dies eignet sich gut für Workloads, bei denen aufgrund des Neustarts der Arbeit möglicherweise höhere Unterbrechungskosten anfallen, wie z. B. lange Continuous Integration (CI), Bild- und Medienrendering, Deep Learning und High Performance Compute (HPC) -Workloads, bei denen möglicherweise höhere Unterbrechungskosten im Zusammenhang mit dem Neustart der Arbeit anfallen. Durch die Möglichkeit weniger Unterbrechungen kann die kapazitätsoptimierte Strategie die Gesamtkosten Ihres Workloads senken.

Alternativ können Sie die kapazitätsoptimierte Strategie für die priorisierte Zuweisung mit einem Prioritätsparameter verwenden, um die Instance-Typen von der höchsten zur niedrigsten Priorität zu ordnen. Sie können die gleiche Priorität für verschiedene Instance-Typen festlegen. Die Flotte optimiert zunächst die Kapazität, berücksichtigt jedoch die Prioritäten der Instance-Typen nach bestem Wissen und Gewissen (z. B. wenn die Einhaltung der Prioritäten die Fähigkeit der Flotte, optimale Kapazität bereitzustellen, nicht wesentlich beeinträchtigt). Dies ist eine gute Option für Workloads, bei denen die Möglichkeit von Unterbrechungen minimiert werden muss und die Präferenz für bestimmte Instance-Typen wichtig ist. Beachten Sie, dass, wenn Sie die Priorität für Instance-Typen für Ihre Spot-Kapazität festlegen, dieselbe Priorität auch auf Ihre On-Demand-Instances angewendet wird, wenn die On-Demand-Zuweisungsstrategie auf priorisiert eingestellt ist. Für Spot-Flotten wird die Verwendung von Prioritäten nur unterstützt, wenn Ihre Flotte eine Startvorlage verwendet.

Wenn Sie den verwenden AWS CLI, lauten die Parameternamen capacity-optimized und capacity-optimized-prioritized für EC2 Fleet und capacityOptimized und capacityOptimizedPrioritized für Spot Fleet.

Diversifiziert

Spot-Instances werden auf alle Spot-Kapazitätspools verteilt. Wenn Sie den verwenden AWS CLI, gilt der Parametername sowohl diversified für EC2 Fleet als auch für Spot Fleet.

Niedrigster Preis (nicht empfohlen)
Warnung

Wir empfehlen nicht, die Strategie mit dem niedrigsten Preis zu verwenden, da sie das höchste Risiko einer Unterbrechung Ihrer Spot-Instances birgt.

Die Spot-Instances kommen aus dem preisgünstigsten Pool mit verfügbarer Kapazität. Bei Verwendung von ist dies die Standardstrategie. AWS CLI Wir empfehlen jedoch, die Standardeinstellung zu überschreiben, indem Sie die für Preis und Kapazität optimierte Zuweisungsstrategie angeben.

Bei der Strategie mit dem niedrigsten Preis stammen die Spot-Instances aus dem Pool mit dem nächstniedrigsten Preis, der über verfügbare Kapazität verfügt, wenn der Pool mit dem niedrigsten Preis keine verfügbare Kapazität hat. Wenn einem Pool die Kapazität ausgeht, bevor Ihre gewünschte Kapazität erreicht ist, erfüllt die Flotte weiterhin Ihre Anfrage, indem sie auf den Pool mit dem nächstniedrigsten Preis zurückgreift. Damit die gewünschte Kapazität auf jeden Fall erreicht wird, erhalten Sie möglicherweise Spot-Instances aus mehreren Pools.

Da bei dieser Strategie nur der Instance-Preis und nicht die Kapazitätsverfügbarkeit berücksichtigt wird, kann es zu hohen Unterbrechungsraten kommen.

Die Strategie für die Zuteilung mit dem niedrigsten Preis ist nur verfügbar, wenn Sie die verwenden AWS CLI. Der Parametername ist lowest-price für EC2 Fleet und lowestPrice für Spot Fleet.

Anzahl der zu verwendenden Pools

Die Anzahl der Spot-Pools, über die Ihre Spot-Zielkapazität zugewiesen werden soll. Gilt nur, wenn die Zuweisungsstrategie auf den niedrigsten Preis eingestellt ist. Die Flotte wählt die Spot-Pools mit dem niedrigsten Preis aus und verteilt Ihre Ziel-Spot-Kapazität gleichmäßig auf die von Ihnen angegebene Anzahl von Spot-Pools.

Beachten Sie, dass die Flotte nach bestem Wissen versucht, Spot-Instances aus der von Ihnen angegebenen Anzahl von Pools abzurufen. Wenn einem Pool die Spot-Kapazität ausgeht, bevor Ihre Zielkapazität erreicht ist, erfüllt die Flotte weiterhin Ihre Anfrage, indem sie auf den Pool mit dem nächstniedrigsten Preis zurückgreift. Um sicherzustellen, dass Ihre Zielkapazität erreicht wird, erhalten Sie möglicherweise Spot-Instances von mehr als der von Ihnen angegebenen Anzahl von Pools. Wenn die meisten Pools keine Spot-Kapazität haben, erhalten Sie Ihre volle Zielkapazität möglicherweise von weniger als der von Ihnen angegebenen Anzahl von Pools.

Dieser Parameter ist nur verfügbar, wenn Sie die Strategie für die Zuteilung mit dem niedrigsten Preis angeben und nur, wenn Sie den verwenden AWS CLI. Der Parametername gilt sowohl InstancePoolsToUseCount für EC2 Fleet als auch für Spot Fleet.

Zuweisungsstrategien für On-Demand-Instances

Ihre Startkonfiguration bestimmt alle möglichen Kapazitätspools (Instance-Typen und Availability Zones), von denen aus EC2 Fleet oder Spot-Flotte On-Demand-Instances starten können. Beim Starten von Instances verwendet die Flotte jedoch die von Ihnen angegebene Zuweisungsstrategie, um die spezifischen Pools aus all Ihren möglichen Pools auszuwählen.

Sie können eine der folgenden Zuweisungsstrategien für On-Demand-Instances angeben:

Niedrigster Preis

Die On-Demand-Instances stammen aus dem Pool mit dem niedrigsten Preis und verfügbarer Kapazität. Dies ist die Standardstrategie.

Wenn der Pool mit dem niedrigsten Preis keine verfügbare Kapazität hat, stammen die On-Demand-Instances aus dem Pool mit dem nächstniedrigsten Preis, der über verfügbare Kapazität verfügt.

Wenn die Kapazität eines Pools knapp wird, bevor Ihre gewünschte Kapazität erreicht ist, erfüllt die Flotte weiterhin Ihre Anfrage, indem sie auf den Pool mit dem nächsthöheren Preis zurückgreift. Um sicherzustellen, dass Ihre gewünschte Kapazität erreicht wird, erhalten Sie möglicherweise On-Demand-Instances aus mehreren Pools.

Priorisiert

Die Flotte verwendet die Priorität, die Sie jeder Startvorlagen-Überschreibung zugewiesen haben, und startet die Instance-Typen in der Reihenfolge der höchsten Priorität zuerst. Diese Strategie kann nicht bei der attributbasierten Auswahl des Instance-Typs verwendet werden. Ein Beispiel für die Verwendung dieser Zuweisungsstrategie finden Sie unter. Priorisieren von Instance-Typen für On-Demand-Kapazität

Wählen Sie die passende Spot-Allokationsstrategie

Sie können Ihre Flotte für Ihren Anwendungsfall optimieren, indem Sie die entsprechende Spot-Zuweisungsstrategie wählen.

Gleichgewicht zwischen niedrigstem Preis und Kapazitätsverfügbarkeit

Um die Kompromisse zwischen den Spot-Kapazitätspools mit dem niedrigsten Preis und den Spot-Kapazitätspools mit der höchsten Kapazitätsverfügbarkeit auszugleichen, empfehlen wir Ihnen, die preiskapazitätsoptimierte Zuweisungsstrategie zu verwenden. Bei dieser Strategie werden Entscheidungen darüber getroffen, von welchen Pools Spot Instances angefordert werden sollen, sowohl auf der Grundlage des Preises der Pools als auch der Kapazitätsverfügbarkeit der Spot Instances in diesen Pools. Das bedeutet, dass wir Spot Instances aus den Pools anfordern werden, von denen wir glauben, dass die Wahrscheinlichkeit einer kurzfristigen Unterbrechung am geringsten ist, wobei der Preis weiterhin berücksichtigt wird.

Wenn Ihre Flotte ausfallsichere und zustandslose Workloads ausführt, einschließlich containerisierter Anwendungen, Microservices, Webanwendungen, Daten- und Analysejobs sowie Batch-Verarbeitung, sollten Sie die Preiskapazitätsoptimierungsstrategie für optimale Kosteneinsparungen und Kapazitätsverfügbarkeit verwenden.

Wenn Ihre Flotte Workloads ausführt, bei denen Unterbrechungen aufgrund von Neustarts von Aufgaben höhere Kosten verursachen, sollten Sie Checkpointing implementieren, damit die Anwendungen von dem Punkt aus neu gestartet werden können, an dem sie unterbrochen wurden. Indem Sie Checkpointing verwenden, machen Sie die Strategie für die preisoptimierte Zuweisung zu einer optimalen Lösung für diese Workloads, da sie Kapazität aus den Pools mit dem niedrigsten Preis zuweist, die auch eine niedrige Spot-Instance-Unterbrechungsrate bieten.

Im Folgenden finden Sie beispielsweise JSON Konfigurationen, die die Strategie der preiskapazitätsoptimierten Zuweisung verwenden:

Wenn Workloads mit hohen Unterbrechungskosten verbunden sind

Sie können optional die kapazitätsoptimierte Strategie verwenden, wenn Sie Workloads ausführen, für die entweder Instance-Typen mit ähnlichen Preisen verwendet werden oder bei denen die Kosten einer Unterbrechung so hoch sind, dass jegliche Kosteneinsparungen im Vergleich zu einem geringfügigen Anstieg der Unterbrechungen unzureichend sind. Bei dieser Strategie wird die Kapazität aus den am besten verfügbaren Spot-Kapazitätspools zugewiesen, die die Möglichkeit von weniger Unterbrechungen bieten, was die Gesamtkosten Ihres Workloads senken kann.

Wenn die Möglichkeit von Unterbrechungen minimiert werden muss, aber die Präferenz für bestimmte Instance-Typen wichtig ist, können Sie Ihre Pool-Prioritäten ausdrücken, indem Sie die kapazitätsoptimierte priorisierte Zuweisungsstrategie verwenden und dann die Reihenfolge der zu verwendenden Instance-Typen von der höchsten zur niedrigsten Priorität festlegen.

Beachten Sie, dass bei der Festlegung von Prioritäten für kapazitätsoptimierte Prioritäten dieselben Prioritäten auch auf Ihre On-Demand-Instances angewendet werden, wenn die On-Demand-Zuweisungsstrategie auf priorisiert eingestellt ist. Beachten Sie außerdem, dass für Spot-Flotten die Verwendung von Prioritäten nur unterstützt wird, wenn Ihre Flotte eine Startvorlage verwendet.

Im Folgenden finden Sie beispielsweise JSON Konfigurationen, die die kapazitätsoptimierte Zuweisungsstrategie verwenden:

Im Folgenden finden Sie beispielsweise JSON Konfigurationen, die die kapazitätsoptimierte Strategie für die priorisierte Zuweisung verwenden:

Wenn Ihr Workload zeitlich flexibel ist und die Kapazitätsverfügbarkeit kein Faktor ist

Wenn Ihre Flotte klein ist oder nur für kurze Zeit in Betrieb ist, können Sie Price Capacity nutzen, um maximale Kosteneinsparungen zu erzielen und gleichzeitig die Kapazitätsverfügbarkeit zu berücksichtigen.

Wenn Ihre Flotte groß ist oder lange läuft

Wenn Ihre Flotte groß ist oder über einen längeren Zeitraum läuft, können Sie die Verfügbarkeit Ihrer Flotte verbessern, indem Sie die Spot-Instances mithilfe der diversifizierten Strategie auf mehrere Pools verteilen. Wenn Ihre Flotte beispielsweise 10 Pools und eine Zielkapazität von 100 Instances spezifiziert, startet die Flotte 10 Spot-Instances in jedem Pool. Wenn der Spot-Preis für einen Pool Ihren Höchstpreis für diesen Pool übersteigt, sind nur 10 % Ihrer Flotte betroffen. Bei dieser Strategie reagiert Ihre Flotte außerdem weniger empfindlich auf Steigerungen des Spot-Preises für die verschiedenen Pools im Laufe der Zeit. Bei der diversifizierten Strategie führt die Flotte keine Spot-Instances in Pools ein, deren Spot-Preis dem On-Demand-Preis entspricht oder diesen übersteigt.

Behalten Sie die Zielkapazität für Spot-Instances bei

Nachdem Spot-Instances aufgrund einer Änderung des Spot-Preises oder der verfügbaren Kapazität eines Spot-Kapazitätspools gekündigt wurden, maintain führt eine Flotte des Typs Ersatz-Spot-Instances ein. Die Zuweisungsstrategie bestimmt die Pools, von denen aus die Ersatz-Instances gestartet werden, wie folgt:

  • Wenn die Zuweisungsstrategie auf Preis und Kapazität optimiert ist, führt die Flotte Ersatz-Instances in den Pools ein, die die größte Spot-Instance-Kapazitätsverfügbarkeit aufweisen. Dabei wird auch der Preis berücksichtigt und Pools mit den niedrigsten Preisen und hoher Kapazitätsverfügbarkeit identifiziert.

  • Wenn die Zuweisungsstrategie kapazitätsoptimiert ist, startet die Flotte Ersatz-Instances in den Pools, die die meiste Spot-Instance-Kapazitätsverfügbarkeit aufweisen.

  • Wenn die Zuweisungsstrategie diversifiziert ist, verteilt die Flotte die Ersatz-Spot-Instances auf die verbleibenden Pools.

Priorisieren von Instance-Typen für On-Demand-Kapazität

Wenn eine EC2 Flotte oder Spot-Flotte versucht, Ihre On-Demand-Kapazität auszuschöpfen, wird standardmäßig zuerst der Instance-Typ mit dem niedrigsten Preis gestartet. Wenn die On-Demand-Zuweisungsstrategie auf priorisiert gesetzt ist, bestimmt die Flotte anhand der Priorität, welcher Instance-Typ bei der Bereitstellung von On-Demand-Kapazität zuerst verwendet werden soll. Die Priorität wird der Startvorlagen-Überschreibung zugewiesen, und die höchste Priorität wird zuerst gestartet.

Beispiel: Priorisieren von Instance-Typen

In diesem Bespiel konfigurieren Sie drei Startvorlagen-Überschreibungen, jede mit einem anderen Instance-Typ.

Der On-Demand-Preis für die Instance-Typen variiert. Im Folgenden sind die in diesem Beispiel verwendeten Instance-Typen nach Preisen aufgeführt, beginnend mit dem günstigsten Instance-Typ:

  • m4.large – am günstigsten

  • m5.large

  • m5a.large

Wenn Sie die Reihenfolge nicht anhand der Priorität bestimmen, startet die Flotte zur Erfüllung der On-Demand-Kapazität mit dem günstigsten Instance-Typ.

Nehmen wir jedoch an, Sie hätten ungenutzte m5.large Reserved Instances, die Sie zuerst verwenden möchten. Sie können die Startvorlagen-Überschreibungspriorität so einstellen, dass die Instance-Typen wie folgt in der Reihenfolge ihrer Priorität verwendet werden:

  • m5.large – Priorität 1

  • m4.large – Priorität 2

  • m5a.large – Priorität 3