Schnell und günstig: AWS Spot-Instances

von Sven Brömer (Kommentare: 0)

Autor: Sven Brömer, Senior Professional its-people GmbH

Sven Brömer

Wie verhält es sich mit AWS Spot-Instances? Wie funktionieren sie?

Nimmt man jetzt beispielsweise ein Audi A4: Mit ihm kommt man zu einem vernünftigen Preis, komfortabel und zügig ans Ziel. An manchen Tagen drohen selbst die 245 PS nicht auszureichen. Man muss mit Lastspitzen etwas zügiger umgehen können, um innerhalb einer bestimmten Zeit ans Ziel zu kommen. So wäre es doch sehr praktisch, wenn man jemanden kennen würde, der einen McLaren P1, Porsche 918 und einige andere schnelle und große Autos mehr in der Garage stehen hätte. Wenn nun derjenige seinen P1 zu einem günstigen Preis verleihen würde, wenn er ihn gerade nicht braucht – ja, das wäre doch ideal.

Und genau so verhält es sich mit AWS Spot-Instances.

Denn, was vielen nicht bekannt ist, Amazon versteigert, auch kurzfristig, nicht genutzte EC2 Kapazitäten zu verhältnismäßig günstigen Preisen. Der Preis richtet sich dabei nach Angebot und Nachfrage von in der Region verfügbaren Ressourcen. Zu lastarmen Zeiten sind Spot-Instances sogar mit einem Rabatt von bis zu 90 % im Vergleich zum On-Demand-Preis verfügbar. (link)

Dabei ist das Bieterverfahren von Amazon recht simpel gehalten. Es gibt einen Höchstpreis, den der Bieter bereit ist, innerhalb einer Region für einen Instanz-Typen zu zahlen. Wird die Spot-Instance dann angefordert, startet sie, wenn der Spot-Preis niedriger als der angegebene Höchstbetrag ist. Beendet wird die Instanz entweder manuell oder der aktuelle Spotpreis übersteigt den angegebenen Höchstpreis. Es erfolgt eine Benachrichtigung und nach zwei Minuten wird die Spot-Instances von Amazon heruntergefahren. Somit wird sichergestellt, dass auch nie mehr als der angegebene Höchstpreis bezahlt werden muss.

Eine weitere Möglichkeit Spot-Instances zu betreiben, ist nicht preisgetrieben, sondern zeitgetrieben. Somit läuft die Ressource so lange, bis sie manuell beendet wird oder die angegebene Dauer von maximal 6 Stunden in Stundenschritten abgelaufen ist. Unabhängig von den Änderungen des Spot-Preises.

Wenn nun die Spot-Instances nach Erreichen der Höchstdauer oder des Höchstgebotes einfach heruntergefahren werden, sind sie nicht für jeden Applikationstyp zu empfehlen. Die Applikation sollte eine gewisse Fehlertoleranz aufweisen und verteilbar sein.

Sprich, sie sind also weniger geeignet für Real-Time-Anwendungen.

Amazon selbst schlägt sie vor für:

  • Anwendungen mit flexiblen Start- und Endzeiten

  • Anwendungen, die nur zu äußerst geringen Computing-Preisen realisierbar sind

  • Benutzer mit dringenden Computing-Anforderungen für große Mengen an Zusatzkapazitäten

Spot-Instances sind daher hervorragend geeignet, um diverse Aufgaben zu erledigen und Lastspitzen zu verteilen. Je verteilter und skalierbarer die Applikation, desto höher ist das Einsparpotential bei den Betriebskosten und desto einfacher lässt sich der Durchsatz erhöhen.

Um nur einige Anwendungsfälle zu benennen, sind Spot-Instances durchaus interessant für

  • AnalysenSven_112601508_2

  • Big Data

  • Geodatenanalyse

  • High Performance Computing

  • Simulationen

  • Verschlüsselung

Weiteren Charme bekommt der Einsatz der AWS Spot-Instances durch die Möglichkeit, die Verwaltung durch Scripting vollständig zu automatisieren. Man muss also nicht alles über das Webinterface administrieren, sondern kann auch auf die von Amazon eigens dazu angebotene API zugreifen. Damit lassen sich beispielsweise Gebote auf den bestmöglichen Preis automatisieren und sogar die Preishistorie von Amazon abfragen.

Sofern man seine Anwendung kennt, kann man auch bei einem hohen Aufkommen an Berechnungen, dynamisch Spot-Instances aufbauen, um diese abzuarbeiten. Entstehen innerhalb der Applikation beispielsweise 3 Millionen Berechnungen, die innerhalb der nächsten Stunde abgearbeitet werden müssen, ist man somit in der Lage, dynamisch zum bestmöglichen Preis eine Spot-Instance-Flotte zu erstellen, die mit einem vordefinierten Amazon Machine Image erstellt wird. Diese kümmert sich in der nächsten Stunde nur um die Bearbeitung der Berechnungen und baut anschließend die Spot-Instances wieder ab. Ganz ohne weitere Interaktionen oder Eingriffe im Betrieb.

Durch den Einsatz von Spot-Instances lassen sich also Betriebskosten einsparen. Es müssen für Spitzenzeiten nun nicht mehr vollständige Cluster permanent vorgehalten werden. Durch die hohe Skalierbarkeit lassen sich somit auch bei kleinerem Budget durchaus Mammutaufgaben, wie komplexe Analysen, Rendering oder Simulationen bewältigen. Sie führen somit viel schneller an das gewünschte Ziel.

Wer neugierig auf die vielen Möglichkeiten geworden ist, die die AWS Spot-Instances bieten, kann sich die Details direkt in der Amazon Dokumentation anschauen (link).

Und wer sich preislich für die Spot-Instances interessiert, erhält von Amazon gleich einen Berater für Spot-Instances-Gebote (link) an die Hand, um einen schnellen Überblick über die verfügbaren Ressourcen innerhalb einer Region und deren Preisentwicklung zu bekommen.

Zurück

Einen Kommentar schreiben