Come utilizzare le istanze Spot AWS – Un mercato dinamico

Come utilizzare le istanze Spot AWS – Un mercato dinamico

Le istanze Spot permettono di effettuare delle offerte su delle istanze EC2 che non vengono utilizzate. Questa soluzione riduce significativamente il costo di Amazon EC2. Sono una soluzione notevolmente economica nel caso in cui si ha una certa flessibilità nello scegliere quando avviare e quando terminare le applicazioni. Ad esempio, le istanze Spot si rivelano adatte per l’analisi dei dati, i lavori in batch, l’elaborazione di sfondo e altre attività in più. Se vuoi approfondire meglio i vantaggi nell’utilizzare le Istanze Spot leggi la metafora dell’acquisto di un biglietto per un posto sul treno.

Il prezzo orario per un’istanza Spot (ogni tipo di istanza in ciascuna zona di disponibilità) è impostato da Amazon EC2 e varia a seconda:

  • della disponibilità delle istanze;
  • della richiesta delle istanze.

La richiesta di un’istanza Spot viene eseguita ogni volta che l’offerta proposta supera il prezzo dato dal corrente mercato e vi è disponibilità nel pool.

Differenze fra Istanze Spot e Istanze su richiesta

Le differenze fondamentali tra le istanze spot e le istanze On Demand sono:

  1. Potresti non utilizzare le istanze immediatamente alla richiesta.
  2. Il prezzo orario per le istanze spot varia in base alla domanda.
  3. Amazon EC2 può interrompere un’istanza Spot per il prezzo aumentato oppure per la mancanza di disponibilità.
  4. Le istanze cambiano tipologia a seconda della disponibilità.

Una strategia è lanciare un gruppo di istanze a richiesta per garantire alle proprie applicazioni un livello minimo di risorse di calcolo e integrare con le istanze spot quando si presenta l’occasione.
Un’altra strategia è lanciare istanze Spot con una richiesta di durata (noto anche Spot blocks), le quali non vengono interrotti per le modifiche del prezzo Spot.

Glossario

Prima di proseguire il tutorial è necessario prendere conoscere dei concetti fondamentali.

  • Pool di istanze Spot: Un set di istanze EC2 inutilizzate di uguale tipo, sistema operativo, zona di disponibilità e piattaforma di rete (EC2-Classic o EC2-VPC).
  • Prezzo Spot: Il prezzo di mercato attuale di un’istanza per ora, impostato da Amazon EC2 sulla base dell’ultima offerta che è stata soddisfatta. È possibile recuperare la cronologia dei prezzi spot.
  • Domanda di istanza Spot (o offerta di Spot ): Fornisce il prezzo massimo per ora (prezzo di offerta) che sei disposto a pagare per un’istanza di Spot. Se il prezzo della tua offerta supera il prezzo Spot, Amazon EC2 soddisfa richiesta. Una richiesta di istanza Spot può essere una tantum o continua. Amazon EC2 automaticamente riavvia una richiesta Spot continua dopo che l’istanza Spot associata alla richiesta è terminata. Nella richiesta di Istanza Spot puoi opzionalmente specificare la durata per le istanze spot.
  • Spot Fleet: Un set di istanze Spot che viene lanciato in base ai criteri specificati. La Spot Fleet seleziona i pool di istanze Spot che soddisfano le tue esigenze e le lancia per soddisfare il target di capacità. Con un’impostazione predefinita, le Spot Fleets mantengono il target di capacità lanciando dopo che le istanze della Spot Fleet sono terminate delle istanze in loro sostituzione. È possibile inviare una Spot Fleet come richiesta unica, che si conclude dopo che le istanze sono terminate.
  • Spot Instance interruption: Amazon EC2 interrompe o termina l’istanza Spot quando il prezzo di Spot supera il prezzo dell’offerta o non esiste più fra le istanze EC2 inutilizzate. Amazon EC2 segnala la prossima interruzione dell’istanza di Spot avvisando due minuti prima che l’istanza si arresti o termina.
  • Bid status: Fornisce informazioni dettagliate sullo stato corrente dell’offerta Spot.

Come funzionano le istanze Spot

Per utilizzare le istanze Spot, si crea una richiesta Istanza Spot o una richiesta d Spot Fleet.

La richiesta include:

  • il prezzo massimo che desideri pagare per un’ora per ogni istanza (prezzo d’offerta);
  • altri vincoli come il tipo di istanza, la Zona di Disponibilità e il Sistema Operativo necessario.

Se il prezzo della tua offerta è maggiore del prezzo corrente delle Spot per l’istanza specificata e questa è disponibile nella Zona che hai indicato, la tua richiesta sarà soddisfatta immediatamente.

In caso contrario, la richiesta verrà soddisfatta quando il prezzo della Spot scenderà al di sotto del prezzo della tua offerta oppure quando questa sarà disponibile.

Se si utilizzano le istanze Spot bisogna essere pronti possibili interruzioni.

Amazon EC2, infatti, può interrompere l’istanza Spot quando:

  • il prezzo delle Spot aumenta al di sopra del prezzo dell’offerta;
  • aumenta la domanda di istanze Spot;
  • la disponibilità di istanze Spot diminuisce.

