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

Questo tutorial illustra tutti i passaggi da eseguire affinché la EC2 flotta lanci le istanze on demand in targeted Capacity Reservations.

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.

EC2Configurazione del parco veicoli

In questo tutorial, la flotta è configurata come segue:

  • 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 us-east-1a e altre tre perus-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 Utilizza Capacity Reservations per riservare la capacità su richiesta in Fleet 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 è necessario fare riferimento alle prenotazioni di capacità su richiesta tramite loroARNs.

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-template-versionscomando 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: Creare una flotta EC2

Crea una EC2 flotta che specifichi le informazioni di configurazione per le istanze che verrà avviata. La seguente configurazione EC2 Fleet 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 }