Perché il prezzo spot di AWS EC2 è superiore al prezzo su richiesta?


27

Ieri stavo provando a fornire istanze spot via Ansible e quasi tutte le mie richieste sono fallite, anche quando ho messo il mio prezzo spot == il prezzo su richiesta di quell'istanza.

Quindi, quando ho dato un'occhiata al grafico dei prezzi spot, ho trovato qualcosa di molto interessante:

inserisci qui la descrizione dell'immagine

Il prezzo spot dell'istanza in us-east-1a è più del prezzo on demand, che mi ha confuso. [infatti, circa 5 volte più in alto]

Le istanze spot non sono preferite per il basso costo? Se sì, allora perché il prezzo è superiore al prezzo su richiesta?

Secondo i documenti di AWS :

Le istanze Spot ti offrono l'accesso alla capacità Amazon EC2 non utilizzata a forti sconti rispetto ai prezzi su richiesta.

Inoltre, questo significa che le persone fanno offerte per il prezzo su richiesta? Se sì, allora perché? Non stanno meglio con un'istanza su richiesta?

O ho capito male il concetto di istanze spot?


Se il prezzo spot era sempre inferiore al prezzo on demand, perché esiste il prezzo on demand?
Zach Lipton,

2
Zach, perché Amazon può terminare la tua istanza a piacimento se c'è un miglior offerente.
Xiong Chiamiov

1
Indipendentemente dal motivo, è possibile ridurre al minimo il rischio implementando le regole delle migliori pratiche per le istanze spot - aws.amazon.com/ec2/spot/getting-started - creare la richiesta per altrettanti tipi di istanze e altrettante AZ il più possibile, in questo modo puoi mitigare la possibilità di pagare di più. Se paghi un po 'di più in una frazione di tempo e sostanzialmente meno in tutti gli altri casi, questo è comunque vantaggioso per te. Inoltre, sembra che l'algoritmo con molte piccole istanze possa essere molto più sicuro che grandi carichi di lavoro a nodo singolo aws.amazon.com/ec2/spot/instance-advisor
Petr Chloupek

Risposte:


23

Questo è in realtà un ottimo esempio di persone che abusano leggermente del posto. La gente dice "Il nostro carico di lavoro è davvero importante ma non vogliamo pagare il prezzo pieno su richiesta", quindi impostano un prezzo di offerta superiore a quello on-demand, supponendo che sia molto probabile che venga chiuso, ma che comunque vogliano ottenere il prezzo spot "più economico possibile" in offerta.

Ci sono stati casi in cui le persone entrano, ad esempio $ 1000 (mi è stato detto almeno una volta che è successo) perché vogliono il vantaggio del mercato spot. Naturalmente ad un certo punto la domanda arriva e il prezzo spot SOARS per far pagare le persone più su richiesta.

Il modo in cui funziona il mercato spot è che Amazon ha una capacità disponibile di istanze X e conta dall'alto verso il basso fino a soddisfare la necessità di tutte le istanze X. Il "prezzo", quindi, è il prezzo più basso al quale possono soddisfare tali istanze X.

Quindi immagina che Amazon abbia 10.000 istanze - beh, conteranno fino a (diciamo) $ 0,43 fino a quando non saranno soddisfatte quelle 10.000 istanze. Ma se quell'offerta scende improvvisamente a 100 casi, allora forse alcune persone mettono prezzi di offerta di $ 10.000 per i loro 100 casi, improvvisamente pagheranno quei $ 10k all'ora.

Tl; dr Comprendi come funziona lo spot e imposta un limite che sei disposto a pagare.


12

Ci sono 2 motivi per questo:

  • Molti utenti utilizzano l'istanza spot in alcuni momenti (pensa all'elaborazione batch, avvia 100 macchine come istanza spot e crunch away).

  • Per un'istanza spot non si paga il prezzo di offerta, si paga il prezzo spot corrente. Il prezzo di offerta è il punto limite. Se il prezzo spot corrente supera quello del prezzo di offerta, AWS interromperà tale istanza.

Quest'ultimo è anche il motivo per cui alcuni utenti avranno massicciamente superato i prezzi spot. Non vogliono che la loro istanza si chiuda così spesso, quindi offrono un prezzo così alto che il prezzo spot non raggiungerà mai. Dal momento che pagheranno solo il prezzo spot corrente, l'istanza sarà molto più economica del 99% delle volte.


Quindi, in questa immagine nella mia domanda, il prezzo spot è di $ 2,15 alle 18:00, giusto? il che significa che le persone stanno ancora pagando $ 2,15 per un'istanza, quando possono pagare il prezzo su richiesta. Perchè così?
Dawny33

1
vedi la mia risposta (Sto per postarlo)
Henry,

