Tutorial: Avvio di Istanze on demand utilizzando le prenotazioni della capacità obiettivo - 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à.

Tutorial: Avvio di Istanze on demand utilizzando le prenotazioni della capacità obiettivo

Questo tutorial illustra tutti i passaggi da eseguire in modo che il parco istanze EC2 avvii le istanze on demand sulle prenotazioni della capacità targeted.

Verrà illustrato come configurare un parco istanze per utilizzare prima le prenotazioni della capacità on demand targeted all'avvio delle istanze on demand. Verrà inoltre illustrato come configurare il parco istanze in modo che, quando la capacità on demand obiettivo totale supera il numero di prenotazioni della capacità inutilizzate disponibili, il parco istanze utilizzi la strategia di allocazione specificata per selezionare i pool di istanze in cui avviare la capacità obiettivo rimanente.

Configurazione del parco istanze EC2

In questo tutorial, la configurazione del parco istanze è la seguente:

  • Capacità obiettivo: 10 istanze on demand

  • Prenotazioni della capacità targeted inutilizzate totali: 6 (meno della capacità obiettivo on demand del parco istanze di 10 istanze on demand)

  • Numero di prenotazioni della capacità per pool: 2 (us-east-1a e us-east-1b)

  • Numero di prenotazioni della capacità per pool: 3

  • Strategia di allocazione on demand: lowest-price. (Quando il numero di prenotazioni della capacità inutilizzate è inferiore alla capacità obiettivo on demand, il parco istanze determina i pool in cui avviare la capacità on demand rimanente in base alla strategia di allocazione on demand.)

    Tenere presente che è anche possibile utilizzare la strategia di allocazione prioritized invece della strategia di allocazione lowest-price.

Fase 1: creazione di prenotazioni della capacità

Utilizzate il create-capacity-reservationcomando per creare le prenotazioni di capacità, tre per e altre tre per. us-east-1a us-east-1b Ad eccezione della zona di disponibilità, gli altri attributi delle prenotazioni della capacità sono identici.

3 prenotazioni della capacità in us-east-1a

aws ec2 create-capacity-reservation \ --availability-zone us-east-1a\ --instance-type c5.xlarge\ --instance-platform Linux/UNIX \ --instance-count 3 \ --instance-match-criteria targeted

Esempio di ID prenotazione della capacità risultante

cr-1234567890abcdef1

3 prenotazioni della capacità in us-east-1b

aws ec2 create-capacity-reservation \ --availability-zone us-east-1b\ --instance-type c5.xlarge\ --instance-platform Linux/UNIX \ --instance-count 3 \ --instance-match-criteria targeted

Esempio di ID prenotazione della capacità risultante

cr-54321abcdef567890

Fase 2: creazione di un gruppo di risorse di prenotazione della capacità

Utilizzare il servizio resource-groups e il comando create-group per creare un gruppo di risorse prenotazioni della capacità. In questo esempio, il gruppo di risorse è denominato my-cr-group. Per informazioni sul motivo per cui è necessario creare un gruppo di risorse, consulta Utilizzo di Prenotazioni di capacità per Istanze on demand.

aws resource-groups create-group \ --name my-cr-group \ --configuration '{"Type":"AWS::EC2::CapacityReservationPool"}' '{"Type":"AWS::ResourceGroups::Generic", "Parameters": [{"Name": "allowed-resource-types", "Values": ["AWS::EC2::CapacityReservation"]}]}'

Fase 3: aggiunta delle prenotazioni della capacità al gruppo di risorse di prenotazione della capacità

Utilizzare il servizio resource-groups e il comando group-resources per aggiungere le prenotazioni della capacità create nella fase 1 al gruppo di risorse prenotazioni della capacità. Tenere presente che è necessario fare riferimento alle prenotazioni della capacità on demand in base ai relativi ARN.

aws resource-groups group-resources \ --group my-cr-group \ --resource-arns \ arn:aws:ec2:us-east-1:123456789012:capacity-reservation/cr-1234567890abcdef1 \ arn:aws:ec2:us-east-1:123456789012:capacity-reservation/cr-54321abcdef567890

Output di esempio

{ "Failed": [], "Succeeded": [ "arn:aws:ec2:us-east-1:123456789012:capacity-reservation/cr-1234567890abcdef1", "arn:aws:ec2:us-east-1:123456789012:capacity-reservation/cr-54321abcdef567890" ] }

(Facoltativo) Fase 4: visualizzazione delle prenotazioni delle capacità nel gruppo di risorse

Utilizza il resource-groups servizio e il list-group-resourcescomando per descrivere facoltativamente il gruppo di risorse per visualizzarne le prenotazioni di capacità.

aws resource-groups list-group-resources --group my-cr-group

Output di esempio

{ "ResourceIdentifiers": [ { "ResourceType": "AWS::EC2::CapacityReservation", "ResourceArn": "arn:aws:ec2:us-east-1:123456789012:capacity-reservation/cr-1234567890abcdef1" }, { "ResourceType": "AWS::EC2::CapacityReservation", "ResourceArn": "arn:aws:ec2:us-east-1:123456789012:capacity-reservation/cr-54321abcdef567890" } ] }

