Verwenden Sie Zuweisungsstrategien, um zu bestimmen, wie EC2 Fleet oder Spot-Flotte die Spot- und On-Demand-Kapazität 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.

Verwenden Sie Zuweisungsstrategien, um zu bestimmen, wie EC2 Fleet oder Spot-Flotte die Spot- und On-Demand-Kapazität 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 für die verfügbare Kapazität, den Preis und die 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 Ihre EC2 Flotte oder Spot-Flotte Spot-Instances starten kann. Beim Starten von Instances nutzt Flotte jedoch die von Ihnen angegebene Zuweisungsstrategie, um die jeweiligen Pools aus allen möglichen Pools auszuwählen.

Anmerkung

(Nur Linux-Instances) Wenn Sie Ihre Spot-Instance so konfigurieren, dass sie mit AMDSEV— SNP aktiviert gestartet wird, wird Ihnen eine zusätzliche Nutzungsgebühr pro Stunde berechnet, die 10% des On-Demand-Stundensatzes für den ausgewählten Instance-Typ entspricht. Wenn die Zuweisungsstrategie den Preis als Eingabe verwendet, berücksichtigt die Flotte diese zusätzliche Gebühr nicht. Es wird nur der Spot-Preis verwendet.

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

Preis-/kapazitätsoptimiert (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 dem günstigsten dieser Pools an.

Die Preis-/kapazitätsoptimierte Zuweisungsstrategie ist die beste Wahl für die meisten Spot-Workloads, z. B. statuslose containerisierte Anwendungen, Microservices, Webanwendungen, Daten- und Analytikaufträge sowie Batchverarbeitung.

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

Kapazitätsoptimiert

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 eine Priorität für jeden Instance-Typ in Ihrer Flotte festlegen, wobei die Flotte zuerst die Kapazität optimiert, die Instance-Typprioritäten jedoch so gut wie möglich beachtet.

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 Anwendung der Strategie Kapazitätsoptimiert wird Spot Instances automatisch zu den am besten verfügbaren Pools gestartet, indem Echtzeitdaten zur Kapazität analysiert werden und prognostiziert wird, welche Pools 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 einem Neustart der Arbeit anfallen. Da die Kapazitätsoptimiert-Strategie die Zahl der Unterbrechungen reduzieren kann, trägt sie zur Senkung der Gesamtkosten Ihrer Workload bei.

Alternativ können Sie die Kapazitätsoptimiertpriorisierte Zuweisungsstrategie 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 wird zuerst für die Kapazität optimiert, berücksichtigt jedoch so gut wie möglich die Prioritäten der Instance-Typen (wenn z. B. die Berücksichtigung der Prioritäten keinen wesentlichen Einfluss auf die Fähigkeit der Flotte zur Bereitstellung optimaler Kapazität hat). 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. Die Verwendung von Prioritäten wird für Spot-Flotte nur unterstützt, wenn Ihre Flotte eine Startvorlage verwendet.

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

Diversifiert

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 für die Zuteilung des niedrigsten Preises zu wählen, da sie das größte 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 Es wird jedoch empfohlen, die Standardeinstellung zu überschreiben, indem Sie die Preis–Kapazitätsoptimierte Zuweisungsstrategie angeben.

Bei der Niedrigstpreisstrategie werden die Spot Instances aus dem nächstgünstigeren Pool mit freien Kapazitäten bezogen, wenn der Pool mit dem niedrigsten Preis keine freien Kapazitäten hat. Wenn in einem Pool die Kapazität zu Neige geht, bevor Ihre gewünschte Kapazität erreicht ist, wird Ihre Anforderung von der Flotte über den nächstgünstigsten Pool erfüllt. 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 Niedrigstpreisstrategie ist nur verfügbar, wenn Sie die AWS CLI verwenden. 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. Ist nur gültig, wenn die Zuweisungsstrategie auf Niedrigster Preis eingestellt ist. Die Flotte wählt die günstigsten Spot-Pools aus und weist Ihre Spot-Zielkapazität gleichmäßig über die von Ihnen angegebene Anzahl von Spot-Pools zu.

Beachten Sie, dass die Flotte versucht, Spot Instances aus der Anzahl der Pools zu ziehen, die Sie nach bestem Aufwand angeben. Wenn einem Pool die Spot-Kapazität ausgeht, bevor Ihre Zielkapazität erreicht ist, wird die Flotte Ihre Anfrage weiterhin erfüllen, indem sie sie aus dem nächsten preisgünstigsten Pool zieht. 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 die Strategie für die Zuteilung mit dem niedrigsten Preis angegeben wird, und nur bei Verwendung von AWS CLI. Der Parametername gilt sowohl InstancePoolsToUseCount für EC2 Fleet als auch für Spot Fleet.

Zuweisungsstrategie 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 Fleet On-Demand-Instances starten können. Beim Starten von Instances nutzt Flotte jedoch die von Ihnen angegebene Zuweisungsstrategie, um die jeweiligen Pools aus allen möglichen Pools auszuwählen.

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

niedrigster Preis

Die On-Demand-Instances kommen aus dem preisgünstigsten Pool mit verfügbarer Kapazität. Dies ist die Standardstrategie.

Wenn der günstigste Pool keine verfügbare Kapazität aufweist, kommen die On-Demand-Instances aus dem nächstgünstigsten Pool mit verfügbarer Kapazität.

Wenn in einem Pool die Kapazität zu Neige geht, bevor Ihre gewünschte Kapazität erreicht ist, wird Ihre Anforderung von der Flotte über den nächstgünstigsten Pool erfüllt. Damit die gewünschte Kapazität auf jeden Fall erreicht wird, erhalten Sie möglicherweise On-Demand-Instances aus mehreren Pools.

Priorisiert

Die Flotte verwendet die Priorität, die Sie jeder Einführungsvorlagen-Überschreibung zugewiesen haben, und launcht Instance-Typen mit der höchsten Priorität zuerst. Diese Strategie kann nicht mit attributbasierter Auswahl von Instance-Typen verwendet werden. Ein Beispiel für die Verwendung dieser Zuweisungsstrategie finden Sie unter Priorisieren von Instance-Typen für On-Demand-Kapazität.

Die geeignete Zuweisungsstrategie auswählen

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, die Preis-Kapazitä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 belastbare und statuslose Workloads ausführt, einschließlich containerisierter Anwendungen, Microservices, Webanwendungen, Daten- und Analytikaufträge sowie Stapelverarbeitung, dann sollten Sie die Preis-Kapazitätsoptimierte Zuweisungsstrategie verwenden, um optimale Kosteneinsparungen und Kapazitätsverfügbarkeit zu erzielen.

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. Durch die Verwendung von Checkpointing passen Sie die Preis-Kapazitätsoptimierte Zuweisungsstrategie an diese Workloads an, 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 die kapazitätsoptimierte Strategie optional verwenden, wenn Sie Workloads ausführen, die entweder Instance-Typen mit ähnlichen Preisen verwenden oder bei denen die Kosten einer Unterbrechung so hoch sind, dass jegliche Kostenersparnis im Vergleich zu einer geringfügigen Zunahme der Unterbrechungen nicht ausreicht. 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ätsoptimiert-priorisierte Zuweisungsstrategie verwenden und dann die Reihenfolge der zu verwendenden Instance-Typen von der höchsten zur niedrigsten Priorität festlegen.

Beachten Sie Folgendes: Wenn Sie Prioritäten auf kapazitätsoptimiert-priorisiert festlegen, werden die gleichen Prioritäten auch auf Ihre On-Demand-Instances angewendet, wenn die On-Demand-Zuweisungsstrategie auf priorisiert eingestellt ist. Beachten Sie, dass für Spot-Flotte die Verwendung von Prioritäten nur unterstützt wird, wenn Ihre Flotte eine Startvorlage verwendet.

JSONBeispielkonfigurationen, die die Strategie für die kapazitätsoptimierte Zuweisung verwenden, finden Sie im Folgenden:

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

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

Wenn Ihre Flotte klein ist oder nur für einen kurzen Zeitraum ausgeführt wird, können Sie Preis-Kapazitätsoptimiert nutzen, um die Kosteneinsparungen zu maximieren und dabei die Kapazitätsverfügbarkeit zu berücksichtigen.

Wenn Ihre Flotte groß ist oder lange läuft

Wenn Ihre Flotte groß ist oder für einen langen Zeitraum ausgeführt wird, können Sie die Verfügbarkeit Ihrer Flotte verbessern, indem Sie die Spot Instances mit der Strategie diversifiziert über mehrere Pools verteilen. Wenn Ihre Spot-Flotten-Anforderung beispielsweise 10 Pools und eine Zielkapazität von 100 Instances angibt, 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 setzt die Flotte keine Spot Instances in Pools mit einem Spot-Preis ein, der gleich oder höher ist als der On-Demand-Preis.https://aws.amazon.com/ec2/pricing/

Zielkapazität für Spot Instances erhalten

Wenn Spot Instances aufgrund einer Änderung in Bezug auf den Spot-Preis oder die verfügbare Kapazität eines Spot-Kapazitätspools beendet werden, startet eine Flotte vom Typ maintain Ersatz-Spot-Instances. Die Zuweisungsstrategie bestimmt die Pools, von denen aus die Ersatz-Instances gestartet werden, wie folgt:

  • Wenn die Zuweisungsstrategie Preis-Kapazitätsoptimiert ist, startet die Flotte Ersatz-Instances in den Pools mit der größten Spot-Instance-Kapazitätsverfügbarkeit. Dabei wird auch der Preis berücksichtigt und die günstigsten Pools mit hoher Kapazitätsverfügbarkeit identifiziert.

  • Wenn die Zuweisungsstrategie Kapazitätsoptimiert ist, startet die Flotte Ersatz-Instances in den Pools mit der größten verfügbaren Spot Instance-Kapazität.

  • Wenn die Zuweisungsstrategie Diversifiziert lautet, verteilt die Flotte die Ersatz-Spot-Instances über die verbleibenden Pools.

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

Wenn eine EC2 Fleet- 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 eingestellt ist, verwendet die Flotte die Priorität, um zu bestimmen, welcher Instance-Typ bei der Erfüllung der 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