Crea un gruppo di istanze miste scegliendo manualmente i tipi di 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à.

Crea un gruppo di istanze miste scegliendo manualmente i tipi di istanze

Questo argomento mostra come avviare più tipi di istanza in un singolo gruppo con dimensionamento automatico scegliendo manualmente i tipi di istanza.

Se preferisci utilizzare gli attributi dell'istanza come criteri per la selezione dei tipi di istanza, consulta Crea un gruppo di istanze miste utilizzando la selezione del tipo di istanza basata su attributi.

Prerequisiti

Crea un gruppo di istanze miste (console)

Utilizza la procedura seguente per creare un gruppo di istanze miste scegliendo manualmente i tipi di istanza che il gruppo può avviare. Per aiutarti a eseguire i passaggi in modo efficiente, alcune sezioni facoltative vengono saltate.

Per esaminare le best practice per un gruppo di istanze miste, consulta. Panoramica della configurazione

Come creare gruppi di istanze
  1. Apri la console Amazon EC2 all'indirizzo https://console.aws.amazon.com/ec2/ e scegli Gruppi con dimensionamento automatico dal pannello di navigazione.

  2. Sulla barra di navigazione nella parte superiore della schermata, scegli la stessa Regione AWS che utilizzata durante la creazione del modello di avvio.

  3. Selezionare Crea un gruppo con dimensionamento automatico.

  4. Nella pagina Scegli il modello o la configurazione di avvio, in Nome gruppo con dimensionamento automatico, inserisci un nome per il gruppo con dimensionamento automatico.

  5. Per scegliere il modello di avvio, completa le seguenti operazioni:

    1. Come Launch template (Modello di avvio) scegli un modello di avvio esistente.

    2. Per la Versione del modello di avvio, scegli se durante il dimensionamento orizzontale il gruppo con dimensionamento automatico debba usare la versione di default, quella più recente o una versione specifica del modello di avvio.

    3. Verificare che il modello di avvio supporti tutte le opzioni che si intende utilizzare e quindi scegliere Next (Successivo).

  6. Nella pagina Scegli le opzioni di avvio istanza, procedi come segue:

    1. Per Instance type requirements (Requisiti del tipo di istanza), scegli Override launch template (Sostituisci modello di avvio) e quindi Manually add instance types (Aggiungi manualmente tipi di istanza).

    2. Scegli i tipi di istanza. Puoi usare i nostri suggerimenti come punto di partenza. L'opzione Family and generation flexible (Flessibile per famiglia e generazione) è selezionata per impostazione predefinita.

      • Per modificare l'ordine dei tipi di istanza, utilizzare le frecce. Se scegli una strategia di allocazione basata sulla priorità, l'ordine del tipo di istanza imposta la priorità di avvio.

      • Per rimuovere un tipo di istanza, scegli X.

      • (Facoltativo), puoi assegnare a ciascun tipo di istanza un peso relativo utilizzando le caselle della colonna Peso. A tale scopo, inserisci il numero di unità che un'istanza di quel tipo deve contare rispetto alla capacità desiderata del gruppo. Ciò potrebbe essere utile se istanza tipi di istanza offrono diverse funzionalità di vCPU, memoria, archiviazione o larghezza di banda della rete. Per ulteriori informazioni, consulta Configurare un gruppo Auto Scaling per utilizzare i pesi delle istanze.

        Considera che se hai scelto di utilizzare i consigli Flessibile per dimensioni, tutti i tipi di istanze che fanno parte di questa sezione hanno automaticamente un valore di ponderazione. Se non desideri specificare alcun valore, deseleziona le caselle nella colonna Weight (Peso) per tutti i tipi di istanze.

    3. In Instance purchase options (Opzioni di acquisto delle istanze), per Instances distribution (Distribuzione delle istanze), specifica le percentuali del gruppo da avviare rispettivamente come istanze on demand e istanze spot. Se l'applicazione è senza stato, tollerante ai guasti e può gestire un'istanza interrotta, è possibile specificare una percentuale più alta di istanze Spot.

    4. (Facoltativo) Quando specifichi una percentuale per le istanze spot, seleziona Includi capacità di base on demand e specifica quindi la quantità minima di capacità iniziale del gruppo con dimensionamento automatico che deve essere raggiunta dalle istanze on demand. Qualsiasi cosa oltre la capacità di base utilizza le impostazioni Instances distribution (Distribuzione delle istanze) per stabilire quante istanze on demand e istanze Spot avviare.

    5. In Allocation strategies (Strategie di allocazione), per On-Demand allocation strategy (Strategia di allocazione on demand), scegli una strategia di allocazione. Quando scegli manualmente i tipi di istanza, l'opzione Prioritized (Priorità) è selezionata per impostazione predefinita.

    6. Per Spot allocation strategy (Strategia di allocazione Spot), scegli una strategia di allocazione. L'opzione Price capacity optimized (Ottimizzazione per prezzo e capacità) è selezionata per impostazione predefinita. Per impostazione predefinita, l'opzione Lowest price (Prezzo più basso) è nascosta e viene visualizzata solo quando scegli Show all strategies (Mostra tutte le strategie).

      • Se hai scelto Prezzo più basso inserisci il numero di pool con il prezzo più basso da diversificare tra i Pool con prezzi più bassi.

      • Puoi scegliere Capacità ottimizzata, puoi facoltativamente selezionare la casella Dai priorità ai tipi di istanza per far sì che Dimensionamento automatico Amazon EC2 scelga il tipo di istanza da avviare per primo in base all'ordine in cui sono elencati i tipi di istanza.

    7. Per il ribilanciamento della capacità, scegli se abilitare o disabilitare il ribilanciamento della capacità. Utilizza il ribilanciamento della capacità per rispondere automaticamente quando le tue istanze spot stanno per terminare a causa di un'interruzione spot. Per ulteriori informazioni, consulta Utilizza il ribilanciamento della capacità per gestire le interruzioni spot di Amazon EC2.

    8. In Rete, per VPC, scegli un VPC. Il gruppo con dimensionamento automatico deve essere creato nello stesso VPC del gruppo di sicurezza specificato nel modello di avvio.

    9. Per Availability Zones and subnets (Zone di disponibilità e sottoreti), scegli una o più sottoreti nel VPC specificato. Per un'elevata disponibilità, utilizza sottoreti in più zone di disponibilità. Per ulteriori informazioni, consulta Considerazioni sulla scelta di sottoreti VPC.

    10. Scegli Avanti, Avanti.

  7. Per la fase Configure group size and scaling policies (Configura le dimensioni dei gruppi e le policy di scalabilità), procedi come riportato di seguito:

    1. In Dimensioni gruppo, per Capacità desiderata, immettere il numero iniziale di istanze da avviare.

      Per impostazione predefinita, la capacità desiderata è espressa come numero di istanze. Se hai assegnato dei pesi ai tuoi tipi di istanze, devi convertire questo valore nella stessa unità di misura utilizzata per assegnare i pesi, ad esempio il numero di vCPU.

    2. Nella sezione Dimensionamento, in Limiti di dimensionamento, se il nuovo valore per la capacità desiderata è maggiore della capacità minima desiderata e della capacità massima desiderata, la capacità massima desiderata viene automaticamente aumentata fino al nuovo valore di capacità desiderato. È possibile modificare questi limiti se necessario. Per ulteriori informazioni, consulta Impostare i limiti di dimensionamento per il gruppo con dimensionamento automatico.

  8. Selezionare Passa a revisione.

  9. Nella pagina Verifica, scegliere Crea gruppo con dimensionamento automatico.