Fase 5: creazione di un modello di avvio che specifichi che la prenotazione della capacità è destinata a un gruppo di risorse specifico

Utilizzate il create-launch-templatecomando per creare un modello di avvio in cui specificare le prenotazioni di capacità da utilizzare. In questo esempio, il parco istanze utilizza le prenotazioni della capacità targeted che sono state aggiunte a un gruppo di risorse. Pertanto, i dati del modello di avvio specificano che la prenotazione della capacità è destinata a un gruppo di risorse specifico. In questo esempio, il modello di avvio è denominato my-launch-template.

aws ec2 create-launch-template \ --launch-template-name my-launch-template \ --launch-template-data \ '{"ImageId": "ami-0123456789example", "CapacityReservationSpecification": {"CapacityReservationTarget": { "CapacityReservationResourceGroupArn": "arn:aws:resource-groups:us-east-1:123456789012:group/my-cr-group" } } }'

(Facoltativo) Fase 6: descrizione del modello di avvio

Utilizzate il describe-launch-templatecomando per descrivere facoltativamente il modello di lancio per visualizzarne la configurazione.

aws ec2 describe-launch-template-versions --launch-template-name my-launch-template

Output di esempio

{ "LaunchTemplateVersions": [ { "LaunchTemplateId": "lt-01234567890example", "LaunchTemplateName": "my-launch-template", "VersionNumber": 1, "CreateTime": "2021-01-19T20:50:19.000Z", "CreatedBy": "arn:aws:iam::123456789012:user/Admin", "DefaultVersion": true, "LaunchTemplateData": { "ImageId": "ami-0947d2ba12ee1ff75", "CapacityReservationSpecification": { "CapacityReservationTarget": { "CapacityReservationResourceGroupArn": "arn:aws:resource-groups:us-east-1:123456789012:group/my-cr-group" } } } } ] }

Fase 7: creazione di un parco istanze EC2

Creare un parco istanze EC2 che specifichi le informazioni di configurazione per le istanze che avvierà. La seguente configurazione del parco istanze EC2 mostra solo le configurazioni pertinenti per questo esempio. Il modello di avvio my-launch-template è il modello di avvio creato al passaggio 5. Esistono due pool di istanze, entrambi con lo stesso tipo di istanza (c5.xlarge) ma con diverse zone di disponibilità (us-east-1a e us-east-1b). Il prezzo dei pool di istanze è lo stesso perché la determinazione dei prezzi è definita per la Regione, non per la zona di disponibilità. La capacità obiettivo totale è 10 e il tipo di capacità obiettivo predefinito è on-demand. La strategia di allocazione on demand è lowest-price. La strategia di utilizzo per la prenotazione della capacità è use-capacity-reservations-first.

Nota

Il tipo di parco istanze deve essere instant. Altri tipi di parchi istanze non supportano use-capacity-reservations-first.

{ "LaunchTemplateConfigs": [ { "LaunchTemplateSpecification": { "LaunchTemplateName": "my-launch-template", "Version": "1" }, "Overrides": [ { "InstanceType": "c5.xlarge", "AvailabilityZone": "us-east-1a" }, { "InstanceType": "c5.xlarge", "AvailabilityZone": "us-east-1b" } ] } ], "TargetCapacitySpecification": { "TotalTargetCapacity": 10, "DefaultTargetCapacityType": "on-demand" }, "OnDemandOptions": { "AllocationStrategy": "lowest-price", "CapacityReservationOptions": { "UsageStrategy": "use-capacity-reservations-first" } }, "Type": "instant" }

Dopo aver creato il parco istanze instant utilizzando la configurazione precedente, vengono avviate le seguenti 10 istanze per soddisfare la capacità obiettivo:

  • Le prenotazioni della capacità vengono prima utilizzate per avviare 6 istanze on demand nel modo seguente:

    • 3 istanze on demand vengono avviate in 3 prenotazioni della capacità c5.xlarge targeted in us-east-1a

    • 3 istanze on demand vengono avviate in 3 prenotazioni della capacità c5.xlarge targeted in us-east-1b

  • Per soddisfare la capacità obiettivo, vengono avviate 4 istanze on demand aggiuntive nella capacità on demand in base alla strategia di allocazione on demand che in questo esempio è lowest-price. Tuttavia, poiché i pool hanno lo stesso prezzo (poiché il prezzo è per Regione e non per zona di disponibilità), il parco istanze avvia le restanti 4 istanze on demand in uno dei pool.

(Facoltativo) Fase 8: visualizzazione del numero di prenotazioni delle capacità non utilizzate rimanenti

Dopo il lancio della flotta, puoi facoltativamente eseguire l'operazione describe-capacity-reservationsper vedere quante prenotazioni di capacità non utilizzate sono rimaste. In questo esempio, dovresti vedere la seguente risposta, che mostra che tutti i Prenotazioni di capacità del pool sono stati utilizzati.

{ "CapacityReservationId": "cr-111", "InstanceType": "c5.xlarge", "AvailableInstanceCount": 0 } { "CapacityReservationId": "cr-222", "InstanceType": "c5.xlarge", "AvailableInstanceCount": 0 }