Come richiedere un’istanza Spot

Come richiedere un’istanza Spot

Le istanze Spot sono macchine virtuali AWS disponibili ad un prezzo ridotto in quanto sono risorse non utilizzate, cioè server cloud non attivi.
Il mercato è molto vantaggioso, i costi di EC2 infatti vengono incredibilmente ridotti. c’è uno Spot price gestito direttamente da Amazon sulla base dell’offerta e della domanda da parte degli utenti e sulla base delle risorse inutilizzate.
L’esecuzione dell’istanza quindi dipenderà sia dalla disponibilità della capacità e sia dal prezzo che viene offerto. Questo deve superare il prezzo stabilito.
Una strategia per sfruttare la stabilità delle On-Demand e l’economicità delle Spot è utilizzarle entrambe, lanciando un gruppo principale on-demand, mantenendo così un livello minimo di risorse garantito, e integrare le Sopt quando se ne presenta la possibilità.
In questo tutorial ci occuperemo della Richiesta delle Istanze Spot, una tantum o persistente.
Inoltre, ci soffermeremo sulle diverse impostazioni, in particolare sulla possibilità di specificare una durata, e vedremo come proprio questa indicazione può costituire una possibile strategia per bypassare l’interruzione di Amazon qualora il prezzo delle istanze muti.

Richieste di istanze Spot

Per poter utilizzare le istanze Spot, si deve creare una richiesta che deve contenere informazioni quali:

  • numero di istanze;
  • tipo di istanza;
  • zona di disponibilità;
  • prezzo massimo che si è disposti a pagare per un’ora di istanza.

Se il tuo prezzo massimo supera il prezzo Spot corrente, Amazon EC2 soddisfa immediatamente la tua richiesta, naturalmente se la tipologia è disponibile.
In caso contrario, Amazon EC2 attende fino a quando la richiesta non può essere evasa oppure finché non viene annullata.

istanza spot lifecycle

 

Nell’illustrazione viene mostrato il funzionamento delle richieste Spot.
N.B l’interruzione di un’istanza Spot dipende dal tipo di richiesta (singola o persistente) e dal tipo di interruzione (hibernate, stop, o terminate).
Se la richiesta è una richiesta persistente, verrà riaperta dopo l’interruzione.non appena disponibile.

Stati di richiesta

Una richiesta di istanza Spot può presentare diversi stati:

  • Open: è in attesa di essere soddisfatta.
  • Active: è soddisfatta e ha un’istanza Spot associata.
  • Failed: ha uno o più parametri non validi.
  • Closed: è stata interrotta o terminata.
  • Cancelled: annullata o è scaduta.

L’illustrazione seguente rappresenta le diverse transizioni tra gli stati della richiesta.
Come si può vedere le transizioni dipendono dal tipo di richiesta (una tantum o persistente).

stati richiesta spot

Una richiesta una tantum, anche detta Spot Fleet, rimane attiva fino a quando Amazon EC2 la avvia, fino a quando scade o l’utente stesso la annulla. Se il prezzo Spot impostato supera il prezzo massimo da te satabilito o se la dimensione richiesta non è disponibile sul mercato, la tua Istanza Spot viene terminata e la richiesta cancellata.

Una richiesta persistente, anche detta Spot Block, se è soddisfatta rimane invece attiva finché non scade o non venie cancellata.
Se il prezzo Spot supera il prezzo massimo o la capacità non è disponibile, la tua istanza viene momentaneamente interrotta. Dopo l’interruzione, quando il prezzo massimo supera il prezzo Spot o la capacità diventa nuovamente disponibile, viene avviata (se arrestata), viene ripresa (se ibernata) o viene riaperta (se terminata) e Amazon EC2 avvia una nuova istanza Spot.

Si può avere traccia delle istanze Spot, di quelle richieste e di quelle avviate attraverso lo stato che queste presentano.

Durata specifica

E’ importante evidenziare che Amazon EC2 non termina le istanze Spot quando il prezzo Spot cambia se ne viene specificata una durata.
Le Spot, infatti, si rivelano ideali per quei lavori in cui è possibile determinare la conclusione, come ad esempio l’elaborazione in batch, la codifica, il rendering, la modellazione e l’analisi e ancora l’integrazione.

È possibile specificare una durata da 1 a 6 ore. Il prezzo dipenderà appunto dal tempo che si è scelto.
Se la richiesta con durata viene soddisfatta, il prezzo per la tua istanza sarà fisso e rimarrà in vigore fino a quando l’istanza non sarà terminata. Quindi ti verrà addebitato il prezzo per ogni ora o ora parziale in cui l’istanza è rimasta in esecuzione.

In particolare, il timing viene avviato non appena si riceve l’ID istanza.
L’istanza Spot viene eseguita fino alla sua conclusione o al termine del periodo che hai scelto. Alla fine del tempo Amazon EC2 contrassegna l’istanza per la terminazione e fornisce una notifica due minuti prima che termini.

