Vai al contenuto principale
Data Engineering
Big Data
Cloud

Guida completa all’uso delle Azure Spot Instances per ridurre i costi

Scopri come funzionano le Azure Spot Virtual Machines, come possono ridurre in modo significativo i costi del cloud e strategie per implementarle in pratica.
Anirudh Kulkarni's photo
Anirudh Kulkarni
Aggiornato · 10 min leggi

Scopri con l'IA

ChatGPTClaudePerplexity

Crea il tuo account gratuito

Pratica and corso your progress.

Continua Con Google
Continuando, accetti i nostri Termini di utilizzo, la nostra Informativa sulla privacy e che i tuoi dati siano conservati negli Stati Uniti.

Il cloud computing è utile per applicazioni di Data Science e AI. Esistono molti provider cloud e scegliere quello giusto è cruciale per la nostra applicazione. Tuttavia, una grande sfida nel cloud computing è la gestione dei costi. Quando distribuiamo applicazioni e carichi di lavoro nel cloud, dobbiamo essere consapevoli delle spese, perché le macchine che operano nel cloud possono essere molto costose. 

In questo articolo, esploreremo le Azure Spot Virtual Machines (VM), chiamate anche Azure Spot Instances. Queste macchine ci permettono di risparmiare sui costi quando effettuiamo il deploy su Microsoft Azure. Se sei alle prime armi con Microsoft Azure e ti serve un’introduzione, consulta il nostro corso Introduction to Azure. Per utenti più avanzati, può essere utile il nostro corso Azure Architecture and Services. Infine, se cerchi un rapido riferimento, qui trovi la nostra scheda di confronto tra i diversi provider cloud: AWS, Azure and GCP Service Comparison for Data Science and AI.  

Addentriamoci nelle Azure Spot VM.

Cosa sono le Azure Spot VM?

Le Azure Spot VM sono macchine virtuali inutilizzate presenti nei data center di Azure in un dato momento. Poiché queste macchine non sono attualmente in uso, Azure le offre a tariffe notevolmente ridotte, talvolta fino al 90% di sconto rispetto al prezzo standard delle VM Azure. 

Questa riduzione dei costi, però, comporta incertezza. Se aumenta la domanda di VM da parte di altri utenti, Azure può reclamare queste Spot VM in qualsiasi momento con breve preavviso. Ciò rende le Spot VM molto imprevedibili. Di conseguenza, dobbiamo usarle solo per attività che non richiedono disponibilità continua e che possono permettersi interruzioni. Alcuni esempi includono:

Lavori batch

I lavori batch sono attività che possiamo eseguire su un computer senza intervento manuale. Queste attività vengono in genere elaborate in grandi gruppi o “batch”, in sequenza o in parallelo. Spesso hanno orari di inizio e fine flessibili e quindi possono essere messe in pausa e riprese senza interruzioni significative. 

Per esempio, considera un istituto finanziario che deve elaborare le transazioni a fine giornata lavorativa. Può impostare un job batch per caricare automaticamente migliaia o milioni di transazioni da varie fonti, convalidarle e aggiornare di conseguenza i saldi dei conti. 

Ambienti di test e sviluppo

Gli ambienti di test e sviluppo sono ambienti in cui gli sviluppatori possono creare e testare applicazioni senza influire sull’ambiente di produzione. Configurare questi ambienti può essere costoso, ed è qui che si possono usare le Spot VM. 

Per esempio, immagina un team che lavora su un sito e-commerce. Vuole provare una nuova funzione che consiglia prodotti in base alla cronologia di navigazione dell’utente. Può sviluppare questa funzione nell’ambiente di sviluppo e poi spostarla in un ambiente di test per verificare a fondo bug, prestazioni ed esperienza utente. Questo può essere fatto su Spot VM in diverse configurazioni. Dopo test riusciti, può distribuire la funzione in produzione, rendendola disponibile ai clienti.

Applicazioni tolleranti ai guasti

Le applicazioni tolleranti ai guasti sono applicazioni che possono continuare a funzionare senza interruzioni anche quando alcuni componenti si guastano. Ciò si ottiene con ridondanza integrata e meccanismi di failover. Tali applicazioni si prestano bene alle Spot VM. Un esempio potrebbe prevedere più server che gestiscono le richieste degli utenti. Se un server si guasta, il sistema reindirizza automaticamente le richieste a un altro server. Poiché queste operazioni sono tolleranti ai guasti, possono essere eseguite su Spot VM per risparmiare sui costi.

Vantaggi delle Azure Spot VM

