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
targeteddi 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-1aeus-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
prioritizedinvece della strategia di allocazionelowest-price.
Per avviare On-Demand le istanze in targeted Capacity Reservations, devi eseguire una serie di passaggi, come segue:
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 \ --namemy-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 \ --groupmy-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 --groupmy-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-namemy-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-namemy-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.xlargetargetedcapacità inus-east-1a -
3 On-Demand istanze vengono lanciate nelle 3 prenotazioni di
c5.xlargetargetedcapacità inus-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-pricein 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
}