Crea un gruppo di istanze miste (AWS CLI)

Per creare un gruppo di istanze miste tramite la riga di comando

Utilizzare uno dei seguenti comandi:

Configurazioni di esempio

Le seguenti configurazioni di esempio mostrano come creare gruppi di istanze miste utilizzando le diverse strategie di allocazione Spot.

Nota

Questi esempi mostrano come utilizzare un file di configurazione formattato in JSON o YAML. Se utilizzate la AWS CLI versione 1, dovete specificare un file di configurazione in formato JSON. Se si utilizza la AWS CLI versione 2, è possibile specificare un file di configurazione formattato in YAML o JSON.

Esempio 1: avvio di Istanze Spot con la strategia di allocazione capacity-optimized

Il seguente comando: create-auto-scaling-group, crea un gruppo con dimensionamento automatico che specifica quanto segue:

  • La percentuale del gruppo da avviare come istanze on demand (0) e il numero di base di istanze on demand con cui iniziare (1).

  • I tipi di istanza da avviare in ordine di priorità (c5.large, c5a.large, m5.large, m5a.large, c4.large, m4.large, c3.large, m3.large).

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

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

Quando Amazon EC2 Auto Scaling tenta di soddisfare la capacità on demand, avvia prima il tipo di istanza c5.large. Le istanze Spot provengono dal pool Spot ottimale in ciascuna zona di disponibilità in base alla capacità delle istanze Spot.

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": "$Default" }, "Overrides": [ { "InstanceType": "c5.large" }, { "InstanceType": "c5a.large" }, { "InstanceType": "m5.large" }, { "InstanceType": "m5a.large" }, { "InstanceType": "c4.large" }, { "InstanceType": "m4.large" }, { "InstanceType": "c3.large" }, { "InstanceType": "m3.large" } ] }, "InstancesDistribution": { "OnDemandBaseCapacity": 1, "OnDemandPercentageAboveBaseCapacity": 0, "SpotAllocationStrategy": "capacity-optimized" } }, "MinSize": 1, "MaxSize": 5, "DesiredCapacity": 3, "VPCZoneIdentifier": "subnet-5ea0c127,subnet-6194ea3b,subnet-c934b782" }