Lanciare istanze con specifica durata utilizzando la Console

Puoi selezionare il tipo di richiesta appropriato. Per ulteriori informazioni passa al paragrafo Creazione di una Richiesta di Istanza Spot.

Per avviare istanze Spot con una durata specificata utilizzando la CLI di AWS

Per specificare una durata per le istanze Spot, includere l’opzione
–block-duration-minutes con il comando request-spot-instances.
Ad esempio, il seguente comando crea una richiesta Spot che avvia istanze che saranno eseguite per due ore:
aws ec2 request-spot-instances –instance-count 5 –block-duration-minutes 120 –type “one-time” –launch-specification file://specification.json

Recupera il costo delle istanze Spot con specifica durata utilizzando la CLI di AWS

Utilizza il comando describe-spot-instance-requests. Puoi trovare l’informazione nel campo actualBlockHourlyPrice field.

Specificare una locazione per le istanze Spot

È possibile eseguire un’istanza Spot sull’hardware single tentant. Questa tipologia di istanze Spot dedicate sono fisicamente isolate da quelle che appartengono ad altri account AWS.

Per eseguire un’istanza Spot dedicata, esegui una delle seguenti operazioni:

Specifica una tenancy dedicata quando crei la richiesta di istanza Spot.
Richiedi un’istanza Spot in una VPC con una tenancy di istanza dedicata.
I seguenti tipi di istanze supportano istanze Spot dedicate.

  • Current Generation
    c3.8xlarge
    c4.8xlarge
    c5.18xlarge
    d2.8xlarge
    g2.8xlarge
    i2.8xlarge
    i3.16xlarge
    m4.10xlarge
    m4.16xlarge
    p2.16xlarge
    r3.8xlarge
    r4.16xlarge
    x1.32xlarge
  • Previous Generation
    cc2.8xlarge
    cr1.8xlarge

Service-linked role per richieste di istanze Spot

Amazon EC2 crea un service-linked role quando vengono richieste istanze Spot.
Tutte le policy di accesso che Amazon EC2 necessita per richiamare altri servizi AWS per conto dell’utente sono incluse in questa modalità.
Amazon EC2 utilizza il service-linked role denominato AWSServiceRoleForEC2Spot per completare le seguenti azioni:

  • ec2: DescribeInstances – Descrivi le istanze Spot
  • ec2: StopInstances – Interrompi istanze Spot
  • ec2: StartInstances – Avvia istanze Spot

Se vengono specificati gli snapshot EBS crittografati per le istanze Spot e vengono utilizzate le chiavi KMS personalizzate per la crittografia, bisogna concedere al ruolo AWSServiceRoleForEC2Spot l’accesso a queste chiavi in modo che Amazon EC2 possa avviare istanze Spot a nome dell’utente.
Il principale è l’Amazon Resource Name (ARN) del ruolo AWSServiceRoleForEC2Spot.

Creazione di una richiesta istanza Spot

Il processo per la richiesta di un’istanza Spot è molto simile a quello per l’avvio di un’istanza On-Demand.
Dopo aver inviato la richiesta, non è più possibile modificarne i parametri e neanche il prezzo massimo.

Se contemporaneamente richiedi più istanze Spot, Amazon EC2 procede nella creazione separatamente così da monitorare lo stato di ciascuna.

Prerequisiti

Prima di iniziare, decidi il prezzo massimo, il numero di istanze Spot che desideri e il tipo di istanza da utilizzare.

Crea una richiesta di istanza Spot con la Console

Apri la console Amazon EC2 su https://console.aws.amazon.com/ec2/.

Nel riquadro di navigazione, selezionare Spot Requests.

Se non hai mai aperto Spot Instances, vedrai una pagina di benvenuto; scegli Get started.. Altrimenti, selezionare Request Spot Instances.

Per Request type, l’impostazione di default è Request, che specifica una richiesta Spot una-tantum creata.

Per attivare una richiesta Spot persistente, seleziona Reserve for duration e seleziona il numero di ore per il completamento del lavoro.

Per Target capacity, inserisci il numero di unità da richiedere. È possibile scegliere le istanze o le caratteristiche delle performance importanti per il workload dell’applicazione, ad esempio CPU, memoria e storage.