Comunque, in caso di interruzione Amazon EC2 allerta con un avviso due minuti prima che l’istanza si arresti o termini.

Quando hai un istanza con un disco EBS collegato, se essa è associata ad una richiesta di Istanza Spot non è possibile interromperla e poi riavviarla, ma puoi solo terminarla o farne il reboot.
La chiusura di un’istanza Spot al livello di Sistema Operativo provoca la terminazione dell’istanza Spot in generale.
Non è possibile modificare questo modalità.

Market Spot: domanda e offerta

AWS stima continuamente quante istanze Spot sono disponibili in ogni pool di istanze Spot, controlla le offerte che sono state fatte per ogni pool e fornisce le istanze Spot disponibili a quegli utenti che hanno presentato l’offerta maggiore.

Il prezzo per il “pool” è dato dall’offerta più bassa soddisfatta per quel pool.

Quindi, il prezzo Spot è il prezzo al di sopra del quale è necessario fare un’offerta per soddisfare immediatamente la richiesta per un’istanza Spot singola.

Ad esempio, supponiamo di voler fare una richiesta d’istanza Spot e che il corrispondente pool di istanze Spot di tuo interesse ( per grandezza e tipologia) abbia solo 5 istanze spot disponibili per la vendita.

Il tuo prezzo d’offerta è di $ 0,10, che è anche il prezzo Spot corrente.
La tabella seguente mostra le offerte correnti, classificate in ordine decrescente:

  • Le offerte 1-5 sono soddisfatte. L’offerta 5, che è l’ultima offerta soddisfatta, imposta il prezzo spot a $ 0.10. L’offerta 6 non è soddisfatta. Le offerte 3-5, che condividono lo stesso prezzo di offerta di 0,10 dollari, sono classificate in ordine casuale.
OFFERTA PREZZO D’OFFERTA PREZZO SPOT CORRENTE NOTE
1 $ 1.00 $ 0.10  
2 $ 1.00 $ 0.10
3 $ 0.10 $ 0.10
4 $ 0.10 $ 0.10 La tua offerta
5 $ 0.10 $ 0.10 Ultima offerta soddisfatta, che imposta il prezzo Spot. Tutti pagano lo stesso prezzo Spot per il periodo.
 — Valore di soglia della capacità Spot
6 $ 0.05

Immaginiamo che la dimensione di questo pool scenda da 5 a 3. Le offerte 1-3 saranno comunque soddisfatte.

L’Offerta 3, l’ultima offerta soddisfatta ha il prezzo Spot di $ 0.10. Anche le offerte 4-5 sono di $ 0.10 ma non potranno essere soddisfatte perché il pool dispone solo di 3 istanze.

Come vedi, anche se il prezzo Spot non è cambiato, due delle offerte ( sia l’ultima in ordine cronologico a prezzo di costo che quella che proponeva un prezzo minore), inclusa la tua, non sono più soddisfatte perché l’offerta Spot è diminuita.

OFFERTA PREZZO DI OFFERTA PREZZO SPOT CORRENTE NOTE
1 $ 1.00 $ 0.10
2 $ 1.00 $ 0.10
3 $ 0.10 $ 0.10 Ultima offerta soddisfatta, che imposta il prezzo Spot. Tutti pagano lo stesso prezzo spot per il periodo.
Valore di soglia della capacità Spot
4 $ 0.10 La tua offerta
5 $ 0.10
6 $ 0.05

Per far si che la tua richiesta Spot sia soddisfatta per un’unica istanza di questo pool, devi effettuare un’offerta superiore al prezzo attuale di Spot di $ 0.10, ad esempio 1 $.

Se fai un’offerta di $ 0.101, la tua richiesta verrà soddisfatta, l’istanza Spot per l’offerta 3 sarebbe interrotta e il prezzo spot di mercato diventerà $ 0.101. Se invece fai un’offerta di $ 2.00, l’istanza Spot per l’offerta 3 (0,10$) verrà interrotta e il prezzo spot di mercato diventerebbe $ 1.00 (il prezzo per l’offerta 2 in quanto è il minimo tra le offerte proposte nel pool).

OFFERTA PREZZO DI OFFERTA PREZZO SPOT CORRENTE NOTE
1 $ 1.00 $ 1.00  
2 $ 1.00 $ 1.00
3 <$ 2.00 $ 1.00 Ultima offerta entrante soddisfatta, che imposta il prezzo minimo di mercato tra quelle disponibili e le offerte proposte.
4 $ 0.10 $ 0.10 Se l’offerta fatta è $2,00 questa viene interrotta in quanto sono disponibili sono 3 istanze Spot per questo pool.

Naturalmente, se le istanze non sono disponibili nel pool il prezzo dell’offerta non è influente.

Avvio di istanze Spot in gruppo

