Bewährte Methoden für EC2 Spot - 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.

Bewährte Methoden für EC2 Spot

Amazon EC2-Spot-Instances sind zusätzliche EC2-Rechenkapazitäten AWS Cloud , die Ihnen im Vergleich zu On-Demand-Preisen mit Einsparungen von bis zu 90% zur Verfügung stehen. Der einzige Unterschied zwischen On-Demand-Instances und Spot-Instances ist, dass Spot-Instances von Amazon EC2 unterbrochen werden kann, mit zwei Minuten Benachrichtigung, wenn Amazon EC2 die Kapazität zurück benötigt.

Spot-Instances werden für zustandslose, fehlertolerante, flexible Anwendungen empfohlen. Spot-Instances eignen sich beispielsweise gut für Big Data, containerisierte Workloads, CI/CD, zustandslose Webserver, High Performance Computing (HPC) und Rendering-Workloads.

Während des Ausführens sind Spot-Instances genau gleich wie On-Demand-Instances. Spot garantiert jedoch nicht, dass Sie Ihre ausgeführten Instances lange genug halten können, um Ihre Workloads abzuschließen. Spot garantiert auch nicht, dass Sie die sofortige Verfügbarkeit der von Ihnen gesuchten Instances erhalten können oder dass Sie immer die von Ihnen angeforderte Gesamtkapazität erhalten können. Darüber hinaus können sich Spot-Instance-Unterbrechungen und Spot-Instance-Kapazitäten im Laufe der Zeit ändern, da die Spot-Instance-Verfügbarkeit je nach Angebot und Nachfrage variiert und die Performance in der Vergangenheit keine Garantie für zukünftige Ergebnisse darstellt.

Spot-Instances sind nicht für Workloads geeignet, die unflexibel, statusbehaftet, fehlerintolerant oder eng zwischen Instance-Knoten verbunden sind. Wir empfehlen Spot-Instances nicht für Workloads, die gelegentliche Perioden nicht tolerieren, in denen die gesamte Zielkapazität nicht vollständig verfügbar ist. Die Einhaltung der Best Practices von Spot, um flexibel in Bezug auf Instance-Typen und Availability Zones zu sein, bietet zwar die beste Chance auf Hochverfügbarkeit, es gibt jedoch keine Garantie dafür, dass Kapazität verfügbar ist, da eine steigende Nachfrage nach On-Demand-Instances die Workloads auf Spot-Instances stören kann.

Wir raten dringend davon ab, Spot-Instances für diese Workloads zu verwenden oder zu versuchen, ein Failover auf On-Demand-Instances durchzuführen, um Unterbrechungen oder Phasen der Nichtverfügbarkeit zu bewältigen. Ein Failover auf On-Demand-Instances kann versehentlich zu Unterbrechungen Ihrer anderen Spot-Instances führen. Wenn Spot-Instances für eine Kombination aus Instance-Typ und Availability Zone unterbrochen werden, kann es für Sie außerdem schwierig werden, On-Demand-Instances mit derselben Kombination zu erhalten.

Unabhängig davon, ob Sie ein erfahrener Spot-Benutzer oder neu bei Spot-Instances sind: Wenn Sie derzeit Probleme mit Spot-Instance-Unterbrechungen oder Spot-Instance-Verfügbarkeit haben, empfehlen wir Ihnen, diese bewährten Methoden zu befolgen, um die beste Erfahrung mit dem Spot-Service zu erzielen.

Vorbereiten einzelner Instances auf Unterbrechungen

Der beste Weg, um Spot-Instance-Unterbrechungen ordnungsgemäß zu handhaben, besteht darin, Ihre Anwendung so zu konzipieren, dass sie eine Fehlertoleranz aufweist. Um dies zu erreichen, können Sie die Empfehlungen zum Neuausgleich von EC2-Instances und Spot-Instance-Unterbrechungsbenachrichtigungen nutzen.

Eine EC2-Instance-Ausgleichsempfehlung ist ein Signal, das Sie benachrichtigt, wenn eine Spot Instance einem erhöhten Risiko einer Unterbrechung ausgesetzt ist. Das Signal gibt Ihnen die Möglichkeit, die Spot-Instance vor der zweiminütigen Spot-Instance-Unterbrechungsbenachrichtigung proaktiv zu verwalten. Sie können entscheiden, Ihr Workload auf neue oder bestehende Spot-Instances auszugleichen, die nicht einem erhöhten Risiko einer Unterbrechung ausgesetzt sind. Wir haben es Ihnen leicht gemacht, dieses Signal zu nutzen, indem wir das Feature Kapazitätsausgleich in Auto-Scaling-Gruppen und EC2-Flotte verwenden.

