Le migliori pratiche per Amazon EC2 Spot - Amazon Elastic Compute Cloud

Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.

Le migliori pratiche per Amazon EC2 Spot

Amazon EC2 fornisce l'accesso alla capacità di EC2 elaborazione inutilizzata Cloud AWS tramite istanze Spot con un risparmio fino al 90% rispetto ai prezzi on demand. L'unica differenza tra le istanze on demand e le istanze Spot è che le istanze Spot possono essere interrotte da AmazonEC2, con un preavviso di due minuti, se Amazon EC2 deve recuperare la capacità. Per garantire la migliore esperienza con le istanze Spot, è importante comprendere e applicare le migliori pratiche per il loro utilizzo.

Istanze spot sono consigliate per applicazioni stateless, con tolleranza ai guasti, flessibili. Ad esempio, le istanze Spot sono ideali per big data, carichi di lavoro containerizzati, CI/CD, server web stateless, elaborazione ad alte prestazioni () e carichi di lavoro di rendering. HPC

Durante l'esecuzione, Istanze spot sono esattamente identici a Istanze on demand. Tuttavia, Spot non garantisce la possibilità di continuare a eseguire le istanze abbastanza a lungo da completare i carichi di lavoro. Inoltre, Spot non garantisce di poter avere immediatamente a disposizione le istanze che si stanno cercando o che sia sempre possibile ottenere la capacità aggregata richiesta. Inoltre, interruzioni e capacità delle istanze spot possono cambiare nel tempo perché la disponibilità delle istanze spot varia in base all'offerta e alla domanda e le prestazioni passate non sono una garanzia di risultati futuri.

Istanze spot non sono adatte per carichi di lavoro inflessibili, stateful, senza tolleranza ai guasti o strettamente accoppiati tra nodi di istanze. Non consigliamo le istanze Spot per carichi di lavoro intolleranti a periodi occasionali in cui l'intera capacità prevista non è completamente disponibile. Se da un lato seguire le best practice di Spot, che mirano alla flessibilità sui tipi di istanze e sulle zone di disponibilità, offre le migliori possibilità di elevata disponibilità, dall'altro non vi è alcuna garanzia che la capacità sarà disponibile, in quanto i picchi di domanda di istanze on demand possono interrompere i carichi di lavoro sulle istanze Spot.

Sconsigliamo vivamente di utilizzare le istanze Spot per questi carichi di lavoro o di effettuare il failover sulle istanze on demand per gestire interruzioni o periodi di indisponibilità. Il failover sulle istanze on demand può causare inavvertitamente interruzioni per le altre istanze Spot. Inoltre, se le istanze Spot per una combinazione di tipo di istanza e zona di disponibilità vengono interrotte, potrebbe diventare difficile ottenere istanze on demand con la stessa combinazione.

A prescindere che l'utente conosca già Spot o sia la prima volta che utilizza le istanze spot, se si verificano problemi di interruzioni o disponibilità delle istanze spot è consigliabile seguire queste best practice per ottenere la migliore esperienza di utilizzo del servizio Spot.

Preparazione di singole istanze per le interruzioni

Il modo migliore per gestire nel modo appropriato le interruzioni delle istanze spot è progettare l'applicazione affinché sia tollerante ai guasti. A tal fine, puoi sfruttare i consigli sul ribilanciamento delle istanze e gli avvisi di EC2 interruzione delle istanze Spot.

Una raccomandazione di ribilanciamento dell'EC2istanza è un segnale che avvisa l'utente quando un'istanza Spot è a rischio elevato di interruzione. Il segnale ti dà la possibilità di gestire l'istanza spot in modo proattivo rispetto all'avviso di interruzione dell'istanza spot con preavviso di due minuti. È possibile decidere di ribilanciare il carico di lavoro su Istanze spot nuove o esistenti che non presentano un rischio elevato di interruzione. Abbiamo semplificato l'utilizzo di questo segnale utilizzando la funzionalità di ribilanciamento della capacità nei gruppi e nella flotta di Auto Scaling. EC2

Un avviso di interruzione di un'istanza Spot è un avviso che viene emesso due minuti prima che Amazon EC2 interrompa un'istanza Spot. Se il carico di lavoro è "flessibile nel tempo", puoi anche configurare le istanze spot affinché vengano arrestate o ibernate, anziché terminate, quando vengono interrotte. Amazon interrompe o iberna EC2 automaticamente le istanze Spot in caso di interruzione e riprende automaticamente le istanze quando è disponibile capacità.

Ti consigliamo di creare una regola in Amazon EventBridge che acquisisca i consigli di ribilanciamento e le notifiche di interruzione, quindi attivi un checkpoint per l'avanzamento del carico di lavoro o gestisca correttamente l'interruzione. Per ulteriori informazioni, consulta Monitorare i segnali di raccomandazione di ribilanciamento. Per un esempio dettagliato che illustra come creare e utilizzare le regole degli eventi, consulta Taking Advantage of Amazon EC2 Spot Instance Interruption Notices.

