Scopri spotinfo, uno strumento open source a riga di comando, semplice da usare, per esplorare le istanze Spot di AWS EC2 dal terminale e sfruttare i dati Spot in script e automazioni.

Esplora le istanze AWS Spot dalla riga di comando
TL;DR
spotinfo è uno strumento a riga di comando per esplorare le istanze AWS Spot in più regioni AWS.
Introduzione
Le istanze Amazon EC2 Spot sono un modo eccellente per ridurre il costo delle istanze EC2 on-demand, fino al 90%. Quando hai un workload che può tollerare l'interruzione di una VM, oppure essere sospeso e ripreso in seguito senza impatti sul business, scegliere il modello di pricing Spot è una decisione quasi obbligata.
Più basso è il tasso di interruzione, più a lungo le tue istanze Spot resteranno attive.
Amazon offre un'eccellente interfaccia web, l'AWS Spot Instance Advisor, per esplorare le istanze Spot disponibili e individuare i pool con la minore probabilità di interruzione. Puoi anche verificare i risparmi rispetto alle tariffe on-demand. Puoi anche verificare i risparmi rispetto alle tariffe on-demand. E poi sei tenuto a usare queste metriche per selezionare le istanze Spot più adatte.
Per quanto l'AWS Spot Instance Advisor sia uno strumento utile, sfruttarne i dati per scripting e automazione non è semplice e alcuni casi d'uso richiedono troppi click.
Lo strumento Spotinfo
Ecco perché ho creato spotinfo: uno strumento a riga di comando facile da usare (open source con licenza Apache 2.0) che ti permette di esplorare le istanze AWS Spot dal terminale e di sfruttarne i dati per scripting e automazione.
Dietro le quinte, spotinfo attinge a due fonti di dati pubbliche fornite da AWS:
Funzionalità
spotinfo ti dà accesso alle stesse informazioni dell'AWS Spot Instance Advisor, ma da riga di comando, ed è quindi utilizzabile in scenari di scripting e automazione. In più, lo strumento offre alcune funzionalità che l'interfaccia web dell'AWS Spot Instance Advisor non prevede.
Filtri avanzati
La prima funzionalità è il filtro avanzato. Puoi filtrare le istanze Spot per:
- vCPU — numero minimo di core CPU
- Memoria GiB — dimensione minima della memoria
- Sistema operativo — Linux o Windows
- Regione — una o più regioni AWS (oppure
allper tutte le regioni AWS) - Risparmio (rispetto all'on-demand)
- Frequenza di interruzione
- Tariffa oraria (in
USD/hour)
Quando filtri per tipo di istanza, sono supportate le espressioni regolari: un grande aiuto per costruire query avanzate.
Esempio: filtro con Regex
Elenca (in formato testo) tutte le istanze EC2 Spot disponibili basate sul processore Graviton2, con almeno otto core CPU, nella regione us-west-2 (Oregon), ordinando i risultati per prezzo Spot.
https://gist.github.com/9a22c748a6697c58a555702b709205b9
Visibilità sul prezzo Spot
Con l'AWS Spot Instance Advisor vedi lo sconto rispetto alla tariffa on-demand dell'istanza EC2. Ma per conoscere il prezzo che pagherai davvero devi visitare un'altra pagina, quella dell'AWS Spot pricing, e cercare di nuovo lo specifico tipo di istanza.
spotinfo ti fa risparmiare tempo: mostra il prezzo Spot accanto alle altre informazioni. Se preferisci, puoi anche filtrare e ordinare per prezzo Spot.
Formati di output flessibili
Lavorare con i dati a riga di comando e usarli in script e automazioni richiede flessibilità nel formato di output. spotinfo restituisce i risultati in più formati: human-friendly come table e text, oppure automation-friendly come json, csv o semplicemente il valore di risparmio. Scegli il formato più adatto al caso d'uso.
Confronta gli Spot tra più regioni
Un aspetto fastidioso dell'AWS Spot Instance Advisor è l'impossibilità di confrontare le istanze EC2 Spot tra più regioni AWS. La vista è limitata a una singola regione: in alternativa devi aprire più schede del browser e saltare continuamente dall'una all'altra per fare il confronto.
spotinfo ti aiuta a confrontare le istanze Spot tra più regioni AWS. Basta passare il flag --region da riga di comando, anche più di una volta.
Un'altra possibilità è passare il valore speciale all (con il flag --region=all) per vedere le istanze Spot in tutte le regioni AWS disponibili.
Esempio: esplorare l'istanza Spot t4g.small
Esplora la disponibilità e la tariffa del tipo di istanza Spot t4g.small in tutte le regioni AWS in cui è disponibile.
https://gist.github.com/2b7a92a6126f21edac2319cd1507c352
Resilienza di rete
Pur usando i data feed pubblici di AWS, spotinfo incorpora gli stessi dati al proprio interno. Così, se per qualsiasi motivo il data feed non è raggiungibile (mancanza di connettività, servizio non disponibile o altro), spotinfo sarà comunque in grado di restituire lo stesso risultato.
In sintesi
Spero che spotinfo ti sia utile per esplorare le istanze Spot di AWS EC2. Aspetto con piacere i tuoi commenti e qualsiasi domanda tu voglia farmi.
Ti invito a contribuire (issue, funzionalità, pull request) al progetto GitHub alexei-led/spotinfo.
p.s.: se spotinfo ti piace, lascia una ⭐️ al progetto su GitHub.
Grazie per la lettura! Per restare in contatto, seguici sul DoiT Engineering Blog , sul canale LinkedIn DoiT e sul canale Twitter DoiT . Per scoprire le opportunità di carriera, visita https://careers.doit.com .