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à.
Configurare un parco istanze EC2 di tipo instant
L’EC2 Fleet di tipo istantaneo è una richiesta una tantum sincrona che effettua un solo tentativo di avviare la capacità desiderata. La risposta dell’API restituisce le istanze avviate, insieme agli errori per quelle istanze che non è stato possibile avviare. L’utilizzo di un EC2 Fleet di tipo istantaneo comporta diversi vantaggi, descritti in questo articolo. Le configurazioni di esempio sono fornite alla fine dell’articolo.
Per i carichi di lavoro che richiedono un’API di solo avvio per avviare le istanze EC2, puoi utilizzare l’API RunInstances. Tuttavia, con RunInstances, puoi avviare solo istanze on demand o istanze spot, ma non entrambe nella stessa richiesta. Inoltre, quando utilizzi RunInstances per avviare istanze spot, la richiesta dell’istanza spot è limitata a un solo tipo di istanza e a una zona di disponibilità. L’istanza ha come obiettivo un pool di capacità spot (un insieme di istanze inutilizzate con lo stesso tipo di istanza e zona di disponibilità). Se il pool di capacità spot non dispone di una capacità di istanza spot sufficiente per la richiesta, la chiamata RunInstances non riesce.
Invece di utilizzare RunInstances per avviare le istanze spot, ti consigliamo di utilizzare l’API CreateFleet con il parametro type impostato su instant per i vantaggi seguenti:
-
Avvia le istanze on demand e le istanze spot in una richiesta. Un EC2 Fleet può avviare istanze on demand, istanze spot o entrambe. La richiesta di Istanze spot viene soddisfatta se c’è capacità disponibile e il prezzo massimo all’ora specificato nella richiesta supera il prezzo Spot.
-
Aumenta la disponibilità di istanze spot. Utilizzando un EC2 Fleet di tipo
instant, puoi avviare istanze spot seguendo Best practice di istanze spot con i seguenti vantaggi:-
Best practice di istanze spot: essere flessibili riguardo tipi di istanza e zone di disponibilità.
Vantaggio: specificando diversi tipi di istanza e zone di disponibilità, aumenti il numero di pool di capacità spot. Ciò offre al servizio Spot maggiori possibilità di trovare e allocare la capacità di calcolo Spot desiderata. Una buona regola è quella di essere flessibili su almeno 10 tipi di istanza per ogni carico di lavoro e assicurarsi che tutte le zone di disponibilità siano configurate per l’utilizzo nel VPC.
-
Best practice di istanze spot: utilizzare la strategia di allocazione price-capacity-optimized..
Vantaggio: la strategia di allocazione
price-capacity-optimizedidentifica le istanze dai pool di capacità spot più disponibili, e poi effettua automaticamente il provisioning delle istanze da tali pool con il prezzo più basso. Poiché la capacità dell’istanza spot viene restituita da pool con capacità ottimale, ciò riduce la possibilità che le istanze spot vengano interrotte quando Amazon EC2 recupera la capacità.
-
-
Accedi a un set più ampio di funzionalità. Per i carichi di lavoro che richiedono un’API di solo avvio e in cui preferisci gestire il ciclo di vita dell’istanza piuttosto che consentire a EC2 Fleet di gestirlo per conto tuo, usa l’EC2 Fleet di tipo
instantal posto dell’API RunInstances. EC2 Fleet offre un set più ampio di funzionalità rispetto a RunInstances, come illustrato negli esempi seguenti. Per tutti gli altri carichi di lavoro, è consigliabile utilizzare Amazon EC2 Auto Scaling perché fornisce un set di funzionalità più completo per un’ampia gamma di carichi di lavoro, ad esempio applicazioni supportate da ELB, carichi di lavoro containerizzati e processi di elaborazione delle code.
È possibile utilizzare EC2 Fleet di tipo instantaneo per avviare istanze in Blocchi di capacità. Per ulteriori informazioni, consulta Tutorial: Configura il tuo parco istanze EC2 per avviare istanze in Blocchi di capacità.
Servizi AWS come Amazon EC2 Auto Scaling e Amazon EMR utilizzano EC2 Fleet di tipo istantaneo per avviare le istanze EC2.
Prerequisiti per un EC2 Fleet di tipo istantaneo
Per i prerequisiti per la creazione di un EC2 Fleet, consulta EC2 Prerequisiti per la flotta.
Come funziona un EC2 Fleet istantaneo
Quando si utilizza un EC2 Fleet di tipo instant, la sequenza degli eventi è la seguente:
-
Configurare: Configura il tipo di richiesta CreateFleet come
instant. Per ulteriori informazioni, consulta Crea una EC2 flotta. Dopo aver effettuato la chiamata API, non puoi più modificarla. -
Richiedere: quando effettui la chiamata API, Amazon EC2 inserisce una richiesta una tantum sincrona per la capacità desiderata.
-
Rispondere: la risposta dell’API restituisce le istanze avviate, insieme agli errori per quelle istanze che non è stato possibile avviare.
-
Descrivere: puoi descrivere il tuo EC2 Fleet, elencare le istanze associate al EC2 Fleet e visualizzare la cronologia del tuo EC2 Fleet.
-
Terminare le istanze: puoi terminare le istanze in qualsiasi momento.
-
Eliminare la richiesta del parco istanze: la richiesta del parco istanze può essere eliminata manualmente o automaticamente:
-
Manuale: Puoi eliminare la richiesta del parco istanze dopo l’avvio delle istanze.
Un parco istanze
instanteliminato con istanze in esecuzione non è supportato. Quando elimini un parco istanzeinstant, Amazon EC2 termina automaticamente tutte le sue istanze. Per i parchi istanze con più di 1.000 istanze, la richiesta di eliminazione potrebbe avere esito negativo. Se il tuo parco istanze ha più di 1.000 istanze, termina innanzitutto la maggior parte delle istanze manualmente, lasciandone 1.000 o meno. Poi elimina il parco istanze e le istanze rimanenti verranno terminate automaticamente. -
Automatico: Amazon EC2 elimina la richiesta del parco istanze qualche tempo dopo che:
-
Le istanze vengono arrestate.
-
Oppure il parco istanze non riesce ad avviare alcuna istanza.
-
-
Esempi
Gli esempi seguenti mostrano come utilizzare EC2 Fleet di tipo instant per diversi casi d’uso. Per ulteriori informazioni sull’utilizzo dei parametri dell’API CreateFleet EC2, consulta CreateFleet nel Riferimento alle API di Amazon EC2.
Esempi
Esempio 1: Avvio di istanze spot con la strategia di allocazione ottimizzata per la capacità
Esempio 3: Avvio di istanze spot utilizzando la ponderazione di istanza
Esempio 4: Avvio di istanze spot in una singola zona di disponibilità
Esempio 5: Avvio di istanze spot di un singolo tipo in una singola zona di disponibilità
Esempio 6: Avvio di istanze spot solo se è possibile avviare una capacità target minima
Esempio 9: Avvio di istanze spot con una base di istanze on demand
Esempio 12: Specificare un parametro Systems Manager invece di un’ID AMI
Esempio 1: Avvio di istanze spot con la strategia di allocazione ottimizzata per la capacità
L’esempio seguente indica i parametri necessari in un parco istanze EC2 di tipo instant: un modello di avvio, una capacità target, un’opzione di acquisto predefinita e sostituzioni del modello di avvio.
-
Il modello di avvio viene identificato dal nome e dal numero di versione.
-
Le 12 sostituzioni del modello di avvio specificano 4 tipi di istanza e 3 sottoreti differenti, ognuna in una zona di disponibilità separata. Ogni combinazione di tipo di istanza e sottorete definisce un pool di capacità spot, restituendo 12 pool di capacità spot.
-
La capacità obiettivo per il parco istanze è 20 istanze.
-
L’opzione di acquisto predefinita è
spot; con questa opzione, il parco istanze tenta di avviare 20 istanze spot nel pool di capacità spot con capacità ottimale per il numero di istanze che si stanno avviando.
{ "SpotOptions": { "AllocationStrategy": "capacity-optimized" }, "LaunchTemplateConfigs": [ { "LaunchTemplateSpecification":{ "LaunchTemplateName":"ec2-fleet-lt1", "Version":"$Latest" }, "Overrides":[ { "InstanceType":"c5.large", "SubnetId":"subnet-fae8c380" }, { "InstanceType":"c5.large", "SubnetId":"subnet-e7188bab" }, { "InstanceType":"c5.large", "SubnetId":"subnet-49e41922" }, { "InstanceType":"c5d.large", "SubnetId":"subnet-fae8c380" }, { "InstanceType":"c5d.large", "SubnetId":"subnet-e7188bab" }, { "InstanceType":"c5d.large", "SubnetId":"subnet-49e41922" }, { "InstanceType":"m5.large", "SubnetId":"subnet-fae8c380" }, { "InstanceType":"m5.large", "SubnetId":"subnet-e7188bab" }, { "InstanceType":"m5.large", "SubnetId":"subnet-49e41922" }, { "InstanceType":"m5d.large", "SubnetId":"subnet-fae8c380" }, { "InstanceType":"m5d.large", "SubnetId":"subnet-e7188bab" }, { "InstanceType":"m5d.large", "SubnetId":"subnet-49e41922" } ] } ], "TargetCapacitySpecification": { "TotalTargetCapacity": 20, "DefaultTargetCapacityType": "spot" }, "Type": "instant" }
Esempio 2: Avvio di una singola istanza spot con la strategia di allocazione ottimizzata per la capacità
Puoi avviare in modo ottimale un’istanza spot alla volta effettuando più chiamate API del parco istanze EC2 di tipo instant, impostando TotalTargetCapacity su 1.
L’esempio seguente indica i parametri necessari in un parco istanze EC2 di tipo istantaneo: un modello di avvio, una capacità target, un’opzione di acquisto predefinita e sostituzioni del modello di avvio. Il modello di avvio viene identificato dal nome e dal numero di versione. Le 12 sostituzioni del modello di avvio hanno 4 tipi di istanza e 3 sottoreti differenti, ognuna in una zona di disponibilità separata. La capacità obiettivo per il parco istanze è 1 istanza e l’opzione di acquisto predefinita è Spot, il che comporta il tentativo di avviare un’istanza spot da uno dei 12 pool di capacità spot basati sulla strategia di allocazione ottimizzata per la capacità, per avviare un’istanza spot dal pool di capacità più disponibile.
{ "SpotOptions": { "AllocationStrategy": "capacity-optimized" }, "LaunchTemplateConfigs": [ { "LaunchTemplateSpecification":{ "LaunchTemplateName":"ec2-fleet-lt1", "Version":"$Latest" }, "Overrides":[ { "InstanceType":"c5.large", "SubnetId":"subnet-fae8c380" }, { "InstanceType":"c5.large", "SubnetId":"subnet-e7188bab" }, { "InstanceType":"c5.large", "SubnetId":"subnet-49e41922" }, { "InstanceType":"c5d.large", "SubnetId":"subnet-fae8c380" }, { "InstanceType":"c5d.large", "SubnetId":"subnet-e7188bab" }, { "InstanceType":"c5d.large", "SubnetId":"subnet-49e41922" }, { "InstanceType":"m5.large", "SubnetId":"subnet-fae8c380" }, { "InstanceType":"m5.large", "SubnetId":"subnet-e7188bab" }, { "InstanceType":"m5.large", "SubnetId":"subnet-49e41922" }, { "InstanceType":"m5d.large", "SubnetId":"subnet-fae8c380" }, { "InstanceType":"m5d.large", "SubnetId":"subnet-e7188bab" }, { "InstanceType":"m5d.large", "SubnetId":"subnet-49e41922" } ] } ], "TargetCapacitySpecification": { "TotalTargetCapacity": 1, "DefaultTargetCapacityType": "spot" }, "Type": "instant" }
Esempio 3: Avvio di istanze spot utilizzando la ponderazione di istanza
Gli esempi seguenti utilizzano la ponderazione d’istanza; questo significa che il prezzo è calcolato a ora per unità anziché a ora per istanza. Ogni configurazione di avvio presenta un tipo di istanza diverso e un peso diverso in base al numero di unità del carico di lavoro che può essere eseguito sull’istanza, supponendo che un’unità del carico di lavoro richieda 15 GB di memoria e 4 vCPU. Ad esempio, m5.xlarge (4 vCPU e 16 GB di memoria) può eseguire una sola unità e il suo peso è 1, m5.2xlarge (8 vCPU e 32 GB di memoria) può eseguire 2 unità e il suo peso è 2 e così via. La capacità obiettivo totale è impostata su 40 unità. L’opzione di acquisto predefinita è spot e la strategia di allocazione è ottimizzata per la capacità, il che si traduce in 40 m5.xlarge (40 diviso per 1), 20 m5.2xlarge (40 diviso per 2), 10 m5.4xlarge (40 diviso per 4), 5 m5.8xlarge (40 diviso per 8) o un mix dei tipi di istanza con pesi che si sommano alla capacità desiderata sulla base della strategia di allocazione ottimizzata per la capacità.
Per ulteriori informazioni, consulta Utilizza la ponderazione delle istanze per gestire i costi e le prestazioni del parco istanze EC2 o del parco istanze spot.
{ "SpotOptions":{ "AllocationStrategy":"capacity-optimized" }, "LaunchTemplateConfigs":[ { "LaunchTemplateSpecification":{ "LaunchTemplateName":"ec2-fleet-lt1", "Version":"$Latest" }, "Overrides":[ { "InstanceType":"m5.xlarge", "SubnetId":"subnet-fae8c380", "WeightedCapacity":1 }, { "InstanceType":"m5.xlarge", "SubnetId":"subnet-e7188bab", "WeightedCapacity":1 }, { "InstanceType":"m5.xlarge", "SubnetId":"subnet-49e41922", "WeightedCapacity":1 }, { "InstanceType":"m5.2xlarge", "SubnetId":"subnet-fae8c380", "WeightedCapacity":2 }, { "InstanceType":"m5.2xlarge", "SubnetId":"subnet-e7188bab", "WeightedCapacity":2 }, { "InstanceType":"m5.2xlarge", "SubnetId":"subnet-49e41922", "WeightedCapacity":2 }, { "InstanceType":"m5.4xlarge", "SubnetId":"subnet-fae8c380", "WeightedCapacity":4 }, { "InstanceType":"m5.4xlarge", "SubnetId":"subnet-e7188bab", "WeightedCapacity":4 }, { "InstanceType":"m5.4xlarge", "SubnetId":"subnet-49e41922", "WeightedCapacity":4 }, { "InstanceType":"m5.8xlarge", "SubnetId":"subnet-fae8c380", "WeightedCapacity":8 }, { "InstanceType":"m5.8xlarge", "SubnetId":"subnet-e7188bab", "WeightedCapacity":8 }, { "InstanceType":"m5.8xlarge", "SubnetId":"subnet-49e41922", "WeightedCapacity":8 } ] } ], "TargetCapacitySpecification":{ "TotalTargetCapacity":40, "DefaultTargetCapacityType":"spot" }, "Type":"instant" }
Esempio 4: Avvio di istanze spot in una singola zona di disponibilità
Puoi configurare un parco istanze per avviare tutte le istanze in una singola zona di disponibilità impostando le opzioni Spot SingleAvailabilityZone su true.
Le 12 sostituzioni del modello di avvio hanno tipi di istanza e sottoreti differenti, ognuna in una zona di disponibilità separata ma con la stessa capacità ponderata. La capacità obiettivo totale è di 20 istanze, l’opzione d’acquisto predefinita è spot e la strategia di allocazione spot è ottimizzata per la capacità. Il parco istanze EC2 avvia 20 istanze spot, tutte in una singola zona di disponibilità, dai pool di capacità spot con capacità ottimale, utilizzando le specifiche di avvio.
{ "SpotOptions": { "AllocationStrategy": "capacity-optimized", "SingleAvailabilityZone": true }, "LaunchTemplateConfigs": [ { "LaunchTemplateSpecification":{ "LaunchTemplateName":"ec2-fleet-lt1", "Version":"$Latest" }, "Overrides":[ { "InstanceType":"c5.4xlarge", "SubnetId":"subnet-fae8c380" }, { "InstanceType":"c5.4xlarge", "SubnetId":"subnet-e7188bab" }, { "InstanceType":"c5.4xlarge", "SubnetId":"subnet-49e41922" }, { "InstanceType":"c5d.4xlarge", "SubnetId":"subnet-fae8c380" }, { "InstanceType":"c5d.4xlarge", "SubnetId":"subnet-e7188bab" }, { "InstanceType":"c5d.4xlarge", "SubnetId":"subnet-49e41922" }, { "InstanceType":"m5.4xlarge", "SubnetId":"subnet-fae8c380" }, { "InstanceType":"m5.4xlarge", "SubnetId":"subnet-e7188bab" }, { "InstanceType":"m5.4xlarge", "SubnetId":"subnet-49e41922" }, { "InstanceType":"m5d.4xlarge", "SubnetId":"subnet-fae8c380" }, { "InstanceType":"m5d.4xlarge", "SubnetId":"subnet-e7188bab" }, { "InstanceType":"m5d.4xlarge", "SubnetId":"subnet-49e41922" } ] } ], "TargetCapacitySpecification": { "TotalTargetCapacity": 20, "DefaultTargetCapacityType": "spot" }, "Type": "instant" }
Esempio 5: Avvio di istanze spot di un singolo tipo in una singola zona di disponibilità
È possibile configurare un parco istanze per avviare tutte le istanze sullo stesso tipo di istanza in una singola zona di disponibilità impostando le opzioni Spot SingleInstanceType su true e SingleAvailabilityZone su true.
Le 12 sostituzioni del modello di avvio hanno tipi di istanza e sottoreti differenti, ognuna in una zona di disponibilità separata ma con la stessa capacità ponderata. La capacità obiettivo totale è di 20 istanze, l’opzione d’acquisto predefinita è spot, la strategia di allocazione spot è ottimizzata per la capacità. Il parco istanze EC2 avvia 20 istanze spot dello stesso tipo, tutte in una singola zona di disponibilità, dal pool di istanze spot con capacità ottimale, utilizzando le specifiche di avvio.
{ "SpotOptions": { "AllocationStrategy": "capacity-optimized", "SingleInstanceType": true, "SingleAvailabilityZone": true }, "LaunchTemplateConfigs": [ { "LaunchTemplateSpecification":{ "LaunchTemplateName":"ec2-fleet-lt1", "Version":"$Latest" }, "Overrides":[ { "InstanceType":"c5.4xlarge", "SubnetId":"subnet-fae8c380" }, { "InstanceType":"c5.4xlarge", "SubnetId":"subnet-e7188bab" }, { "InstanceType":"c5.4xlarge", "SubnetId":"subnet-49e41922" }, { "InstanceType":"c5d.4xlarge", "SubnetId":"subnet-fae8c380" }, { "InstanceType":"c5d.4xlarge", "SubnetId":"subnet-e7188bab" }, { "InstanceType":"c5d.4xlarge", "SubnetId":"subnet-49e41922" }, { "InstanceType":"m5.4xlarge", "SubnetId":"subnet-fae8c380" }, { "InstanceType":"m5.4xlarge", "SubnetId":"subnet-e7188bab" }, { "InstanceType":"m5.4xlarge", "SubnetId":"subnet-49e41922" }, { "InstanceType":"m5d.4xlarge", "SubnetId":"subnet-fae8c380" }, { "InstanceType":"m5d.4xlarge", "SubnetId":"subnet-e7188bab" }, { "InstanceType":"m5d.4xlarge", "SubnetId":"subnet-49e41922" } ] } ], "TargetCapacitySpecification": { "TotalTargetCapacity": 20, "DefaultTargetCapacityType": "spot" }, "Type": "instant" }
Esempio 6: Avvio di istanze spot solo se è possibile avviare una capacità target minima
È possibile configurare un parco istanze per avviare le istanze solo se è possibile avviare la capacità obiettivo minima impostando le opzioni Spot MinTargetCapacity sulla capacità obiettivo minima che si desidera avviare insieme.
Quando specifichi MinTargetCapacity, dovrai specificare almeno uno di questi parametri: SingleInstanceType o SingleAvailabilityZone. In questo esempio, viene specificato SingleInstanceType, in modo che tutte le 20 istanze utilizzino lo stesso tipo di istanza.
Le 12 sostituzioni del modello di avvio hanno tipi di istanza e sottoreti differenti, ognuna in una zona di disponibilità separata ma con la stessa capacità ponderata. La capacità obiettivo totale e la capacità obiettivo minima sono entrambe impostate su 20 istanze, l’opzione di acquisto predefinita è spot e la strategia di allocazione spot è ottimizzata per la capacità. Il parco istanze EC2 avvia 20 istanze spot dal pool di capacità spot con capacità ottimale utilizzando le sostituzioni del modello di avvio, solo se è in grado di avviare tutte e 20 le istanze contemporaneamente.
{ "SpotOptions": { "AllocationStrategy": "capacity-optimized", "SingleInstanceType": true, "MinTargetCapacity": 20 }, "LaunchTemplateConfigs": [ { "LaunchTemplateSpecification":{ "LaunchTemplateName":"ec2-fleet-lt1", "Version":"$Latest" }, "Overrides":[ { "InstanceType":"c5.4xlarge", "SubnetId":"subnet-fae8c380" }, { "InstanceType":"c5.4xlarge", "SubnetId":"subnet-e7188bab" }, { "InstanceType":"c5.4xlarge", "SubnetId":"subnet-49e41922" }, { "InstanceType":"c5d.4xlarge", "SubnetId":"subnet-fae8c380" }, { "InstanceType":"c5d.4xlarge", "SubnetId":"subnet-e7188bab" }, { "InstanceType":"c5d.4xlarge", "SubnetId":"subnet-49e41922" }, { "InstanceType":"m5.4xlarge", "SubnetId":"subnet-fae8c380" }, { "InstanceType":"m5.4xlarge", "SubnetId":"subnet-e7188bab" }, { "InstanceType":"m5.4xlarge", "SubnetId":"subnet-49e41922" }, { "InstanceType":"m5d.4xlarge", "SubnetId":"subnet-fae8c380" }, { "InstanceType":"m5d.4xlarge", "SubnetId":"subnet-e7188bab" }, { "InstanceType":"m5d.4xlarge", "SubnetId":"subnet-49e41922" } ] } ], "TargetCapacitySpecification": { "TotalTargetCapacity": 20, "DefaultTargetCapacityType": "spot" }, "Type": "instant" }
Esempio 7: Avvio di istanze spot solo se è possibile avviare una capacità target minima dello stesso tipo di istanza in una singola zona di disponibilità
È possibile configurare un parco istanze per avviare le istanze solo se è possibile avviare la capacità obiettivo minima con un singolo tipo di istanza in una singola zona di disponibilità, impostando le opzioni Spot MinTargetCapacity sulla capacità obiettivo minima che si desidera avviare, insieme alle opzioni SingleInstanceType e SingleAvailabilityZone.
Le 12 specifiche di avvio che sostituiscono il modello di avvio hanno tipi di istanza e subnet differenti, ognuna in una zona di disponibilità separata ma con la stessa capacità ponderata. La capacità obiettivo totale e la capacità obiettivo minima sono entrambe impostate su 20 istanze, l’opzione di acquisto predefinita è spot, la strategia di allocazione spot è ottimizzata per la capacità, l’opzione SingleInstanceType è true e l’opzione SingleAvailabilityZone è true. Il parco istanze EC2 avvia 20 istanze spot dello stesso tipo, tutte in una singola zona di disponibilità, dal pool di istanze spot con capacità ottimale, utilizzando le specifiche di avvio, solo se è possibile avviare tutte e 20 le istanze contemporaneamente.
{ "SpotOptions": { "AllocationStrategy": "capacity-optimized", "SingleInstanceType": true, "SingleAvailabilityZone": true, "MinTargetCapacity": 20 }, "LaunchTemplateConfigs": [ { "LaunchTemplateSpecification":{ "LaunchTemplateName":"ec2-fleet-lt1", "Version":"$Latest" }, "Overrides":[ { "InstanceType":"c5.4xlarge", "SubnetId":"subnet-fae8c380" }, { "InstanceType":"c5.4xlarge", "SubnetId":"subnet-e7188bab" }, { "InstanceType":"c5.4xlarge", "SubnetId":"subnet-49e41922" }, { "InstanceType":"c5d.4xlarge", "SubnetId":"subnet-fae8c380" }, { "InstanceType":"c5d.4xlarge", "SubnetId":"subnet-e7188bab" }, { "InstanceType":"c5d.4xlarge", "SubnetId":"subnet-49e41922" }, { "InstanceType":"m5.4xlarge", "SubnetId":"subnet-fae8c380" }, { "InstanceType":"m5.4xlarge", "SubnetId":"subnet-e7188bab" }, { "InstanceType":"m5.4xlarge", "SubnetId":"subnet-49e41922" }, { "InstanceType":"m5d.4xlarge", "SubnetId":"subnet-fae8c380" }, { "InstanceType":"m5d.4xlarge", "SubnetId":"subnet-e7188bab" }, { "InstanceType":"m5d.4xlarge", "SubnetId":"subnet-49e41922" } ] } ], "TargetCapacitySpecification": { "TotalTargetCapacity": 20, "DefaultTargetCapacityType": "spot" }, "Type": "instant" }
Esempio 8: Avvio di istanze con più modelli di avvio
Puoi configurare un parco istanze per avviare istanze con specifiche di avvio diverse per tipi di istanza o gruppi di tipi di istanza diversi, specificando più modelli di avvio. In questo esempio vogliamo avere dimensioni del volume EBS diverse per diversi tipi di istanza e abbiamo ciò che è configurato nei modelli di avvio ec2-fleet-lt-4xl, ec2-fleet-lt-9xl e ec2-fleet-lt-18xl.
In questo esempio, stiamo utilizzando 3 diversi modelli di avvio per i 3 tipi di istanza, in base alle loro dimensioni. Le sostituzioni delle specifiche di avvio su tutti i modelli di avvio utilizzano i pesi delle istanze in base alle vCPU del tipo di istanza. La capacità obiettivo totale è di 144 unità, l’opzione d’acquisto predefinita è spot e la strategia di allocazione spot è ottimizzata per la capacità. Il parco istanze EC2 può avviare 9 c5n.4xlarge (144 diviso per 16) utilizzando il modello di avvio ec2-fleet-4xl o 4 c5n.9xlarge (144 diviso per 36) utilizzando il modello di avvio ec2-fleet-9xl o 2 c5n.18xlarge (144 diviso per 72) utilizzando il modello di avvio ec2-fleet-18xl o un mix dei tipi di istanza con pesi si sommano alla capacità desiderata, in base alla strategia di allocazione ottimizzata per la capacità.
{ "SpotOptions": { "AllocationStrategy": "capacity-optimized" }, "LaunchTemplateConfigs": [ { "LaunchTemplateSpecification":{ "LaunchTemplateName":"ec2-fleet-lt-18xl", "Version":"$Latest" }, "Overrides":[ { "InstanceType":"c5n.18xlarge", "SubnetId":"subnet-fae8c380", "WeightedCapacity":72 }, { "InstanceType":"c5n.18xlarge", "SubnetId":"subnet-e7188bab", "WeightedCapacity":72 }, { "InstanceType":"c5n.18xlarge", "SubnetId":"subnet-49e41922", "WeightedCapacity":72 } ] }, { "LaunchTemplateSpecification":{ "LaunchTemplateName":"ec2-fleet-lt-9xl", "Version":"$Latest" }, "Overrides":[ { "InstanceType":"c5n.9xlarge", "SubnetId":"subnet-fae8c380", "WeightedCapacity":36 }, { "InstanceType":"c5n.9xlarge", "SubnetId":"subnet-e7188bab", "WeightedCapacity":36 }, { "InstanceType":"c5n.9xlarge", "SubnetId":"subnet-49e41922", "WeightedCapacity":36 } ] }, { "LaunchTemplateSpecification":{ "LaunchTemplateName":"ec2-fleet-lt-4xl", "Version":"$Latest" }, "Overrides":[ { "InstanceType":"c5n.4xlarge", "SubnetId":"subnet-fae8c380", "WeightedCapacity":16 }, { "InstanceType":"c5n.4xlarge", "SubnetId":"subnet-e7188bab", "WeightedCapacity":16 }, { "InstanceType":"c5n.4xlarge", "SubnetId":"subnet-49e41922", "WeightedCapacity":16 } ] } ], "TargetCapacitySpecification": { "TotalTargetCapacity": 144, "DefaultTargetCapacityType": "spot" }, "Type": "instant" }
Esempio 9: Avvio di istanze spot con una base di istanze on demand
L’esempio seguente specifica la capacità target totale di 20 istanze per il parco istanze e una capacità target di 5 istanze on demand. L’opzione di acquisto predefinita è spot. Il parco istanze avvia 5 istanze on demand come indicato, ma deve avviare altre 15 istanze per soddisfare la capacità target totale. L’opzione di acquisto per la differenza viene calcolata come TotalTargetCapacity – OnDemandTargetCapacity = DefaultTargetCapacityType; ne consegue che il parco istanze avvia 15 istanze spot che costituiscono uno dei 12 pool di capacità spot basati sulla strategia di allocazione ottimizzata per la capacità.
{ "SpotOptions": { "AllocationStrategy": "capacity-optimized" }, "LaunchTemplateConfigs": [ { "LaunchTemplateSpecification":{ "LaunchTemplateName":"ec2-fleet-lt1", "Version":"$Latest" }, "Overrides":[ { "InstanceType":"c5.large", "SubnetId":"subnet-fae8c380" }, { "InstanceType":"c5.large", "SubnetId":"subnet-e7188bab" }, { "InstanceType":"c5.large", "SubnetId":"subnet-49e41922" }, { "InstanceType":"c5d.large", "SubnetId":"subnet-fae8c380" }, { "InstanceType":"c5d.large", "SubnetId":"subnet-e7188bab" }, { "InstanceType":"c5d.large", "SubnetId":"subnet-49e41922" }, { "InstanceType":"m5.large", "SubnetId":"subnet-fae8c380" }, { "InstanceType":"m5.large", "SubnetId":"subnet-e7188bab" }, { "InstanceType":"m5.large", "SubnetId":"subnet-49e41922" }, { "InstanceType":"m5d.large", "SubnetId":"subnet-fae8c380" }, { "InstanceType":"m5d.large", "SubnetId":"subnet-e7188bab" }, { "InstanceType":"m5d.large", "SubnetId":"subnet-49e41922" } ] } ], "TargetCapacitySpecification": { "TotalTargetCapacity": 20, "OnDemandTargetCapacity": 5, "DefaultTargetCapacityType": "spot" }, "Type": "instant" }
Esempio 10: Avvio di istanze spot utilizzando una strategia di allocazione ottimizzata per la capacità con una base di istanze on demand che utilizza prenotazioni di capacità e la strategia di allocazione con priorità
È possibile configurare un parco istanze affinché utilizzi prima le prenotazioni della capacità on demand all’avvio di una base di istanze on demand con il tipo di capacità obiettivo predefinito come spot, impostando la strategia di utilizzo per le prenotazioni della capacità su use-capacity-reservations-first. E se più pool di istanze presentano prenotazioni di capacità inutilizzate, viene applicata la strategia di allocazione on demand scelta. In questo esempio, la strategia di allocazione on demand ha la priorità.
In questo esempio, ci sono 6 prenotazioni della capacità disponibili non utilizzate. Questa capacità è inferiore alla capacità target on demand del parco istanze di 10 istanze on demand.
L’account presenta le seguenti 6 prenotazioni della capacità inutilizzate in 2 pool. Il numero di prenotazioni della capacità in ogni pool è indicato da AvailableInstanceCount.
{ "CapacityReservationId": "cr-111", "InstanceType": "m5.large", "InstancePlatform": "Linux/UNIX", "AvailabilityZone": "us-east-1a", "AvailableInstanceCount": 3, "InstanceMatchCriteria": "open", "State": "active" } { "CapacityReservationId": "cr-222", "InstanceType": "c5.large", "InstancePlatform": "Linux/UNIX", "AvailabilityZone": "us-east-1a", "AvailableInstanceCount": 3, "InstanceMatchCriteria": "open", "State": "active" }
La seguente configurazione del parco istanze mostra solo le configurazioni pertinenti per questo esempio. La strategia di allocazione on demand è con priorità e la strategia di utilizzo per le prenotazioni della capacità è use-capacity-reservations-first. La strategia di allocazione spot è ottimizzata per la capacità. La capacità obiettivo totale è 20, la capacità obiettivo on demand è 10 e il tipo di capacità obiettivo predefinito è spot.
{ "SpotOptions": { "AllocationStrategy": "capacity-optimized" }, "OnDemandOptions":{ "CapacityReservationOptions": { "UsageStrategy": "use-capacity-reservations-first" }, "AllocationStrategy":"prioritized" }, "LaunchTemplateConfigs": [ { "LaunchTemplateSpecification":{ "LaunchTemplateName":"ec2-fleet-lt1", "Version":"$Latest" }, "Overrides":[ { "InstanceType":"c5.large", "SubnetId":"subnet-fae8c380", "Priority": 1.0 }, { "InstanceType":"c5.large", "SubnetId":"subnet-e7188bab", "Priority": 2.0 }, { "InstanceType":"c5.large", "SubnetId":"subnet-49e41922", "Priority": 3.0 }, { "InstanceType":"c5d.large", "SubnetId":"subnet-fae8c380", "Priority": 4.0 }, { "InstanceType":"c5d.large", "SubnetId":"subnet-e7188bab", "Priority": 5.0 }, { "InstanceType":"c5d.large", "SubnetId":"subnet-49e41922", "Priority": 6.0 }, { "InstanceType":"m5.large", "SubnetId":"subnet-fae8c380", "Priority": 7.0 }, { "InstanceType":"m5.large", "SubnetId":"subnet-e7188bab", "Priority": 8.0 }, { "InstanceType":"m5.large", "SubnetId":"subnet-49e41922", "Priority": 9.0 }, { "InstanceType":"m5d.large", "SubnetId":"subnet-fae8c380", "Priority": 10.0 }, { "InstanceType":"m5d.large", "SubnetId":"subnet-e7188bab", "Priority": 11.0 }, { "InstanceType":"m5d.large", "SubnetId":"subnet-49e41922", "Priority": 12.0 } ] } ], "TargetCapacitySpecification": { "TotalTargetCapacity": 20, "OnDemandTargetCapacity": 10, "DefaultTargetCapacityType": "spot" }, "Type": "instant" }
Dopo aver creato il parco istanze istantaneo utilizzando la configurazione precedente, le seguenti 20 istanze vengono avviate per soddisfare la capacità target:
-
7 istanze on demand c5.large in us-east-1a: le istanze c5.large in us-east-1a hanno la massima priorità e sono disponibili 3 prenotazioni della capacità c5.large inutilizzate. Le prenotazioni della capacità vengono utilizzate innanzitutto per avviare 3 istanze on demand più 4 ulteriori istanza on demand che vengono avviate secondo la strategia di allocazione on demand, che in questo esempio ha la priorità.
-
3 istanze on demand m5.large in us-east-1a: m5.large in us-east-1a ha la seconda priorità e ci sono 3 prenotazioni di capacità c3.large inutilizzate disponibili.
-
10 istanze spot da uno dei 12 pool di capacità spot con capacità ottimale in base alla strategia di allocazione ottimizzata per la capacità.
Dopo l’avvio del parco istanze, puoi eseguire describe-capacity-reservations per vedere quante prenotazioni di capacità sono rimaste inutilizzate. In questo esempio, dovresti vedere la seguente risposta, che mostra che sono state utilizzate tutte le prenotazioni della capacità c5.large e m5.large.
{ "CapacityReservationId": "cr-111", "InstanceType": "m5.large", "AvailableInstanceCount": 0 } { "CapacityReservationId": "cr-222", "InstanceType": "c5.large", "AvailableInstanceCount": 0 }
Esempio 11: Avvio di istanze spot con la strategia di allocazione con priorità ottimizzata per la capacità
L’esempio seguente indica i parametri necessari in un parco istanze EC2 di tipo istantaneo: un modello di avvio, una capacità target, un’opzione di acquisto predefinita e sostituzioni del modello di avvio. Il modello di avvio viene identificato dal nome e dal numero di versione. Le 12 specifiche di avvio che sostituiscono il modello di avvio hanno 4 tipi di istanza diversi con una priorità assegnata e 3 sottoreti diverse, ognuna in una zona di disponibilità separata. La capacità obiettivo per il parco istanze è di 20 istanze e l’opzione di acquisto predefinita è spot, il che comporta il tentativo di avviare 20 istanze spot da uno dei 12 pool di capacità spot, in base alla strategia di allocazione con priorità ottimizzata per la capacità, che implementa le priorità in base al miglior sforzo, ma prima ottimizza la capacità.
{ "SpotOptions": { "AllocationStrategy": "capacity-optimized-prioritized" }, "LaunchTemplateConfigs": [ { "LaunchTemplateSpecification":{ "LaunchTemplateName":"ec2-fleet-lt1", "Version":"$Latest" }, "Overrides":[ { "InstanceType":"c5.large", "SubnetId":"subnet-fae8c380", "Priority": 1.0 }, { "InstanceType":"c5.large", "SubnetId":"subnet-e7188bab", "Priority": 1.0 }, { "InstanceType":"c5.large", "SubnetId":"subnet-49e41922", "Priority": 1.0 }, { "InstanceType":"c5d.large", "SubnetId":"subnet-fae8c380", "Priority": 2.0 }, { "InstanceType":"c5d.large", "SubnetId":"subnet-e7188bab", "Priority": 2.0 }, { "InstanceType":"c5d.large", "SubnetId":"subnet-49e41922", "Priority": 2.0 }, { "InstanceType":"m5.large", "SubnetId":"subnet-fae8c380", "Priority": 3.0 }, { "InstanceType":"m5.large", "SubnetId":"subnet-e7188bab", "Priority": 3.0 }, { "InstanceType":"m5.large", "SubnetId":"subnet-49e41922", "Priority": 3.0 }, { "InstanceType":"m5d.large", "SubnetId":"subnet-fae8c380", "Priority": 4.0 }, { "InstanceType":"m5d.large", "SubnetId":"subnet-e7188bab", "Priority": 4.0 }, { "InstanceType":"m5d.large", "SubnetId":"subnet-49e41922", "Priority": 4.0 } ] } ], "TargetCapacitySpecification": { "TotalTargetCapacity": 20, "DefaultTargetCapacityType": "spot" }, "Type": "instant" }
Esempio 12: Specificare un parametro Systems Manager invece di un’ID AMI
L’esempio seguente utilizza un modello di avvio per specificare la configurazione per le istanze nel parco istanze. In questo esempio, per ImageId, anziché specificare un ID AMI, all’AMI viene fatto riferimento con un parametro System Manager. All’avvio dell’istanza, il parametro Systems Manager si risolverà in un ID AMI.
In questo esempio, il parametro Systems Manager è specificato in un formato valido: resolve:ssm:golden-ami. Vi sono altri formati validi per il parametro Systems Manager. Per ulteriori informazioni, consulta Usare un parametro Systems Manager invece di un'ID AMI.
Nota
Il tipo di parco istanze deve essere di tipo instant. Altri tipi di parco istanze non supportano la specificazione di un parametro System Manager anziché un ID AMI.
{ "LaunchTemplateData": { "ImageId": "resolve:ssm:golden-ami", "InstanceType": "m5.4xlarge", "TagSpecifications": [{ "ResourceType": "instance", "Tags": [{ "Key": "Name", "Value": "webserver" }] }] } }