Il principale vantaggio nell’uso delle Azure Spot VM è il notevole risparmio sui costi. Come abbiamo detto, si può arrivare fino al 90% di sconto rispetto ai prezzi on-demand. Grazie a questo sconto, possiamo scalare i carichi di lavoro in base alla capacità disponibile, consentendoci di eseguire operazioni su larga scala che altrimenti sarebbero molto costose con VM on-demand. Inoltre, con le Spot VM possiamo impostare il prezzo massimo che siamo disposti a pagare per la VM. Questo ci dà controllo sulla spesa. 

Quando Azure reclamerà la VM, possiamo anche selezionare una politica di espulsione per specificare cosa succede dopo: possiamo deallocare o eliminare la VM. Se scegliamo di deallocare la VM, la VM si ferma ma non viene eliminata. In questo modo, possiamo riavviarla quando tornerà disponibile. Nel frattempo, pagheremo solo i costi di archiviazione. Se invece scegliamo di eliminare la VM, tutti i nostri dati e carichi di lavoro verranno eliminati. 

Come distribuire una Spot VM

In questa sezione, spieghiamo come distribuire una Spot VM e selezionare le opzioni associate, come prezzo e politica di espulsione. Possiamo distribuire una singola Spot VM o un gruppo di Spot VM, noto come Spot VM Scale Set.

Spot VM singole 

Il modo più semplice è creare una VM dal portale Azure. 

  1. Nel portale seleziona Virtual Machines sotto Services e quindi seleziona Create. 
  2. Nella pagina Create a virtual machine, compila tutti i dettagli e seleziona la casella Run with Azure Spot discount. 
  3. Quindi dobbiamo selezionare Eviction type e Eviction Policy.  
  4. Per il Eviction type, possiamo selezionare Capacity only oppure Price or capacity. Selezionando Capacity only, la nostra VM viene espulsa quando c’è alta domanda per le VM di Azure. Questa opzione imposta il prezzo massimo che siamo disposti a pagare per la Spot VM. Per ridurre il prezzo massimo, possiamo selezionare Price or Capacity. Dovremo poi indicare il prezzo massimo che siamo disposti a pagare. Con questa opzione, Azure espelle la VM sia quando c’è alta domanda per le VM sia quando il costo di una Spot VM supera il prezzo massimo specificato.
  5. Dobbiamo anche selezionare una politica di espulsione: è ciò che accade se Azure espelle la nostra macchina. Possiamo scegliere Deallocate o Delete. Selezionando Deallocate, la VM viene arrestata ma i dati o le applicazioni presenti non vengono eliminati. Non ci verrà addebitato il costo della VM mentre è ferma, ma pagheremo l’archiviazione associata. Questa opzione è adatta se vogliamo riavviare la VM quando la capacità sarà di nuovo disponibile. Se invece selezioniamo Delete, la VM e l’eventuale archiviazione temporanea associata vengono eliminate quando Azure reclama l’istanza. 

Creazione di una macchina virtuale in Microsoft AzureCreazione di una macchina virtuale. Fonte: immagine dell’autore

Possiamo anche usare Azure CLI e Azure PowerShell, tra gli altri metodi, per avviare una Spot VM. Per maggiori dettagli, consulta la documentazione di Azure sulle Spot VM. 

Spot Virtual Machine Scale Sets (VMSS) 

Possiamo anche creare gruppi di Spot VM, noti come Spot Virtual Machine Scale Sets. Per farlo, cerca Virtual Machine Scale Sets nel portale Azure e creane uno. I VMSS ci consentono di automatizzare il deploy e la gestione di più Spot VM, semplificando lo scale-in e lo scale-out secondo necessità. Possiamo definire criteri di scalabilità, come uso della CPU o traffico di rete, e impostare una capacità desiderata in base al nostro prezzo massimo e ai requisiti di disponibilità.

Best practice per le Azure Spot VM

Raccomandiamo queste best practice quando usi le Spot VM per garantire che i carichi di lavoro restino resilienti ed economici.

Verifica della capacità

Prima di distribuire Spot VM, verifico la capacità disponibile nell’area desiderata e per le dimensioni di VM che intendo usare. La capacità di Azure fluttua in base alla domanda degli altri clienti, quindi verificarne la disponibilità può aiutarci a prendere decisioni informate sul deploy dei carichi di lavoro.

Imposta il prezzo massimo

Imposto il prezzo massimo che sono disposto a pagare all’ora per una VM. Questo aiuta a controllare i costi.

Progetta per le interruzioni

Dato che le Spot VM possono essere prelevate con breve preavviso, consiglio di progettare i carichi di lavoro per essere resilienti alle interruzioni. Usa strategie come il checkpointing per salvare periodicamente il lavoro, in modo da poter riprendere dall’ultimo checkpoint anziché ricominciare da capo. Per carichi di lavoro di elaborazione distribuita, assicurati che le attività possano essere ridistribuite tra le istanze rimanenti per mantenere il throughput anche se alcune istanze vengono prelevate.

Configura il monitoraggio

