Configurare un gruppo Auto Scaling per utilizzare i pesi delle istanze - Dimensionamento automatico Amazon EC2

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 gruppo Auto Scaling per utilizzare i pesi delle istanze

Quando si utilizzano più tipi di istanza, è possibile specificare quante unità associare a ciascun tipo di istanza e quindi specificare la capacità del gruppo con la stessa unità di misura. Questa opzione di specificazione della capacità è nota come pesi.

Ad esempio, supponiamo che di eseguire un'applicazione ad alta intensità di calcolo che funziona meglio con almeno 8 VCPU e 15 GiB di RAM. Se utilizzi c5.2xlarge come unità base, uno dei seguenti tipi di istanza EC2 soddisfa le esigenze dell'applicazione.

Esempio di tipi di istanza
Tipo di istanza VPCU Memoria (GiB)
c5.2xlarge 8 16
c5.4xlarge 16 32
c5.12xlarge 48 96
c5.18xlarge 72 144
c5.24xlarge 96 192

Per impostazione predefinita, tutti i tipi di istanze hanno lo stesso peso indipendentemente dalla dimensione. In altre parole, sia che il dimensionamento automatico Amazon EC2 avvii un tipo di istanza grande o piccola, ciascuna conta per la capacità desiderata del gruppo con dimensionamento automatico.

Con i pesi, tuttavia, si assegna un valore numerico che specifica quante unità associare a ciascun tipo di istanza. Ad esempio, se le istanze sono di dimensioni diverse, un'istanza c5.2xlarge potrebbe avere il peso di 2, una c5.4xlarge (che è due volte più grande) potrebbe avere il peso di 4 e così via. Quindi, quando Dimensionamento automatico Amazon EC2 riduce orizzontalmente il gruppo, questi pesi si traducono nel numero di unità che ciascuna istanza conta per la capacità desiderata.

Il peso non cambia il tipo di istanza che Dimensionamento automatico Amazon EC2 sceglie di avviare, ma le strategie di allocazione lo fanno. Per ulteriori informazioni, consulta Strategie di allocazione.

Importante

Per configurare un gruppo con dimensionamento automatico affinché soddisfi la capacità desiderata utilizzando il numero di vCPU o la quantità di memoria di ogni tipo di istanza, consigliamo di utilizzare la selezione del tipo di istanza basata su attributi. L'impostazione del DesiredCapacityType parametro specifica automaticamente il numero di unità da associare a ciascun tipo di istanza in base al valore impostato per questo parametro. Per ulteriori informazioni, consulta Crea un gruppo di istanze miste utilizzando la selezione del tipo di istanza basata su attributi.

Considerazioni

Questa sezione illustra le considerazioni chiave per un'implementazione efficace dei pesi.

  • Scegliete alcuni tipi di istanze che soddisfano le esigenze prestazionali della vostra applicazione. Decidi il peso che ogni tipo di istanza deve contare per la capacità desiderata del gruppo Auto Scaling in base alle sue capacità. Questi pesi si applicano alle istanze attuali e future.

  • Evita ampi intervalli tra i pesi. Ad esempio, non specificate il peso di 1 per un tipo di istanza quando il tipo di istanza successivo più grande ha un peso di 200. Anche la differenza tra i pesi più piccoli e più grandi non dovrebbe essere eccessiva. Differenze di peso estreme possono influire negativamente sull'ottimizzazione dei costi e delle prestazioni.

  • Specificate la capacità desiderata del gruppo in unità, non in istanze. Ad esempio, se utilizzi pesi basati su vCPU, imposta il numero di core desiderato e anche il minimo e il massimo.

  • Imposta i pesi e la capacità desiderata in modo che quest'ultima sia almeno due o tre volte più grande del peso maggiore.

Quando si aggiornano i gruppi esistenti, tenere presente quanto segue:

  • Quando aggiungi pesi a un gruppo esistente, includi i pesi per tutti i tipi di istanza attualmente in uso.

  • Quando aggiungi o modifichi pesi, Amazon EC2 Auto Scaling avvia o interrompe le istanze per raggiungere la capacità desiderata in base ai nuovi valori di peso.

  • Se rimuovi un tipo di istanza, le istanze in esecuzione di quel tipo mantengono il loro peso finale, anche se non sono più definite.

Comportamenti relativi al peso delle istanze

Quando utilizzi i pesi delle istanze, Dimensionamento automatico Amazon EC2 si comporta nel modo seguente:

  • la capacità attuale sarà la capacità desiderata o al di sopra di essa. La capacità attuale può superare la capacità desiderata se vengono avviate istanze che superano le unità di capacità rimanenti desiderate. Ad esempio, supponiamo di specificare due tipi di istanza c5.2xlarge e c5.12xlarge, di assegnare pesi di istanza di 2 per c5.2xlarge e 12 per c5.12xlarge. Se ci sono cinque unità rimanenti per soddisfare la capacità desiderata e dimensionamento automatico Amazon EC2 esegue il provisioning di c5.12xlarge, la capacità desiderata viene superata di sette unità.

  • All'avvio delle istanze, Amazon EC2 Auto Scaling dà priorità alla distribuzione della capacità tra le zone di disponibilità e al rispetto delle strategie di allocazione rispetto al superamento della capacità desiderata.

  • Amazon EC2 Auto Scaling può superare il limite di capacità massima per mantenere l'equilibrio tra le zone di disponibilità, utilizzando le tue strategie di allocazione preferite. Il limite rigido imposto da Amazon EC2 Auto Scaling è la capacità desiderata più il peso massimo.

Configurazione di un gruppo con dimensionamento automatico per utilizzare i pesi