Richiedi il lancio di un gruppo di Istanze Spot in Amazon EC2 con la funzione “launch group” solamente se possono essere lanciate tutte insieme. Infatti, se il servizio delle Istanze Spot andrà a terminare un’istanza inclusa nel “lancio di gruppo”(perchè magari è salito il prezzo di mercato delle Spot rispetto alla tua offerta), la funzione le terminerà tutte.Verifica pertanto se la richiesta di “launch group” non potrebbe ledere alle altre istanze che ti interessano.

Qualora invece fossi tu a terminare una o più istanze in un launch group, Amazon EC2 non terminerà anche le altre istanze rimanenti nel launch group.

Scegliere questa opzione può avere una sua utilità, però tieni presente che questo vincolo comporta sia una riduzione nelle possibilità che la tua richiesta di istanze Spot venga soddisfatta sia un aumento delle probabilità che le Istanze Spot vengano terminate.

Nel caso in cui volessi implementare nuove istanze Spot nel “launch group” esistente, potrai effettuare una richiesta di offerta per le Spot interessate e specificarlo. Se la richiesta sarà accolta, le nuove istanze verranno aggiunte al launch group che hai precedentemente specificato. Allo stesso modo, se una delle ultime Istanze Spot aggiunte nel gruppo verrà terminata tutte le istanze dello stesso verranno terminate, sia quelle lanciate dalla prima richiesta sia quelle della seconda.

Lancio di Istanze Spot in un gruppo di Zone di Disponibilità

Puoi specificare un gruppo di Zone di Disponibilità a te utili in cui necessiti che le istanze vengano lanciate (per esempio per cause di conformità territoriali) nella tua richiesta di offerta di Istanze Spot.

Amazon EC2, non interromperà tutte le istanze Spot in un gruppo di zone di disponibilità contemporaneamente. Difatti, qualora Amazon EC2 dovesse interrompere una delle istanze Spot nel gruppo di zone di disponibilità specificato, le altre resteranno comunque in esecuzione.

Anche se questa opzione può essere utile, con questo limitazione c’è la possibilità di ridurre la probabilità che la tua richiesta di istanza Spot venga soddisfatta a causa di un minore disponibilità di Istanze Spot presenti nel mercato.

Se specificherai solamente un gruppo di Zone di Disponibilità, ma nella richiesta di offerta dell’Istanza Spot non si specifica una Zona di Disponibilità, l’Istanza verrà lanciata con le impostazioni di default del network EC2-Classic, della VPC di default o VPC di nondefault.

  • EC2-Classic
    Amazon EC2 trova la Zona di Disponibilità più economica della Regione e lancia le istanze Spot in quella Zona di Disponibilità. Questo avviene, se in quella Zona di Disponibilità l’offerta più bassa specificata nel gruppo è comunque superiore al prezzo Spot di mercato. Amazon EC2 attende fino a quando c’è abbastanza capacità per lanciare le istanze Spot tutte insieme, a patto però che il prezzo Spot di mercato rimanga inferiore rispetto all’offerta minima del gruppo.
  • VPC di Default
    Amazon EC2 utilizza la Zona di Disponibilità per la sottorete specificata, o qualora non si specifichi la sottorete, seleziona una Zona di Disponibilità e di default anche la sua sottorete, ma questa potrebbe non essere la Zona di Disponibilità più conveniente per i prezzi di mercato delle Istanze Spot. Ricorda, se elimini la sottorete di default in una Zona di Disponibilità, devi successivamente specificarne una differente.
  • VPC Nondefault
    Amazon EC2 utilizza la Zona di disponibilità per la sottorete specificata.

Avvio di istanze di spot in un VPC

Per poter sfruttare le funzionalità di EC2-VPC quando vengono utilizzate le Istanze Spot, specifica nella richiesta Spot che le Spot devono essere lanciate in una specifica VPC.

Inoltre è possibile specificare una sottorete per le istanze Spot, nello stesso modo in cui si specifica una sottorete per le istanze On Demand.

Il processo per effettuare una richiesta di offerta per le Istanze Spot con la specifica di lancio in una determinata VPC è lo stesso che avviene nelle EC2-Classic. Ci sono solo le seguenti differenze:

  • Devi basare la tua offerta sulla cronologia dei prezzi di mercato delle istanze Spot per le VPC.
  • [VPC default] Se desideri che l’istanza Spot sia lanciata in una specifica Zona di Disponibilità a basso prezzo, devi specificare nella richiesta di istanza la sottorete corrispondente. Se non viene specificata una sottorete, Amazon EC2 ne seleziona una per te, e la Zona di disponibilità per questa sottorete potrebbe non avere il prezzo Spot più basso.
  • [VPD Nondefault] È necessario specificare la sottorete per l’istanza Spot.

Cerchi una soluzione che ti gestisca automaticamente il mercato delle Istanze Spot e ti fornisca una capacità computazionale continua? Scopri Spotinst.

Comments are closed.

Utilizzando il sito, accetti l'utilizzo dei cookie da parte nostra. maggiori informazioni

Questo sito utilizza i cookie per fornire la migliore esperienza di navigazione possibile. Continuando a utilizzare questo sito senza modificare le impostazioni dei cookie o cliccando su "Accetta" permetti il loro utilizzo.

Chiudi