In alternativa, puoi utilizzare il seguente comando create-auto-scaling-group per creare il gruppo con dimensionamento automatico. Questo fa riferimento a un file YAML, non a un file JSON, come unico parametro per il gruppo con dimensionamento automatico.

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

Il file config.yaml contiene il seguente contenuto.

--- AutoScalingGroupName: my-asg MixedInstancesPolicy: LaunchTemplate: LaunchTemplateSpecification: LaunchTemplateName: my-launch-template Version: $Default Overrides: - InstanceType: c5.large - InstanceType: c5a.large - InstanceType: m5.large - InstanceType: m5a.large - InstanceType: c4.large - InstanceType: m4.large - InstanceType: c3.large - InstanceType: m3.large InstancesDistribution: OnDemandBaseCapacity: 1 OnDemandPercentageAboveBaseCapacity: 0 SpotAllocationStrategy: capacity-optimized MinSize: 1 MaxSize: 5 DesiredCapacity: 3 VPCZoneIdentifier: subnet-5ea0c127,subnet-6194ea3b,subnet-c934b782

Esempio 2: avvio di Istanze Spot con la strategia di allocazione capacity-optimized-prioritized

Il seguente comando: create-auto-scaling-group, crea un gruppo con dimensionamento automatico che specifica quanto segue:

  • La percentuale del gruppo da avviare come istanze on demand (0) e il numero di base di istanze on demand con cui iniziare (1).

  • I tipi di istanza da avviare in ordine di priorità (c5.large, c5a.large, m5.large, m5a.large, c4.large, m4.large, c3.large, m3.large).

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

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

Quando Amazon EC2 Auto Scaling tenta di soddisfare la capacità on demand, avvia prima il tipo di istanza c5.large. Quando Dimensionamento automatico Amazon EC2 cerca di soddisfare la tua capacità Spot, rispetta le priorità del tipo di istanza sulla base del miglior tentativo. Tuttavia, prima ottimizza la capacità.

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": "c5.large" }, { "InstanceType": "c5a.large" }, { "InstanceType": "m5.large" }, { "InstanceType": "m5a.large" }, { "InstanceType": "c4.large" }, { "InstanceType": "m4.large" }, { "InstanceType": "c3.large" }, { "InstanceType": "m3.large" } ] }, "InstancesDistribution": { "OnDemandBaseCapacity": 1, "OnDemandPercentageAboveBaseCapacity": 0, "SpotAllocationStrategy": "capacity-optimized-prioritized" } }, "MinSize": 1, "MaxSize": 5, "DesiredCapacity": 3, "VPCZoneIdentifier": "subnet-5ea0c127,subnet-6194ea3b,subnet-c934b782" }

In alternativa, puoi utilizzare il seguente comando create-auto-scaling-group per creare il gruppo con dimensionamento automatico. Questo fa riferimento a un file YAML, non a un file JSON, come unico parametro per il gruppo con dimensionamento automatico.

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

Il file config.yaml contiene il seguente contenuto.

--- AutoScalingGroupName: my-asg MixedInstancesPolicy: LaunchTemplate: LaunchTemplateSpecification: LaunchTemplateName: my-launch-template Version: $Default Overrides: - InstanceType: c5.large - InstanceType: c5a.large - InstanceType: m5.large - InstanceType: m5a.large - InstanceType: c4.large - InstanceType: m4.large - InstanceType: c3.large - InstanceType: m3.large InstancesDistribution: OnDemandBaseCapacity: 1 OnDemandPercentageAboveBaseCapacity: 0 SpotAllocationStrategy: capacity-optimized-prioritized MinSize: 1 MaxSize: 5 DesiredCapacity: 3 VPCZoneIdentifier: subnet-5ea0c127,subnet-6194ea3b,subnet-c934b782

Esempio 3: avvio di istanze Spot utilizzando la strategia di allocazione lowest-price diversificata su due pool

Il seguente comando: create-auto-scaling-group, crea un gruppo con dimensionamento automatico che specifica quanto segue:

  • La percentuale del gruppo da avviare come istanze on demand (50). (Questa impostazione non specifica anche il numero di base di istanze on demand con cui iniziare).

  • I tipi di istanza da avviare in ordine di priorità (c5.large, c5a.large, m5.large, m5a.large, c4.large, m4.large, c3.large, m3.large).

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

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