Per Requirements, effettua le seguenti operazioni:

  • [Spot Fleet] (Opzionale) Per il il lancio template, scegli Launch template.
  • AMI, scegli una tra le Amazon Machine Images (AMI) di base fornite da AWS oppure Use custom AMI per poterla personalizzare e importarla.
  • Instance type, scegli Select. Selezionare i tipi di istanza con le specifiche hardware minime necessarie (CPU, memoria e storage).
  • Network, il tuo account supporta solo le piattaforme EC2-Classic e EC2-VPC o solo la piattaforma EC2-VPC.
  • [VPC esistente] Seleziona VPC.
  • [Nuovo VPC] Seleziona Create new VPC per accedere alla console di Amazon VPC. Al termine, torna alla procedura guidata e aggiorna l’elenco.
  • [EC2-Classic] Seleziona EC2-Classic
  • (Facoltativo) Per Availability Zones, l’impostazione predefinita prevede che AWS scelga le zone di disponibilità. Se preferisci, puoi specificare zone di disponibilità.
  • [EC2-VPC] Seleziona una o più Availability Zones. Se si dispone di più subnet in una zona di disponibilità, seleziona la sottorete appropriata da Subnet. Se vuoi aggiungere sottoreti, seleziona Create new subnet. Al termine, torna alla procedura guidata e aggiornare l’elenco.
  • [EC2-Classico] Seleziona Select specific zone/subnet quindi, seleziona una o più zone di disponibilità.
  • (Facoltativo) Per aggiungere capacità di storage, specifica ulteriori volumi di istanze o EBS, a seconda del tipo di istanza. Puoi anche abilitare l’ottimizzazione EBS.
  • (Facoltativo) Di default, il monitoraggio di base è abilitato per le tue istanze. Per consentire il monitoraggio dettagliato, seleziona Enable CloudWatch detailed monitoring.
  • (Facoltativo) Per eseguire un’istanza Spot dedicata, scegli Dedicated – run a dedicated instance .
  • Per Security groups, seleziona uno o più security group.
  • [EC2-VPC] Per connettersi alle istanze in una VPC, abilita Auto-assign IPv4 Public IP.
  • (Facoltativo) Per connettersi alle istanze, specificare la coppia di chiavi per il nome della Key pair name.
  • (Facoltativo) Per avviare le istanze Spot con un ruolo IAM, specificare il ruolo IAM per IAM instance profile.
  • (Facoltativo) Per eseguire uno script di avvio, copialo in User data.
  • [Spot Fleet] Per aggiungere un tag, seleziona Add new tag e digitala chiave e il valore per il tag. Ripeti per ogni tag.

Per evadere le richieste Spot, procedi come segue:

  • [Spot Fleet] Per Allocation strategy, scegli la strategia che soddisfa le tue esigenze.
  • [Spot Fleet] Per Maximum price, è possibile utilizzare il prezzo massimo predefinito (il prezzo base On-Demand) o specificare il prezzo massimo che si è disposti a pagare. Le istanze Spot non vengono avviate se il prezzo massimo è inferiore al prezzo Spot per tutti i tipi di istanza selezionati.
  • (Facoltativo) Per creare una Request valid from (Richiesta valida a partire dalle), solo durante un periodo di tempo specifico, modificare Richiesta valida da e Richiesta valida fino a.
  • [Spot Fleet] Di default, le istanze Spot vengono interrotte quando la richiesta scade. Per mantenerle in esecuzione dopo la scadenza della richiesta, deseleziona Terminate instances at expiration.

(Facoltativo) Per registrare le istanze Spot con un servizio di bilanciamento del carico, seleziona Receive traffic from one or more load balancers e seleziona uno o più Classic Load Balancer o target groups.
(Facoltativo) Per scaricare una copia della configurazione di avvio da utilizzare con la CLI di AWS, seleziona JSON config.

Scegli Launch.

[Spot Fleet] Il tipo di richiesta è fleet. Quando la richiesta è soddisfatta, vengono aggiunte altre richieste di tipo istanza, dove lo stato è active e lo stato è fulfilled.

[Spot block] Il tipo di richiesta è block e lo stato iniziale è open. Quando la richiesta è soddisfatta, lo stato è active e lo stato è fulfilled.

Crea una richiesta di istanza Spot con la CLI di AWS (Command Line Interface)

  • Utilizza il comando request-spot-instances per creare una richiesta unica:aws ec2 request-spot-instances –instance-count 5 –type “one-time” –launch-specification file://specification.json
  • Utilizza il comando request-spot-instances per creare una richiesta persistente:aws ec2 request-spot-instances –instance-count 5 –type “persistent” –launch-specification file://specification.json

Se si scarica un file “launch specification” dalla console, è necessario utilizzare il comando request-spot-fleet (la console specifica una richiesta Spot utilizzando una Spot Fleet).

Amazon EC2 avvia la tua istanza Spot quando il prezzo massimo supera il prezzo Spot e la capacità è disponibile. L’istanza Spot viene eseguita fino a quando non viene interrotta o tu la interrompi tu stesso.

Utilizza il comando describe-spot-instance-requests per monitorare la richiesta di istanza Spot:
aws ec2 describe-spot-instance-requests –spot-instance-request-ids sir-08b93456

Vuoi conoscere meglio il mercato delle istanze Spot? Altri post fanno per te!

Quando utilizzare un’istanza Spot AWS?
Come utilizzare le istanze Spot AWS – Un mercato dinamico

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