Découvrez spotinfo, un outil en ligne de commande open source et facile à prendre en main, conçu pour explorer les instances AWS EC2 Spot depuis un terminal et exploiter les données Spot dans vos scripts et automatisations.

Explorer les instances AWS Spot depuis la ligne de commande
TL;DR
spotinfo est un outil en ligne de commande qui permet d'explorer les instances AWS Spot dans plusieurs régions AWS.
Introduction
Recourir aux instances Amazon EC2 Spot est un excellent moyen de réduire le coût des instances EC2 à la demande, jusqu'à 90 %. Dès lors qu'un workload tolère une interruption de VM, ou peut être suspendu et repris plus tard sans impacter les usages métier, le modèle de tarification Spot s'impose comme une évidence.
Plus le taux d'interruption est faible, plus vos instances Spot ont de chances de tourner longtemps.
Amazon propose une excellente interface web, l'AWS Spot Instance Advisor, pour explorer les instances Spot disponibles et identifier les pools présentant le plus faible risque d'interruption. Vous pouvez aussi y consulter les économies réalisées par rapport aux tarifs à la demande. Ces métriques sont ensuite censées vous aider à sélectionner les instances Spot les plus adaptées.
Si l'AWS Spot Instance Advisor est un outil précieux, il n'est pas évident d'en exploiter les données pour le scripting et l'automatisation, et certains cas d'usage demandent beaucoup trop de clics.
L'outil spotinfo
D'où l'idée de spotinfo. Cet outil en ligne de commande facile à utiliser (open source sous licence Apache 2.0) permet d'explorer les instances AWS Spot depuis un terminal et d'exploiter les données Spot dans vos scripts et automatisations.
En coulisses, spotinfo s'appuie sur deux sources de données publiques fournies par AWS :
- AWS Spot Instance Advisor flux de données
- AWS Spot Pricing flux de données
Fonctionnalités
spotinfo donne accès aux mêmes informations que l'AWS Spot Instance Advisor, mais depuis la ligne de commande, ce qui le rend exploitable pour le scripting et les usages d'automatisation. L'outil propose en plus quelques fonctionnalités utiles absentes de l'interface web de l'AWS Spot Instance Advisor.
Filtrage avancé
Première fonctionnalité : le filtrage avancé. Vous pouvez filtrer les instances Spot selon :
- vCPU — nombre minimum de cœurs CPU
- Mémoire (Gio) — taille minimale de mémoire
- Système d'exploitation — Linux ou Windows
- Région — une ou plusieurs régions AWS (ou
allpour toutes les régions AWS) - Économies (par rapport au tarif à la demande)
- Fréquence d'interruption
- Tarif horaire (en
USD/heure)
Le filtrage par type d'instance prend en charge les expressions régulières, de quoi construire des requêtes avancées.
Exemple : filtrage avec Regex
Lister (au format texte) toutes les instances EC2 Spot disponibles équipées du processeur Graviton2, avec au minimum huit cœurs CPU, dans la région us-west-2 (Oregon), en triant les résultats par prix Spot.
https://gist.github.com/9a22c748a6697c58a555702b709205b9
Visibilité du prix Spot
Avec l'AWS Spot Instance Advisor, vous voyez la remise par rapport au tarif à la demande de l'instance EC2. Mais pour connaître le prix réel que vous allez payer, il faut consulter une autre page, l'AWS Spot pricing, et y rechercher à nouveau le type d'instance concerné.
spotinfo vous fait gagner du temps en affichant le prix Spot aux côtés des autres informations. Vous pouvez aussi filtrer et trier par prix Spot, si besoin.
Formats de sortie flexibles
Manipuler des données en ligne de commande et y accéder depuis des scripts ou des automatisations demande une vraie souplesse de format. spotinfo peut renvoyer les résultats sous plusieurs formats : lisibles par l'humain, comme table et text brut, ou orientés automatisation, comme json, csv, ou simplement une valeur d'économie. À chacun de choisir le format adapté à son cas d'usage.
Comparer les Spots dans plusieurs régions
Un point agaçant de l'AWS Spot Instance Advisor : impossible de comparer les instances EC2 Spot entre plusieurs régions AWS. Seule une vue par région est disponible ; pour les comparer entre plusieurs régions, il faut ouvrir plusieurs onglets et basculer en permanence de l'un à l'autre.
spotinfo vous aide justement à comparer les instances Spot entre plusieurs régions AWS. Il suffit de passer le flag --region en ligne de commande, autant de fois que nécessaire.
Autre option : passer la valeur spéciale all (via --region=all) pour voir les instances Spot dans l'ensemble des régions AWS disponibles.
Exemple : explorer l'instance Spot t4g.small
Explorer la disponibilité et le tarif du type d'instance Spot t4g.small dans toutes les régions AWS où il est proposé.
https://gist.github.com/2b7a92a6126f21edac2319cd1507c352
Résilience réseau
Si spotinfo exploite les flux de données publics d'AWS, il embarque aussi ces mêmes données en interne. Ainsi, si un flux n'est pas disponible pour une raison ou une autre (perte de connectivité, service indisponible, etc.), spotinfo reste capable de renvoyer le même résultat.
Conclusion
J'espère que spotinfo vous sera utile pour explorer les instances AWS EC2 Spot. Je serai ravi de lire vos commentaires et de répondre à vos questions.
Je vous invite à contribuer (issues, fonctionnalités, pull requests) au projet GitHub alexei-led/spotinfo.
p.s. : si spotinfo vous plaît, pensez à offrir une ⭐️ au projet GitHub.
Merci de votre lecture ! Pour rester en contact, retrouvez-nous sur le DoiT Engineering Blog , le DoiT LinkedIn Channel et le DoiT Twitter Channel . Pour découvrir nos opportunités de carrière, rendez-vous sur https://careers.doit.com .