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
eus-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 allocazionelowest-price
.
Per avviare istanze on demand in prenotazioni della capacità targeted è necessario eseguire una serie di passaggi, come indicato di seguito:
- Fase 1: creazione di prenotazioni della capacità
- Fase 2: creazione di un gruppo di risorse di prenotazione della capacità
- Fase 3: aggiunta delle prenotazioni della capacità al gruppo di risorse di prenotazione della capacità
- (Facoltativo) Fase 4: visualizzazione delle prenotazioni delle capacità nel gruppo di risorse
- Fase 5: creazione di un modello di avvio che specifichi che la prenotazione della capacità è destinata a un gruppo di risorse specifico
- (Facoltativo) Fase 6: descrizione del modello di avvio
- Fase 7: Creare una flotta EC2
- (Facoltativo) Fase 8: visualizzazione del numero di prenotazioni delle capacità non utilizzate rimanenti
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
inus-east-1a
-
3 istanze on demand vengono avviate in 3 prenotazioni della capacità
c5.xlarge
targeted
inus-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
}