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à.
Crea una EC2 flotta
Per creare una EC2 flotta, definisci la configurazione della flotta in un JSON file e fai riferimento al file con il comando create-fleet AWS CLI . Nel JSON file, è necessario specificare la capacità target totale per il parco istanze, le capacità target separate per le istanze Spot e le istanze On-Demand e un modello di avvio che definisca la configurazione per le istanze del parco istanze, ad esempio un tipo di istanza, una sottorete o una AMI zona di disponibilità e uno o più gruppi di sicurezza. Facoltativamente, puoi specificare configurazioni aggiuntive, come i parametri per sostituire la configurazione del modello di lancio, le strategie di allocazione per selezionare le istanze Spot e le istanze On-Demand dai pool di EC2 capacità e l'importo massimo che sei disposto a pagare per il parco istanze. Per ulteriori informazioni, consulta Opzioni di configurazione per la tua EC2 flotta o la tua flotta Spot.
The EC2 Fleet lancia le istanze On-Demand quando la capacità è disponibile e le istanze Spot quando il prezzo massimo supera il prezzo Spot e la capacità è disponibile.
Se il tuo parco istanze Spot include istanze Spot ed è del tipomaintain
, Amazon EC2 cercherà di mantenere la capacità target del parco istanze in caso di interruzione delle istanze Spot.
EC2Limitazioni del parco veicoli
Le seguenti limitazioni si applicano a EC2 Fleet:
-
La creazione di una EC2 flotta è disponibile solo tramite Amazon EC2 API AWS CLI, AWS SDKs, e AWS CloudFormation.
-
Una richiesta di EC2 flotta non può estendersi a AWS diverse regioni. È necessario creare una EC2 flotta separata per ogni regione.
-
Una richiesta EC2 Fleet non può estendersi a diverse sottoreti della stessa zona di disponibilità.
EC2Prerequisiti della flotta
Per creare una EC2 flotta, devono essere soddisfatti i seguenti prerequisiti:
Modello di avvio
Un modello di avvio specifica le informazioni di configurazione sulle istanze da avviare, come il tipo di istanza e la zona di disponibilità. Per ulteriori informazioni sui modelli di avvio, consulta. Memorizza i parametri di avvio delle istanze nei modelli di EC2 lancio di Amazon
Ruolo legato ai servizi per Fleet EC2
Il AWSServiceRoleForEC2Fleet
ruolo concede al EC2 Fleet l'autorizzazione a richiedere, avviare, terminare e contrassegnare le istanze per tuo conto. Amazon EC2 utilizza questo ruolo collegato al servizio per completare le seguenti azioni:
-
ec2:RunInstances
– Avviare istanze. -
ec2:RequestSpotInstances
– Richiesta Istanze spot. -
ec2:TerminateInstances
– Terminare istanze -
ec2:DescribeImages
— Descrivi Amazon Machine Images (AMIs) per le istanze. -
ec2:DescribeInstanceStatus
— Descrivi lo stato delle istanze. -
ec2:DescribeSubnets
— Descrivi le sottoreti per le istanze. -
ec2:CreateTags
— Aggiungi tag alla EC2 flotta, alle istanze e ai volumi.
Assicurati che questo ruolo esista prima di utilizzare AWS CLI o an API per creare un EC2 parco veicoli.
Nota
Una instant
EC2 flotta non richiede questo ruolo.
Per creare il ruolo, usa la IAM console come segue.
Per creare il AWSServiceRoleForEC2Fleet ruolo di EC2 Fleet
Apri la IAM console all'indirizzo https://console.aws.amazon.com/iam/
. -
Nel pannello di navigazione, seleziona Roles (Ruoli).
-
Selezionare Create role (Crea ruolo).
-
Nella pagina Seleziona un'entità attendibile, esegui le operazioni seguenti:
-
Per Tipo di entità attendibile, scegli Servizio AWS .
-
In Caso d'uso, per Servizio o caso d'uso, scegli EC2- Fleet.
Suggerimento
Assicurati di scegliere EC2- Flotta. Se scegli EC2, il caso d'uso EC2- Fleet non viene visualizzato nell'elenco dei casi d'uso. Lo use case EC2- Fleet creerà automaticamente una policy con le IAM autorizzazioni richieste e la suggerirà AWSServiceRoleForEC2Fleetcome nome del ruolo.
-
Scegli Next (Successivo).
-
-
Nella pagina Add permissions (Aggiungi autorizzazioni), scegli Next (Successivo).
-
Nella pagina Nomina, rivedi e crea scegli Crea ruolo.
Se non hai più bisogno di usare EC2 Fleet, ti consigliamo di eliminare il AWSServiceRoleForEC2Fleetruolo. Dopo che questo ruolo è stato eliminato dal proprio account, è possibile creare di nuovo il ruolo se si crea un altro parco istanze.
Per ulteriori informazioni, consulta i ruoli collegati ai servizi nella Guida per l'IAMutente.
Concedi l'accesso alle chiavi gestite dal cliente da utilizzare con copie crittografate AMIs e istantanee EBS
Se specifichi uno EBS snapshot Amazon crittografato AMI o crittografato nella tua EC2 flotta e utilizzi una AWS KMS chiave per la crittografia, devi concedere al AWSServiceRoleForEC2Fleetruolo l'autorizzazione a utilizzare la chiave gestita dal cliente in modo che Amazon EC2 possa avviare istanze per tuo conto. Per farlo, occorre aggiungere una concessione alla chiave gestita dal cliente, come mostrato nella procedura seguente.
Nel processo di assegnazione delle autorizzazioni, le concessioni rappresentano un'alternativa alle policy delle chiavi. Per ulteriori informazioni, consulta Utilizzo delle concessioni e Utilizzo delle policy delle chiavi in AWS KMS nella Guida per gli sviluppatori di AWS Key Management Service .
Per concedere al AWSServiceRoleForEC2Fleet ruolo le autorizzazioni all'uso della chiave gestita dal cliente
-
Utilizza il comando create-grant per aggiungere una concessione alla chiave gestita dal cliente e per specificare il principale (il ruolo AWSServiceRoleForEC2Fleetcollegato al servizio) a cui è concessa l'autorizzazione per eseguire le operazioni consentite dalla concessione. La chiave gestita dal cliente è specificata dal
key-id
parametro e dalla chiave gestita dal ARN cliente. Il principale è specificato dalgrantee-principal
parametro e dal ARN ruolo AWSServiceRoleForEC2Fleetcollegato al servizio.aws kms create-grant \ --region
us-east-1
\ --key-id arn:aws:kms:us-east-1
:444455556666
:key/1234abcd-12ab-34cd-56ef-1234567890ab
\ --grantee-principal arn:aws:iam::111122223333
:role/AWSServiceRoleForEC2Fleet \ --operations "Decrypt" "Encrypt" "GenerateDataKey" "GenerateDataKeyWithoutPlaintext" "CreateGrant" "DescribeKey" "ReEncryptFrom" "ReEncryptTo"
Autorizzazioni per gli utenti di Fleet EC2
Se i tuoi utenti creeranno o gestiranno una EC2 flotta, assicurati di concedere loro le autorizzazioni richieste.
Per creare una politica per EC2 Fleet
Apri la IAM console all'indirizzo https://console.aws.amazon.com/iam/
. -
Nel pannello di navigazione, selezionare Policies (Policy).
-
Scegli Create Policy (Crea policy).
-
Nella pagina Crea politica, scegli la JSONscheda, sostituisci il testo con quanto segue e scegli Rivedi politica.
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "ec2:*" ], "Resource": "*" }, { "Effect": "Allow", "Action": [ "iam:ListRoles", "iam:PassRole", "iam:ListInstanceProfiles" ], "Resource":"arn:aws:iam::123456789012:role/DevTeam*" } ] }
ec2:*
Concede all'utente l'autorizzazione a richiamare tutte le EC2 API azioni Amazon. Per limitare l'utente a specifiche EC2 API azioni Amazon, specifica invece tali azioni.L'utente deve avere l'autorizzazione per avviare l'
iam:ListRoles
azione per enumerare IAM i ruoli esistenti, l'iam:PassRole
azione per specificare il ruolo EC2 Fleet e l'azione per enumerare i profiliiam:ListInstanceProfiles
di istanza esistenti.(Facoltativo) Per consentire a un utente di creare ruoli o profili di istanza utilizzando la IAM console, è inoltre necessario aggiungere le seguenti azioni alla policy:
-
iam:AddRoleToInstanceProfile
-
iam:AttachRolePolicy
-
iam:CreateInstanceProfile
-
iam:CreateRole
-
iam:GetRole
-
iam:ListPolicies
-
-
Nella pagina Review policy (Rivedi policy), immettere un nome policy e una descrizione, poi selezionare Create policy (Crea policy).
-
Per fornire l'accesso, aggiungi autorizzazioni ai tuoi utenti, gruppi o ruoli:
-
Utenti e gruppi in AWS IAM Identity Center:
Crea un set di autorizzazioni. Segui le istruzioni riportate nella pagina Create a permission set (Creazione di un set di autorizzazioni) nella Guida per l'utente di AWS IAM Identity Center .
-
Utenti gestiti IAM tramite un provider di identità:
Crea un ruolo per la federazione delle identità. Segui le istruzioni riportate in Creazione di un ruolo per un provider di identità di terze parti (federazione) nella Guida per l'IAMutente.
-
IAMutenti:
-
Crea un ruolo che l'utente possa assumere. Segui le istruzioni riportate nella sezione Creazione di un ruolo per un IAM utente nella Guida per l'IAMutente.
-
(Non consigliato) Collega una policy direttamente a un utente o aggiungi un utente a un gruppo di utenti. Segui le istruzioni riportate in Aggiungere autorizzazioni a un utente (console) nella Guida per l'IAMutente.
-
-
Crea un parco veicoli EC2
Per avviare una flotta di istanze utilizzando EC2 Fleet, devi solo specificare i seguenti parametri nella richiesta del parco istanze e il parco istanze utilizzerà i valori predefiniti per gli altri parametri:
-
LaunchTemplateId
oppureLaunchTemplateName
: specifica il modello di avvio da utilizzare (che contiene i parametri per le istanze da avviare, come il tipo di istanza e la zona di disponibilità) -
TotalTargetCapacity
: specifica la capacità di destinazione totale per il parco istanze -
DefaultTargetCapacityType
: specifica se l'opzione di acquisto di default è On demand o Spot
Per sovrascrivere i parametri specificati nel modello di avvio, è possibile specificare una o più sostituzioni. Ogni sostituzione può variare in base al tipo di istanza, alla zona di disponibilità, alla sottorete e al prezzo massimo e può includere una capacità ponderata diversa. In alternativa alla specifica del tipo di istanza, puoi specificare gli attributi che deve avere un'istanza e Amazon EC2 identificherà tutti i tipi di istanza con tali attributi. Per ulteriori informazioni, consulta Specificare gli attributi, ad esempio la selezione del tipo per EC2 Fleet o Spot Fleet..
Per EC2 Fleet di tipoinstant
, è possibile specificare un parametro Systems Manager anziché l'AMIID. È possibile specificare il parametro Systems Manager nell'override o nel modello di avvio. Per ulteriori informazioni, consulta Utilizzare un parametro Systems Manager anziché un AMI ID.
È possibile specificare i parametri della flotta in un JSON file. Per informazioni su tutti i possibili parametri che è possibile specificare, vedereVisualizza tutte le opzioni di configurazione del EC2 parco veicoli.
Per esempi di configurazione del parco veicoli, vedereCLIConfigurazioni di esempio per Fleet EC2.
Al momento non è disponibile alcun supporto da console per la creazione di una EC2 flotta.
Per creare una EC2 flotta
-
Utilizzate il comando create-fleet (AWS CLI) per creare la flotta e specificare il JSON file che contiene i parametri di configurazione della flotta.
aws ec2 create-fleet --cli-input-json file://
file_name.json
Di seguito è riportato l'output di esempio per un parco istanze del tipo request
o maintain
.
{
"FleetId": "fleet-12a34b55-67cd-8ef9-ba9b-9208dEXAMPLE"
}
Di seguito è riportato l'output di esempio per un parco istanze del tipo instant
che ha avviato la capacità target.
{
"FleetId": "fleet-12a34b55-67cd-8ef9-ba9b-9208dEXAMPLE",
"Errors": [],
"Instances": [
{
"LaunchTemplateAndOverrides": {
"LaunchTemplateSpecification": {
"LaunchTemplateId": "lt-01234a567b8910abcEXAMPLE",
"Version": "1"
},
"Overrides": {
"InstanceType": "c5.large",
"AvailabilityZone": "us-east-1a"
}
},
"Lifecycle": "on-demand",
"InstanceIds": [
"i-1234567890abcdef0",
"i-9876543210abcdef9"
],
"InstanceType": "c5.large",
"Platform": null
},
{
"LaunchTemplateAndOverrides": {
"LaunchTemplateSpecification": {
"LaunchTemplateId": "lt-01234a567b8910abcEXAMPLE",
"Version": "1"
},
"Overrides": {
"InstanceType": "c4.large",
"AvailabilityZone": "us-east-1a"
}
},
"Lifecycle": "on-demand",
"InstanceIds": [
"i-5678901234abcdef0",
"i-5432109876abcdef9"
]
]
}
Di seguito è riportato l'output di esempio per un parco istanze del tipo instant
che ha avviato parte della capacità target con errori per le istanze che non erano state avviate.
{
"FleetId": "fleet-12a34b55-67cd-8ef9-ba9b-9208dEXAMPLE",
"Errors": [
{
"LaunchTemplateAndOverrides": {
"LaunchTemplateSpecification": {
"LaunchTemplateId": "lt-01234a567b8910abcEXAMPLE",
"Version": "1"
},
"Overrides": {
"InstanceType": "c4.xlarge",
"AvailabilityZone": "us-east-1a",
}
},
"Lifecycle": "on-demand",
"ErrorCode": "InsufficientInstanceCapacity",
"ErrorMessage": ""
},
],
"Instances": [
{
"LaunchTemplateAndOverrides": {
"LaunchTemplateSpecification": {
"LaunchTemplateId": "lt-01234a567b8910abcEXAMPLE",
"Version": "1"
},
"Overrides": {
"InstanceType": "c5.large",
"AvailabilityZone": "us-east-1a"
}
},
"Lifecycle": "on-demand",
"InstanceIds": [
"i-1234567890abcdef0",
"i-9876543210abcdef9"
]
]
}
Di seguito è riportato l'output di esempio per un parco istanze del tipo instant
che non ha avviato istanze.
{
"FleetId": "fleet-12a34b55-67cd-8ef9-ba9b-9208dEXAMPLE",
"Errors": [
{
"LaunchTemplateAndOverrides": {
"LaunchTemplateSpecification": {
"LaunchTemplateId": "lt-01234a567b8910abcEXAMPLE",
"Version": "1"
},
"Overrides": {
"InstanceType": "c4.xlarge",
"AvailabilityZone": "us-east-1a",
}
},
"Lifecycle": "on-demand",
"ErrorCode": "InsufficientCapacity",
"ErrorMessage": ""
},
{
"LaunchTemplateAndOverrides": {
"LaunchTemplateSpecification": {
"LaunchTemplateId": "lt-01234a567b8910abcEXAMPLE",
"Version": "1"
},
"Overrides": {
"InstanceType": "c5.large",
"AvailabilityZone": "us-east-1a",
}
},
"Lifecycle": "on-demand",
"ErrorCode": "InsufficientCapacity",
"ErrorMessage": ""
},
],
"Instances": []
}
Crea un EC2 parco istanze che sostituisca le istanze Spot non funzionanti
EC2Fleet verifica lo stato di integrità delle istanze del parco istanze ogni due minuti. Lo stato di un'istanza è healthy
o unhealthy
.
EC2Fleet determina lo stato di integrità di un'istanza utilizzando i controlli di stato forniti da AmazonEC2. Un'istanza viene determinata come unhealthy
quando lo stato del controllo dello stato dell'istanza o del controllo dello stato del sistema è impaired
per tre controlli dello stato di integrità consecutivi. Per ulteriori informazioni, consulta Controlli dello stato per le EC2 istanze Amazon.
È possibile configurare il parco istanze per sostituire le Istanze spot non integre. Dopo l'impostazione di ReplaceUnhealthyInstances
su true
, l'istanza spot viene sostituita quando viene segnalata come unhealthy
. Durante la sostituzione di un'istanza spot non integra, il parco istanze può scendere al di sotto della sua capacità obiettivo.
Requisiti
-
La sostituzione dell'Health check è supportata solo per EC2 le flotte che mantengono una capacità target (flotte di tipo
maintain
) e non per le flotte di tipo o.request
instant
-
La sostituzione del controllo dello stato è supportata solo per Istanze spot. Questa funzionalità non è supportata per Istanze on demand.
-
Puoi configurare la tua EC2 flotta per sostituire le istanze non integre solo al momento della creazione.
-
Gli utenti possono utilizzare la sostituzione del controllo dell'integrità solo se hanno l'autorizzazione a chiamare l'operazione
ec2:DescribeInstanceStatus
.
Per configurare un EC2 parco istanze per sostituire le istanze Spot non integre
-
Utilizza le informazioni per creare una EC2 flotta in. Crea un parco veicoli EC2
-
Per configurare il parco istanze Spot in modo da sostituire le istanze Spot non funzionanti, nel JSON file
ReplaceUnhealthyInstances
, specificare.true
Visualizza tutte le opzioni di configurazione del EC2 parco veicoli
Per visualizzare l'elenco completo dei parametri di configurazione di EC2 Fleet, puoi generare un JSON file. Per una descrizione di ciascun parametro, consultare create-fleet nella Guida di riferimento ai comandi della AWS CLI .
Per generare un JSON file con tutti i possibili parametri EC2 Fleet
Utilizzate il comando create-fleet (AWS CLI) e il --generate-cli-skeleton
parametro per generare un JSON file EC2 Fleet e indirizzate l'output su un file per salvarlo.
aws ec2 create-fleet \ --generate-cli-skeleton input >
ec2createfleet.json
Output di esempio
{
"DryRun": true,
"ClientToken": "",
"SpotOptions": {
"AllocationStrategy": "price-capacity-optimized",
"MaintenanceStrategies": {
"CapacityRebalance": {
"ReplacementStrategy": "launch"
}
},
"InstanceInterruptionBehavior": "hibernate",
"InstancePoolsToUseCount": 0,
"SingleInstanceType": true,
"SingleAvailabilityZone": true,
"MinTargetCapacity": 0,
"MaxTotalPrice": ""
},
"OnDemandOptions": {
"AllocationStrategy": "prioritized",
"CapacityReservationOptions": {
"UsageStrategy": "use-capacity-reservations-first"
},
"SingleInstanceType": true,
"SingleAvailabilityZone": true,
"MinTargetCapacity": 0,
"MaxTotalPrice": ""
},
"ExcessCapacityTerminationPolicy": "termination",
"LaunchTemplateConfigs": [
{
"LaunchTemplateSpecification": {
"LaunchTemplateId": "",
"LaunchTemplateName": "",
"Version": ""
},
"Overrides": [
{
"InstanceType": "r5.metal",
"MaxPrice": "",
"SubnetId": "",
"AvailabilityZone": "",
"WeightedCapacity": 0.0,
"Priority": 0.0,
"Placement": {
"AvailabilityZone": "",
"Affinity": "",
"GroupName": "",
"PartitionNumber": 0,
"HostId": "",
"Tenancy": "dedicated",
"SpreadDomain": "",
"HostResourceGroupArn": ""
},
"InstanceRequirements": {
"VCpuCount": {
"Min": 0,
"Max": 0
},
"MemoryMiB": {
"Min": 0,
"Max": 0
},
"CpuManufacturers": [
"amd"
],
"MemoryGiBPerVCpu": {
"Min": 0.0,
"Max": 0.0
},
"ExcludedInstanceTypes": [
""
],
"InstanceGenerations": [
"previous"
],
"SpotMaxPricePercentageOverLowestPrice": 0,
"OnDemandMaxPricePercentageOverLowestPrice": 0,
"BareMetal": "included",
"BurstablePerformance": "required",
"RequireHibernateSupport": true,
"NetworkInterfaceCount": {
"Min": 0,
"Max": 0
},
"LocalStorage": "excluded",
"LocalStorageTypes": [
"ssd"
],
"TotalLocalStorageGB": {
"Min": 0.0,
"Max": 0.0
},
"BaselineEbsBandwidthMbps": {
"Min": 0,
"Max": 0
},
"AcceleratorTypes": [
"inference"
],
"AcceleratorCount": {
"Min": 0,
"Max": 0
},
"AcceleratorManufacturers": [
"amd"
],
"AcceleratorNames": [
"a100"
],
"AcceleratorTotalMemoryMiB": {
"Min": 0,
"Max": 0
}
}
}
]
}
],
"TargetCapacitySpecification": {
"TotalTargetCapacity": 0,
"OnDemandTargetCapacity": 0,
"SpotTargetCapacity": 0,
"DefaultTargetCapacityType": "on-demand",
"TargetCapacityUnitType": "memory-mib"
},
"TerminateInstancesWithExpiration": true,
"Type": "instant",
"ValidFrom": "1970-01-01T00:00:00",
"ValidUntil": "1970-01-01T00:00:00",
"ReplaceUnhealthyInstances": true,
"TagSpecifications": [
{
"ResourceType": "fleet",
"Tags": [
{
"Key": "",
"Value": ""
}
]
}
],
"Context": ""
}