Un monitoraggio efficace è un’altra strategia cruciale per gestire al meglio le Spot VM. Azure fornisce strumenti per tracciare utilizzo, costi ed eventi di espulsione delle Spot VM. Monitorando queste metriche, possiamo ottenere insight sulle prestazioni delle nostre Spot VM, così da poter adeguare la strategia quando necessario. 

Azure Spot VM vs. Reserved Instances

A volte, a seconda dell’applicazione, usare una VM riservata può essere più sensato che usare una Spot VM. Le VM riservate sono un altro tipo di VM che consente di ottimizzare i costi del cloud. Questa sezione spiega le differenze tra queste due istanze.

Spot VM

Come abbiamo visto, le Spot VM offrono risparmi notevoli, talvolta fino al 90% rispetto al prezzo on-demand. Tuttavia, queste istanze possono essere reclamate da Azure con breve preavviso a seconda della domanda di capacità. Di conseguenza, dovremmo usare le spot instances per carichi di lavoro flessibili nei tempi e in grado di gestire interruzioni. Questo include job di elaborazione batch, ambienti di sviluppo e test e applicazioni stateless che possono essere distribuite facilmente su più istanze. 

Istanze riservate

Le Reserved Instances, invece, si acquistano con impegno di uno o tre anni. Possiamo selezionare un tipo specifico di VM con uno sconto significativo rispetto ai prezzi on-demand in cambio dell’impegno a utilizzarla per un anno o tre. Il vantaggio principale delle Reserved Instances è l’assenza di rischio di espulsione da parte di Azure. Se il carico di lavoro ha pattern di utilizzo prevedibili e richiede disponibilità costante, le Reserved Instances sono probabilmente l’opzione migliore.

In sintesi, la scelta tra Azure Spot VM e Reserved Instances dipende dalle esigenze specifiche in termini di costo, flessibilità e affidabilità.

Conclusione

Le Azure Spot VM sono un’ottima soluzione per ottenere un cloud computing conveniente. Possono offrire sconti significativi, talvolta fino al 90% rispetto ai prezzi on-demand. 

Le Azure Spot VM sono particolarmente utili per carichi di lavoro flessibili e che tollerano interruzioni. Tra questi: job di elaborazione batch, ambienti di sviluppo e test o qualsiasi applicazione che non richieda uptime costante. Per questi carichi di lavoro, le Spot VM possono aiutare a ridurre notevolmente i costi.

Per saperne di più sulle Azure Spot VM, dai un’occhiata a queste risorse:

  • Azure Documentation: la documentazione ufficiale di Azure è un ottimo punto di partenza e offre guide dettagliate, best practice e riferimenti tecnici sull’uso delle Spot VM.
  • Community e supporto: i forum della community Azure e i canali di supporto sono preziosi per ottenere risposte a domande specifiche e imparare dalle esperienze di altri utenti Azure.

Se ti è piaciuto questo articolo, dai un’occhiata anche a: Azure DevOps Interview Questions e Using GPT on Azure.


Anirudh Kulkarni's photo
Author
Anirudh Kulkarni
LinkedIn

Sono una technical writer in MathWorks. Mi occupo di revisionare e scrivere documentazione relativa ai prodotti MathWorks su Amazon Web Services, Microsoft Azure, Docker e NVIDIA.

Argomenti
Data Engineering
Big Data
Cloud

Impara con DataCamp

Corso

Comprendere il Cloud Computing

2 ore
260.2K
Un'introduzione semplice al cloud computing, che spiega i concetti chiave, i termini e gli strumenti.
Vedi i dettagliInizia Il Corso

Crea il tuo account gratuito

Pratica and corso your progress.

Continua Con Google
Continuando, accetti i nostri Termini di utilizzo, la nostra Informativa sulla privacy e che i tuoi dati siano conservati negli Stati Uniti.
Mostra altro
Correlato

blog

Tokenizzazione nel NLP: come funziona, sfide e casi d'uso

Guida al preprocessing NLP nel machine learning. Copriamo spaCy, i transformer di Hugging Face e come funziona la tokenizzazione in casi d'uso reali.
Abid Ali Awan's photo

Abid Ali Awan

10 min

blog

Che cos'è Snowflake? Guida per principianti alla piattaforma dati cloud

Esplora le basi di Snowflake, la piattaforma dati cloud. Scopri la sua architettura, le sue funzionalità e come integrarla nelle tue pipeline di dati.
Tim Lu's photo

Tim Lu

12 min

blog

I 15 migliori server MCP remoti che ogni AI builder dovrebbe conoscere nel 2026

Scopri i 15 migliori server MCP remoti che stanno trasformando lo sviluppo AI nel 2026. Scopri come migliorano automazione, ragionamento, sicurezza e velocità dei workflow.
Abid Ali Awan's photo

Abid Ali Awan

15 min

Mostra altro