Quando Amazon EC2 Auto Scaling tenta di soddisfare la capacità on demand, avvia prima il tipo di istanza c5.large. Per la capacità Spot, Dimensionamento automatico Amazon EC2 tenta di avviare le istanze Spot in modo uniforme nei due pool con il prezzo più basso in ciascuna zona di disponibilità.

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": "c5.large" }, { "InstanceType": "c5a.large" }, { "InstanceType": "m5.large" }, { "InstanceType": "m5a.large" }, { "InstanceType": "c4.large" }, { "InstanceType": "m4.large" }, { "InstanceType": "c3.large" }, { "InstanceType": "m3.large" } ] }, "InstancesDistribution": { "OnDemandPercentageAboveBaseCapacity": 50, "SpotAllocationStrategy": "lowest-price", "SpotInstancePools": 2 } }, "MinSize": 1, "MaxSize": 5, "DesiredCapacity": 3, "VPCZoneIdentifier": "subnet-5ea0c127,subnet-6194ea3b,subnet-c934b782" }

In alternativa, puoi utilizzare il seguente comando create-auto-scaling-group per creare il gruppo con dimensionamento automatico. Questo fa riferimento a un file YAML, non a un file JSON, come unico parametro per il gruppo con dimensionamento automatico.

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

Il file config.yaml contiene il seguente contenuto.

--- AutoScalingGroupName: my-asg MixedInstancesPolicy: LaunchTemplate: LaunchTemplateSpecification: LaunchTemplateName: my-launch-template Version: $Default Overrides: - InstanceType: c5.large - InstanceType: c5a.large - InstanceType: m5.large - InstanceType: m5a.large - InstanceType: c4.large - InstanceType: m4.large - InstanceType: c3.large - InstanceType: m3.large InstancesDistribution: OnDemandPercentageAboveBaseCapacity: 50 SpotAllocationStrategy: lowest-price SpotInstancePools: 2 MinSize: 1 MaxSize: 5 DesiredCapacity: 3 VPCZoneIdentifier: subnet-5ea0c127,subnet-6194ea3b,subnet-c934b782

Esempio 4: Lancio di Istanze spot con la strategia di allocazione price-capacity-optimized

Il seguente comando: create-auto-scaling-group, crea un gruppo con dimensionamento automatico che specifica quanto segue:

  • La percentuale del gruppo da avviare come istanze on demand (30). (Questa impostazione non specifica anche il numero di base di istanze on demand con cui iniziare).

  • I tipi di istanza da avviare in ordine di priorità (c5.large, c5a.large, m5.large, m5a.large, c4.large, m4.large, c3.large, m3.large).

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

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

Quando Amazon EC2 Auto Scaling tenta di soddisfare la capacità on demand, avvia prima il tipo di istanza c5.large. Per quanto riguarda la capacità spot, Dimensionamento automatico Amazon EC2 tenta di avviare le istanze spot da pool di istanze spot con il prezzo più basso possibile, ma anche con capacità ottimale per il numero di istanze che vengono avviate.

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": "c5.large" }, { "InstanceType": "c5a.large" }, { "InstanceType": "m5.large" }, { "InstanceType": "m5a.large" }, { "InstanceType": "c4.large" }, { "InstanceType": "m4.large" }, { "InstanceType": "c3.large" }, { "InstanceType": "m3.large" } ] }, "InstancesDistribution": { "OnDemandPercentageAboveBaseCapacity": 30, "SpotAllocationStrategy": "price-capacity-optimized" } }, "MinSize": 1, "MaxSize": 5, "DesiredCapacity": 3, "VPCZoneIdentifier": "subnet-5ea0c127,subnet-6194ea3b,subnet-c934b782" }

In alternativa, puoi utilizzare il seguente comando create-auto-scaling-group per creare il gruppo con dimensionamento automatico. Questo fa riferimento a un file YAML, non a un file JSON, come unico parametro per il gruppo con dimensionamento automatico.

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

Il file config.yaml contiene il seguente contenuto.

--- AutoScalingGroupName: my-asg MixedInstancesPolicy: LaunchTemplate: LaunchTemplateSpecification: LaunchTemplateName: my-launch-template Version: $Default Overrides: - InstanceType: c5.large - InstanceType: c5a.large - InstanceType: m5.large - InstanceType: m5a.large - InstanceType: c4.large - InstanceType: m4.large - InstanceType: c3.large - InstanceType: m3.large InstancesDistribution: OnDemandPercentageAboveBaseCapacity: 30 SpotAllocationStrategy: price-capacity-optimized MinSize: 1 MaxSize: 5 DesiredCapacity: 3 VPCZoneIdentifier: subnet-5ea0c127,subnet-6194ea3b,subnet-c934b782