Per ulteriori informazioni, consulta EC2raccomandazioni per il ribilanciamento delle istanze e Interruzioni dell'istanza spot.

Essere flessibili riguardo tipi di istanza e zone di disponibilità

Un pool di capacità Spot è un insieme di EC2 istanze inutilizzate con lo stesso tipo di istanza (ad esempiom5.large) e zona di disponibilità (ad esempio, us-east-1a). È necessario essere flessibili sui tipi di istanza richiesti e sulle zone di disponibilità in cui è possibile distribuire il carico di lavoro. Questo offre a Spot una migliore possibilità di trovare e allocare la quantità di capacità di elaborazione richiesta. Ad esempio, non richiedere solo c5.large se sei disposto a usare grandi quantità delle famiglie c4, m5 e m4.

A seconda delle esigenze specifiche, puoi valutare su quali tipi di istanza puoi essere flessibile per soddisfare i requisiti di calcolo. Se un carico di lavoro può essere scalato verticalmente, è necessario includere tipi di istanze più grandi (maggiore quantità e memoria) nelle richieste. vCPUs Se puoi scalare solo orizzontalmente, devi includere tipi di istanza di vecchia generazione in quanto sono meno richiesti dai clienti on demand.

Una buona regola è quella di essere flessibili su almeno 10 tipi di istanza per ogni carico di lavoro. Inoltre, assicurati che tutte le zone di disponibilità siano configurate per l'uso nel tuo carico di lavoro VPC e selezionate per il tuo carico di lavoro.

Utilizzo della selezione del tipo di istanza basata su attributi

Con la selezione del tipo di istanza basata sugli attributi, puoi specificare gli attributi dell'istanza, come memoria e archiviazionevCPUs, per il carico di lavoro che desideri eseguire. EC2Auto Scaling or EC2 Fleet identificherà e avvierà quindi automaticamente le istanze che corrispondono agli attributi specificati. Ciò elimina lo sforzo necessario per selezionare manualmente tipi di istanze specifici, il che richiede una comprensione approfondita dell'offerta di ciascun tipo di istanza.

Inoltre, la selezione del tipo di istanza basata sugli attributi consente di utilizzare automaticamente i tipi di istanza appena rilasciati non appena diventano disponibili. Ciò garantisce un accesso senza interruzioni a una gamma sempre più ampia di capacità di istanze Spot.

La selezione del tipo di istanza basata sugli attributi è ideale per carichi di lavoro e framework che possono essere flessibili riguardo ai tipi di istanza su cui vengono eseguite, come High Performance Computing () e carichi di lavoro di big data. HPC

Per ulteriori informazioni, consulta Creare un gruppo di istanze miste utilizzando la selezione del tipo di istanza basata sugli attributi nella Amazon Auto Scaling User EC2 Guide e in questa guida. Specificare gli attributi, ad esempio la selezione del tipo per EC2 Fleet o Spot Fleet.

Usa i punteggi di posizionamento Spot per identificare regioni e zone di disponibilità ottimali

Le istanze Spot sono EC2 capacità inutilizzata e tale capacità varia in base EC2 alla domanda e all'offerta. Di conseguenza, potresti non ottenere sempre la capacità Spot esatta di cui hai bisogno in una posizione specifica in un momento specifico. Per mitigare questa imprevedibilità, puoi utilizzare la funzione Spot placement score. Questa funzione fornisce consigli per le regioni o le zone di disponibilità che hanno maggiori probabilità di avere una capacità sufficiente per soddisfare le esigenze di capacità Spot senza che sia necessario avviare prima le istanze Spot in quelle località.

Il punteggio di posizionamento Spot viene utilizzato al meglio per carichi di lavoro che possono essere flessibili per quanto riguarda i tipi di istanze e la regione o la zona di disponibilità che possono utilizzare. Tutto ciò che devi fare è specificare la capacità Spot di cui hai bisogno, i requisiti del tipo di istanza e se desideri ricevere consigli per le regioni o le zone di disponibilità. In cambio, riceverai un punteggio compreso tra 1 e 10 per ogni regione o zona di disponibilità, che indica la probabilità di fornire correttamente la capacità Spot richiesta in quella località. Un punteggio pari a 10 indica che è molto probabile che la richiesta Spot abbia successo.

È importante notare che un punteggio di posizionamento Spot è una point-in-time raccomandazione, poiché la capacità può variare nel tempo. Non garantisce la capacità disponibile né prevede il rischio di interruzione.

Puoi utilizzare la funzione Spot Placement Score nella EC2 console Amazon AWS CLI, oppure unSDK. Per ulteriori informazioni, consulta Punteggio di posizionamento spot.

Usa i gruppi di EC2 Auto Scaling o EC2 Fleet per gestire la tua capacità aggregata

