spotinfo ist ein einfach zu bedienendes Open-Source-Kommandozeilen-Tool, mit dem Sie AWS EC2 Spot Instances direkt im Terminal erkunden und die Spot-Daten für Skripte und Automatisierung weiterverwenden.

AWS Spot Instances per Kommandozeile erkunden
TL;DR
spotinfo ist ein Kommandozeilen-Tool, mit dem Sie AWS Spot Instances über mehrere AWS-Regionen hinweg analysieren.
Einleitung
Amazon EC2 Spot Instances sind eine ausgezeichnete Möglichkeit, die Kosten für EC2 On-Demand Instances um bis zu 90 % zu senken. Sobald Sie einen Workload haben, der eine VM-Unterbrechung verkraftet oder pausiert und später fortgesetzt werden kann, ohne den Geschäftsbetrieb zu beeinträchtigen, führt am Spot-Preismodell kaum ein Weg vorbei.
Je niedriger die Unterbrechungsrate, desto länger laufen Ihre Spot Instances in der Regel.
Mit dem AWS Spot Instance Advisor bietet Amazon eine ausgezeichnete Web-Oberfläche, um verfügbare Spot Instances zu erkunden und die Spot-Instance-Pools mit der geringsten Unterbrechungswahrscheinlichkeit zu finden. Auch die Einsparungen gegenüber den On-Demand-Preisen lassen sich dort einsehen. Auch die Einsparungen gegenüber den On-Demand-Preisen lassen sich dort einsehen. Auf Basis dieser Kennzahlen sollen Sie dann die passenden Spot Instances auswählen.
So nützlich der AWS Spot Instance Advisor auch ist – seine Daten lassen sich nur schwer für Skripte und Automatisierung weiterverwenden, und manche Anwendungsfälle erfordern viel zu viele Klicks.
Das Tool spotinfo
Genau deshalb habe ich spotinfo entwickelt: ein einfach zu bedienendes Kommandozeilen-Tool (Open Source unter Apache 2.0 License), mit dem Sie AWS Spot Instances im Terminal erkunden und die Spot-Daten für Skripte und Automatisierung nutzen.
Im Hintergrund greift spotinfo auf zwei öffentliche Datenquellen von AWS zurück:
Funktionen
Mit spotinfo erhalten Sie dieselben Informationen wie im AWS Spot Instance Advisor – nur direkt aus der Kommandozeile heraus und damit auch in Skripten und Automatisierungen nutzbar. Darüber hinaus bietet das Tool einige praktische Funktionen, die in der Web-Oberfläche des AWS Spot Instance Advisor fehlen.
Erweiterte Filter
Die erste Funktion sind erweiterte Filter. Sie können Spot Instances filtern nach:
- vCPU – Mindestanzahl an CPU-Kernen
- Memory GiB – Mindestgröße des Arbeitsspeichers
- Betriebssystem – Linux oder Windows
- Region – eine oder mehrere AWS-Regionen (oder
allfür alle AWS-Regionen) - Einsparungen (gegenüber On-Demand)
- Häufigkeit von Unterbrechungen
- Stundensatz (in
USD/hour)
Beim Filtern nach Instance-Typ werden reguläre Ausdrücke unterstützt – damit lassen sich auch komplexe Abfragen formulieren.
Beispiel: Filter mit Regex
Listen Sie (als Text) alle verfügbaren EC2 Spot Instances mit Graviton2-Prozessor und mindestens acht CPU-Kernen in der Region us-west-2 (Oregon) auf, sortiert nach Spot-Preis.
https://gist.github.com/9a22c748a6697c58a555702b709205b9
Transparenz beim Spot-Preis
Im AWS Spot Instance Advisor sehen Sie nur den Rabatt gegenüber dem On-Demand-Preis der EC2-Instance. Um den tatsächlich fälligen Preis zu erfahren, müssen Sie auf eine separate AWS Spot Pricing-Seite wechseln und dort erneut nach dem konkreten Instance-Typ suchen.
spotinfo spart Ihnen diesen Umweg und zeigt den Spot-Preis direkt neben den übrigen Informationen an. Auf Wunsch lässt sich auch nach Spot-Preis filtern und sortieren.
Flexible Ausgabeformate
Wer in der Kommandozeile arbeitet und Daten in Skripten oder Automatisierungen weiterverarbeitet, braucht flexible Ausgabeformate. spotinfo liefert Ergebnisse in mehreren Formaten: in nutzerfreundlichen Formaten wie table und reinem text sowie in automatisierungsfreundlichen Formaten wie json, csv oder als reiner Einsparungswert. Wählen Sie das Format, das zu Ihrem konkreten Anwendungsfall passt.
Spot Instances regionenübergreifend vergleichen
Ein echtes Manko des AWS Spot Instance Advisor: EC2 Spot Instances lassen sich nicht über mehrere AWS-Regionen hinweg vergleichen. Verfügbar ist nur die Ansicht einer einzelnen Region – andernfalls müssen Sie mehrere Browser-Tabs öffnen und ständig zwischen ihnen wechseln, um Spot Instances aus verschiedenen AWS-Regionen zu vergleichen.
spotinfo macht den regionsübergreifenden Vergleich von Spot Instances einfach. Sie übergeben dazu lediglich das Kommandozeilen-Flag --region – und können es beliebig oft wiederholen.
Alternativ übergeben Sie den Sonderwert all (über das Flag --region=all), um Spot Instances in allen verfügbaren AWS-Regionen zu sehen.
Beispiel: t4g.small Spot Instance erkunden
Verfügbarkeit und Preis des Spot-Instance-Typs t4g.small in allen AWS-Regionen anzeigen, in denen dieser Instance-Typ verfügbar ist.
https://gist.github.com/2b7a92a6126f21edac2319cd1507c352
Netzwerk-Resilienz
Auch wenn spotinfo die öffentlichen AWS Data Feeds nutzt, bringt das Tool dieselben Daten zusätzlich direkt mit. Sollte ein Data Feed aus irgendeinem Grund nicht erreichbar sein (keine Verbindung, Service nicht verfügbar o. Ä.), liefert spotinfo trotzdem dasselbe Ergebnis.
Fazit
Ich hoffe, spotinfo erweist sich als hilfreiches Tool, um AWS EC2 Spot Instances zu erkunden. Ich freue mich auf Ihr Feedback und Ihre Fragen.
Beiträge zum GitHub-Projekt alexei-led/spotinfo sind ausdrücklich willkommen – egal ob Issues, Features oder Pull Requests.
P.S.: Wenn Ihnen spotinfo gefällt, lassen Sie dem GitHub-Projekt gerne einen ⭐️ da.
Danke fürs Lesen! Bleiben Sie mit uns in Kontakt – auf dem DoiT Engineering Blog, dem DoiT LinkedIn-Kanal und dem DoiT Twitter-Kanal. Karrieremöglichkeiten finden Sie unter https://careers.doit.com.