@ Dawny33 A volte il prezzo sale sopra la soglia solo per un breve periodo. Il passaggio da prezzi spot a prezzi on demand comporta la ricreazione dell'istanza su una normale istanza ec2. Se il prezzo scende di nuovo, l'istanza su richiesta è stata distrutta, nuova istanza spot, ecc ... In tal modo perdendo tempo l'istanza potrebbe essere utile. Alcune persone non penseranno che questo valga la pena e useranno solo le istanze spot
Thern,

6

Un'utile informazione per capire perché qualcuno farebbe un'offerta sul prezzo on demand può essere trovata nell'Introduzione alle istanze Spot :

Le istanze Spot possono essere utilizzate per aiutarvi a soddisfare esigenze occasionali per grandi quantità di capacità di calcolo (si noti che il limite predefinito per Istanze Spot è 100 rispetto al limite predefinito di 20 per Istanze su richiesta.) Se le esigenze sono urgenti, è possibile specificare un prezzo massimo elevato (forse anche superiore al prezzo su richiesta), che aumenterà la relativa priorità della richiesta e ti consentirà di accedere a quanta più capacità immediata possibile date altre richieste e la capacità dell'istanza Spot disponibile al momento.

Se hai un enorme picco nella domanda per il tuo servizio (forse collegato a un altro sito popolare, vedi l' effetto Slashdot ), l'offerta superiore al prezzo su richiesta per un'istanza spot ti aiuterebbe ad accedere a molte più istanze, come annotato dal documento.

Certo, questo non è sostenibile a lungo termine e otterresti un affare molto migliore per un calcolo a lungo termine semplicemente acquistando istanze su richiesta (inoltre c'è meno rischio di essere superato!).

Se ti trovi in ​​una situazione in cui hai bisogno di molta potenza di elaborazione, è più veloce , oltre a quanto potresti ottenere semplicemente acquistando istanze su richiesta, che le offerte eccessive potrebbero avere senso.


3

Se osservi attentamente i grafici, vedrai che un picco ha sempre una durata molto breve, il tempo sufficiente per consentire ai sistemi di monitoraggio automatizzati scritti dal proprietario di terminare con grazia quei sistemi. Inoltre, a volte scoprirai che il prezzo scende a 0 immediatamente dopo un picco. Questo perché tutti i sistemi in quel data center sono in uso come sistemi on demand, senza sistemi disponibili per i prezzi spot il prezzo è effettivamente zero.

Quando l'istanza spot è stata contrassegnata per la risoluzione, un messaggio che indica questo sarà disponibile sul sistema nell'URI dei metadati locale di http://169.254.169.254/latest/meta-data/spot/termination-time . Ci vorranno 3 minuti fino al termine. Più tempo sufficiente nella maggior parte dei casi per gestire automaticamente la risoluzione. Le offerte superiori al prezzo richiesto sono necessarie solo per le distribuzioni che richiedono più di qualche minuto per terminare con garbo.

Se non è possibile progettare il sistema in modo da terminare con garbo, archiviare dati, ecc. In 3 minuti, è possibile fare un'offerta superiore al prezzo richiesto per guadagnare tempo. Il sistema può anche essere progettato per monitorare in modo proattivo l'attuale prezzo a pronti e scambiarlo prima che il prezzo scenda. Ma per quei tempi, dovrai prendere una decisione commerciale su quanto vale la pena terminare con grazia.

È sciocco pagare $ 100 / ora per 4-5 ore al fine di mantenere il sistema. Tuttavia, se il sistema impiegherà 30 minuti per terminare con garbo tutti i processi, è possibile prendere una decisione aziendale su quanto vale la pena perdere potenzialmente qualsiasi dato o degradare il servizio su scala orizzontale. Un sito di e-commerce con un utile netto di $ 10.000 l'ora può certamente permettersi di pagare $ 1000 per mantenere in funzione 2 istanze spot per 15-30 minuti, aumentando i sistemi di domanda e archiviando i dati.

L'applicazione basata sul Web può utilizzare Elastic Load Balancer per aiutare a risolvere automaticamente la risoluzione. Un implementatore intelligente metterebbe in atto una serie di script per gestire l'avviso. Potrebbero mantenere 2 istanze a basso costo on demand bilanciate dal carico e quindi utilizzare fino a una mezza dozzina di sistemi a costo medio tramite istanze spot per mantenere prestazioni elevate e spendere meno di un singolo sistema on demand della stessa capacità.

Lascia 3 di loro pagando fino a $ 100 / ora e 3 di loro pagando solo fino alla metà del prezzo richiesto. Man mano che AWS termina le istanze, ELB si adeguerà automaticamente. Dare al sistema automatizzato fino a un'ora per adattarsi a soli $ 200.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.