Eine Benachrichtigung über die Unterbrechung der Spot-Instance ist eine Warnung, die zwei Minuten vor der Unterbrechung einer Spot-Instance durch Amazon EC2 ausgegeben wird. Wenn Ihre Workload „zeitlich flexibel“ ist, können Sie Ihre Spot-Instances so konfigurieren, dass sie bei einer Unterbrechung angehalten oder in den Ruhezustand versetzt werden, anstatt beendet zu werden. Amazon EC2 hält Ihre Spot-Instances bei einer Unterbrechung automatisch an oder versetzt sie in den Ruhezustand und nimmt die Ausführung der Instances automatisch wieder auf, wenn wir über verfügbare Kapazität verfügen.

Wir empfehlen Ihnen, in Amazon eine Regel zu erstellen EventBridge, die die Empfehlungen zur Neuverteilung und die Unterbrechungsbenachrichtigungen erfasst und dann einen Checkpoint für den Fortschritt Ihrer Arbeitslast auslöst oder die Unterbrechung ordnungsgemäß behandelt. Weitere Informationen finden Sie unter Überwachen von Signalen für Neuausgleichsempfehlungen. Ein detailliertes Beispiel, das Sie durch das Erstellen und Verwenden von Ereignisregeln führt, finden Sie unter Taking AdvanTage of Amazon EC2 Spot Instance Interruption Notices.

Weitere Informationen finden Sie unter Empfehlung zum Neuausgleich einer EC2-Instance und Spot-Instance-Unterbrechungen.

Flexibel sein bei Instance-Typen und Availability Zones

Ein Spot-Kapazitätspool ist ein Satz nicht verwendeter EC2-Instances mit demselben Instance-Typ (z. B. m5.large) sowie derselben Availability Zone (z. B. us-east-1a). Sie sollten flexibel darin sein, welche Instance-Typen Sie anfordern und in welchen Availability Zones Sie Ihren Workload bereitstellen können. Dies gibt Spot eine bessere Chance, die erforderliche Menge an Rechenkapazität zu finden und zuzuweisen. Fragen Sie zum Beispiel nicht nur nach c5.large, wenn Sie bereit wären, Larges aus den Familien c4, m5 und m4 zu verwenden.

Je nach Ihren spezifischen Anforderungen können Sie auswerten, über welche Instance-Typen hinweg Sie flexibel sein können, um Ihre Computing-Anforderungen zu erfüllen. Wenn ein Workload vertikal skaliert werden kann, sollten Sie größere Instance-Typen (mehr vCPUs und Arbeitsspeicher) in Ihre Anforderungen aufnehmen. Wenn Sie nur horizontal skalieren können, sollten Sie Instance-Typen älterer Generation einbeziehen, da sie von On-Demand-Kunden weniger gefragt sind.

Eine gute Faustregel besteht darin, für jeden Workload über mindestens 10 Instance-Typen hinweg flexibel zu sein. Stellen Sie außerdem sicher, dass alle Availability Zones für die Verwendung in Ihrer VPC konfiguriert und für Ihren Workload ausgewählt sind.

Verwenden von EC2-Auto-Scaling-Gruppen oder EC2-Spot-Flotte zum Verwalten Ihrer Kapazität

Mit Spot können Sie in Bezug auf die Gesamtkapazität denken – in Einheiten, die vCPUs, Arbeitsspeicher, Speicher oder Netzwerkdurchsatz umfassen – anstatt in Bezug auf einzelne Instances zu denken. Mit Auto-Scaling-Gruppen und EC2-Flotte können Sie eine Zielkapazität starten und verwalten und Ressourcen, die unterbrochene oder manuell abgebrochene Ressourcen ersetzen, automatisch anfordern. Wenn Sie eine Auto-Scaling-Gruppe oder eine EC2-Flotte konfigurieren, müssen Sie nur die Instance-Typen und die Zielkapazität entsprechend Ihren Anwendungsanforderungen angeben. Weitere Informationen finden Sie unter Auto Scaling-Gruppen im Amazon EC2 Auto Scaling-Benutzerhandbuch und Erstellen einer EC2-Flotte in diesem Benutzerhandbuch.

Nutzen der preis- und kapazitätsoptimierten Zuweisungsstrategie