Spot ti consente di pensare in termini di capacità aggregata, in unità che includono memoriavCPUs, storage o throughput di rete, anziché pensare in termini di singole istanze. I gruppi Auto Scaling e EC2 Fleet consentono di avviare e mantenere una capacità target e di richiedere automaticamente le risorse per sostituire quelle interrotte o terminate manualmente. Quando configuri un gruppo di Auto Scaling o un EC2 parco veicoli, devi solo specificare i tipi di istanze e la capacità target in base alle esigenze dell'applicazione. Per ulteriori informazioni, consulta i gruppi Auto Scaling nella Amazon Auto EC2 Scaling User Guide Crea una EC2 flotta e in questa guida per l'utente.

Utilizzo della strategia di allocazione ottimizzata per prezzo e capacità

Le strategie di allocazione nei gruppi Auto Scaling consentono di effettuare il provisioning della capacità target senza la necessità di cercare manualmente i pool di capacità spot con capacità inutilizzata. È consigliabile utilizzare la strategia price-capacity-optimized perché questa effettua automaticamente il provisioning delle istanze dai pool di capacità spot più disponibili che hanno anche il prezzo più basso possibile. Puoi anche sfruttare la strategia di price-capacity-optimized allocazione in Fleet. EC2 Poiché la capacità dell'istanza spot viene restituita da pool con capacità ottimale, ciò riduce la possibilità che le istanze spot vengano recuperate. Per ulteriori informazioni sulle strategie di allocazione, consulta le istanze Spot nella Amazon Auto EC2 Scaling User Guide Quando i carichi di lavoro hanno un costo di interruzione elevato e in questa guida per l'utente.

Utilizza AWS servizi integrati per gestire le tue istanze Spot

Altri AWS servizi si integrano con Spot per ridurre i costi complessivi di elaborazione senza la necessità di gestire le singole istanze o flotte. Ti consigliamo di prendere in considerazione le seguenti soluzioni per i tuoi carichi di lavoro applicabili: AmazonEMR, Amazon Elastic Container Service AWS Batch, Amazon Elastic Kubernetes Service, Amazon e SageMaker Amazon AWS Elastic Beanstalk. GameLift Per ulteriori informazioni sulle best practice di Spot con questi servizi, consulta il sito Web Amazon EC2 Spot Instances Workshops.

Qual è il metodo di richiesta Spot migliore da utilizzare?

Utilizza la tabella seguente per determinare quale utilizzare API per la richiesta di istanze Spot.

API Quando usarla? Caso d'uso Dovrei usare questo? API

CreateAutoScalingGroup

  • Sono necessarie più istanze con una configurazione singola o mista.

  • Vuoi automatizzare la gestione del ciclo di vita tramite un sistema configurabile. API

Crea un gruppo Auto Scaling che gestisce il ciclo di vita delle istanze mantenendo il numero di istanze desiderato. Supporta il dimensionamento orizzontale (aggiunta di più istanze) tra limiti minimi e massimi specificati.

CreateFleet
  • Sono necessarie più istanze con una configurazione singola o mista.

  • Vuoi gestire autonomamente il ciclo di vita dell'istanza.

  • Se non hai bisogno di scalabilità automatica, ti consigliamo di utilizzare un parco di tipo instant.

Crea una flotta di istanze on demand e istanze Spot in un'unica richiesta, con più specifiche di lancio che variano in base al tipo di istanza, alla zona di disponibilità o alla sottorete. AMI La strategia di allocazione delle istanze spot è per impostazione predefinita lowest-price per unità, ma puoi modificarla in price-capacity-optimized, capacity-optimized o diversified.

Sì: in modalità instant se non occorre il dimensionamento automatico

RunInstances
  • Stai già utilizzando l'opzione RunInstances API per avviare le istanze On-Demand e desideri semplicemente passare all'avvio delle istanze Spot modificando un singolo parametro.

  • Non sono necessarie più istanze con diversi tipi di istanza.

Avvia un numero specifico di istanze utilizzando un tipo di istanza e unoAMI.

No, perché RunInstances non consente tipi di istanze misti in una singola richiesta

RequestSpotFleet
  • Sconsigliamo vivamente di utilizzarlo RequestSpotFleet API perché è un'eredità API senza investimenti pianificati.

  • Se desideri gestire il ciclo di vita dell'istanza, utilizza il. CreateFleet API

  • Se non desideri gestire il ciclo di vita dell'istanza, utilizza il. CreateAutoScalingGroup API

FARE. NOT USE RequestSpotFleet è un'eredità API senza investimenti pianificati.

No
RequestSpotInstances
  • Sconsigliamo vivamente di utilizzarla RequestSpotInstances API perché è un'eredità API senza investimenti pianificati.

FARE NOTUSE. RequestSpotInstances è un'eredità API senza investimenti pianificati.

No