View a markdown version of this page

Tutorial: configura la flotta EC2 per avviare On-Demand istanze utilizzando prenotazioni di capacità mirate - 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: configura la flotta EC2 per avviare On-Demand istanze utilizzando prenotazioni di capacità mirate

Questo tutorial illustra tutti i passaggi da eseguire affinché il parco istanze EC2 inserisca le istanze nelle prenotazioni di capacità. On-Demand targeted

Imparerai come configurare un parco istanze per utilizzare innanzitutto le prenotazioni di targeted On-Demand capacità al momento del lancio delle istanze. On-Demand Imparerai anche a configurare il parco veicoli in modo che, quando la capacità totale On-Demand target supera il numero di prenotazioni di capacità non utilizzate disponibili, il parco veicoli utilizzi la strategia di allocazione specificata per selezionare i pool di istanze in cui lanciare la capacità target rimanente.

Configurazione del parco istanze EC2

In questo tutorial, il parco istanze è configurato come indicato di seguito:

  • Capacità target: 10 istanze On-Demand

  • Numero totale di prenotazioni targeted di capacità inutilizzate: 6 (inferiori alla capacità On-Demand target di 10 On-Demand istanze prevista dalla flotta)

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

  • Numero di prenotazioni della capacità per pool: 3

  • On-Demand strategia di allocazione: lowest-price (quando il numero di prenotazioni di capacità inutilizzate è inferiore alla capacità On-Demand obiettivo, la flotta determina i pool in cui lanciare la On-Demand capacità residua in base alla On-Demand strategia di allocazione).

    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à

Utilizzare il comando create-capacity-reservation per creare le prenotazioni della capacità, tre per us-east-1a e altre tre per 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 Usa Capacity Reservations per riservare On-Demand capacità nella flotta EC2.

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à. Tieni presente che devi fare riferimento alle prenotazioni di On-Demand capacità tramite i 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

Utilizzare il servizio resource-groups e il comando list-group-resources per descrivere facoltativamente il gruppo di risorse per visualizzarne le prenotazioni della 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

Utilizzare il comando create-launch-template per creare un modello di avvio in cui specificare le prenotazioni della 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

Utilizzare il comando describe-launch-template-versions per descrivere facoltativamente il modello di avvio 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 On-Demand allocazione è. 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 di capacità vengono utilizzate innanzitutto per avviare 6 On-Demand istanze come segue:

    • 3 On-Demand istanze vengono lanciate nelle 3 prenotazioni di c5.xlarge targeted capacità in us-east-1a

    • 3 On-Demand istanze vengono lanciate nelle 3 prenotazioni di c5.xlarge targeted capacità in us-east-1b

  • Per raggiungere la capacità prevista, 4 On-Demand istanze aggiuntive vengono avviate alla On-Demand capacità normale in base alla strategia di On-Demand allocazione, illustrata lowest-price in questo esempio. Tuttavia, poiché i pool hanno lo stesso prezzo (poiché il prezzo è per regione e non per zona di disponibilità), la flotta lancia le 4 On-Demand istanze rimanenti in uno dei pool.

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

Dopo l'avvio del parco istanze, puoi facoltativamente eseguire describe-capacity-reservations per vedere quante prenotazioni della capacità sono rimaste inutilizzate. 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 }