È possibile configurare un gruppo con dimensionamento automatico per utilizzare i pesi, come illustrato negli esempi seguenti. AWS CLI Per istruzioni su come usare la console, consulta Crea un gruppo di istanze miste scegliendo manualmente i tipi di istanze.

Per configurare un nuovo gruppo con dimensionamento automatico per utilizzare i pesi (AWS CLI)

Utilizza il comando create-auto-scaling-group. Ad esempio, il comando seguente crea un nuovo gruppo con dimensionamento automatico e assegna la ponderazione specificando quanto segue:

  • La percentuale del gruppo da avviare come istanze on demand (0)

  • La strategia di allocazione per le istanze Spot in ciascuna zona di disponibilità (capacity-optimized)

  • I tipi di istanza da avviare in ordine di priorità (m4.16xlarge, m5.24xlarge)

  • I pesi dell'istanza che corrispondono alla differenza di dimensione relativa (vCPU) tra i tipi di istanza (16, 24)

  • Le sottoreti in cui avviare le istanze (subnet-5ea0c127, subnet-6194ea3b, subnet-c934b782), ciascuna corrispondente a una zona di disponibilità diversa

  • Il modello di avvio (my-launch-template) e la versione del modello di avvio ($Latest)

aws autoscaling create-auto-scaling-group --cli-input-json file://~/config.json

Il file config.json contiene il seguente contenuto.

{ "AutoScalingGroupName": "my-asg", "MixedInstancesPolicy": { "LaunchTemplate": { "LaunchTemplateSpecification": { "LaunchTemplateName": "my-launch-template", "Version": "$Latest" }, "Overrides": [ { "InstanceType": "m4.16xlarge", "WeightedCapacity": "16" }, { "InstanceType": "m5.24xlarge", "WeightedCapacity": "24" } ] }, "InstancesDistribution": { "OnDemandPercentageAboveBaseCapacity": 0, "SpotAllocationStrategy": "capacity-optimized" } }, "MinSize": 160, "MaxSize": 720, "DesiredCapacity": 480, "VPCZoneIdentifier": "subnet-5ea0c127,subnet-6194ea3b,subnet-c934b782", "Tags": [] }
Per configurare un gruppo con dimensionamento automatico esistente per utilizzare i pesi (AWS CLI)

Utilizzare il comando update-auto-scaling-group. Ad esempio, il comando seguente assegna la ponderazione ai tipi di istanza in un gruppo con dimensionamento automatico esistente specificando quanto segue:

  • I tipi di istanza da avviare in ordine di priorità (c5.18xlarge, c5.24xlarge, c5.2xlarge, c5.4xlarge)

  • I pesi dell'istanza che corrispondono alla differenza di dimensione relativa (vCPU) tra i tipi di istanza (18, 24, 2, 4)

  • La nuova maggiore capacità desiderata, che è più grande del peso più grande

aws autoscaling update-auto-scaling-group --cli-input-json file://~/config.json

Il file config.json contiene il seguente contenuto.

{ "AutoScalingGroupName": "my-existing-asg", "MixedInstancesPolicy": { "LaunchTemplate": { "Overrides": [ { "InstanceType": "c5.18xlarge", "WeightedCapacity": "18" }, { "InstanceType": "c5.24xlarge", "WeightedCapacity": "24" }, { "InstanceType": "c5.2xlarge", "WeightedCapacity": "2" }, { "InstanceType": "c5.4xlarge", "WeightedCapacity": "4" } ] } }, "MinSize": 0, "MaxSize": 100, "DesiredCapacity": 100 }
Come eseguire la verifica utilizzando la riga di comando

Utilizzare uno dei seguenti comandi:

Esempio di prezzo Spot per unità all'ora

Nella tabella seguente viene confrontato il prezzo orario per le istanze Spot in diverse zone di disponibilità negli Stati Uniti orientali (Virginia settentrionale) con il prezzo per le istanze on demand nella stessa Regione. I prezzi indicati sono prezzi di esempio e non prezzi correnti. Questi sono i costi per ora di istanza.

Esempio: prezzo Spot per ora di istanza
Tipo di istanza us-east-1a us-east-1b us-east-1c Prezzi on demand
c5.2xlarge 0,180 USD 0,191 USD 0,170 USD 0,34 USD
c5.4xlarge 0,341 USD 0,361 USD 0,318 USD 0,68 USD
c5.12xlarge 0,779 USD 0,777 USD 0,777 USD 2,04 USD
c5.18xlarge 1,207 USD 1,475 USD 1,357 USD 3,06 USD
c5.24xlarge 1,555 USD 1,555 USD 1,555 USD 4,08 USD

Con la ponderazione delle istanze, è possibile valutare i costi in base a ciò che si utilizza per unità all'ora. È possibile calcolare il prezzo all'ora per unità dividendo il prezzo di un tipo di istanza per il numero di unità che essa rappresenta. Per le istanze on demand, il prezzo per unità all'ora è lo stesso per l'implementazione di un tipo di istanza e per quella di una dimensione diversa dello stesso tipo di istanza. Tuttavia, il prezzo di istanza Spot per unità all'ora varia in base al pool Spot.

L'esempio seguente mostra come funziona il calcolo del prezzo spot per unità oraria con i pesi delle istanze. Quindi, per facilità di calcolo, supponiamo di voler avviare istanze Spot solo in us-east-1a. Il prezzo per unità oraria è riportato nella tabella seguente.

Esempio: esempio di prezzo istanza Spot per unità all'ora
Tipo di istanza us-east-1a Peso dell'istanza Prezzo all'ora per unità
c5.2xlarge 0,180 USD 2 0,090 USD
c5.4xlarge 0,341 USD 4 0,085 USD
c5.12xlarge 0,779 USD 12 0,065 USD
c5.18xlarge 1,207 USD 18 0,067 USD
c5.24xlarge 1,555 USD 24 0,065 USD