Zuweisungsstrategien in Auto Scaling-Gruppen helfen Ihnen, Ihre Zielkapazität bereitzustellen, ohne manuell nach den Spot-Kapazitätspools mit Reservekapazität suchen zu müssen. Es wird empfohlen, die price-capacity-optimized-Strategie zu verwenden, da diese Strategie automatisch Instances aus den am häufigsten verfügbaren Spot-Kapazitätspools bereitstellt, die außerdem den niedrigstmöglichen Preis bieten. Sie können auch die price-capacity-optimized-Zuweisungsstrategie in einer EC2-Flotte nutzen. Da Ihre Spot-Instance-Kapazität aus Pools mit optimaler Kapazität bezogen wird, verringert dies die Möglichkeit, dass Ihre Spot-Instances zurückgewonnen werden. Weitere Informationen zu Zuweisungsstrategien finden Sie unter Spot-Instances im Amazon EC2 Auto Scaling-Benutzerhandbuch und Wenn Workloads mit hohen Unterbrechungskosten verbunden sind in diesem Benutzerhandbuch.

Verwenden Sie integrierte AWS Dienste, um Ihre Spot-Instances zu verwalten

Andere AWS Dienste lassen sich in Spot integrieren, um die gesamten Rechenkosten zu senken, ohne dass die einzelnen Instances oder Flotten verwaltet werden müssen. Wir empfehlen Ihnen, die folgenden Lösungen für Ihre jeweiligen Workloads in Betracht zu ziehen: Amazon EMR, Amazon Elastic Container Service AWS Batch, Amazon Elastic Kubernetes Service SageMaker, AWS Elastic Beanstalk Amazon und Amazon. GameLift Weitere Informationen zu bewährten Methoden für Spot mit diesen Services finden Sie auf der Amazon-EC2-Spot-Instances-Workshop-Website.

Was ist die beste Spot-Request-Methode?

Bestimmen Sie anhand der folgenden Tabelle, welche API für die Anforderung von Spot-Instances verwendet werden soll.

API Wann sollte dies verwendet werden? Anwendungsfall Soll ich diese API verwenden?

CreateAutoScalingGroup

  • Sie benötigen mehrere Instances mit einer einzigen Konfiguration oder einer gemischten Konfiguration.

  • Sie möchten das Lebenszyklusmanagement mit einer konfigurierbaren API automatisieren.

Erstellen Sie eine Auto-Scaling-Gruppe, die den Lebenszyklus Ihrer Instances verwaltet und gleichzeitig die gewünschte Anzahl von Instances beibehält. Unterstützt die horizontale Skalierung (Hinzufügen weiterer Instances) zwischen festgelegten Mindest- und Maximalgrenzen.

Ja
CreateFleet
  • Sie benötigen mehrere Instances mit einer einzigen Konfiguration oder einer gemischten Konfiguration.

  • Sie möchten Ihren Instance-Lebenszyklus selbst verwalten.

  • Wenn Sie kein Auto Scaling benötigen, empfehlen wir eine Flotte des Typs instant.

Erstellen Sie eine Flotte von On-Demand-Instances und Spot-Instances in einer einzigen Anforderung mit mehreren Startspezifikationen, die sich in Bezug auf Instance-Typ, AMIdie Availability Zone oder Subnetz unterscheiden. Die Spot-Instance-Zuweisungsstrategie ist standardmäßig auf lowest-price pro Einheit eingestellt, aber Sie können die Einstellung auf price-capacity-optimized, capacity-optimized oder diversified ändern.

Ja – im instant-Modus, wenn Sie das Auto Scaling nicht benötigen

RunInstances
  • Sie verwenden die RunInstances API bereits zum Starten von On-Demand-Instances und möchten einfach zum Starten von Spot-Instances wechseln, indem Sie einen einzelnen Parameter ändern.

  • Sie benötigen nicht mehrere Instances mit verschiedenen Instance-Typen.

Starten Sie eine bestimmte Anzahl von Instances mit einem AMI- und einem Instance-Typ.

Nein — weil gemischte Instance-Typen in einer einzigen Anfrage RunInstances nicht zulässig sind

RequestSpotFleet
  • Wir raten dringend davon ab, die RequestSpotFleet API zu verwenden, da es sich um eine veraltete API ohne geplante Investitionen handelt.

  • Wenn Sie den Lebenszyklus Ihrer Instance verwalten möchten, verwenden Sie die CreateFleet API.

  • Wenn Sie Ihren Instanzlebenszyklus nicht verwalten möchten, verwenden Sie die CreateAutoScalingGroup API.

NICHT VERWENDEN. RequestSpotFleet ist eine veraltete API ohne geplante Investitionen.

Nein
RequestSpotInstances
  • Wir raten dringend davon ab, die RequestSpotInstances API zu verwenden, da es sich um eine veraltete API handelt, für die keine geplanten Investitionen geplant sind.

NICHT VERWENDEN. RequestSpotInstances ist eine veraltete API ohne geplante Investitionen.

Nein