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à.
Creazione di un parco istanze EC2
Per creare un EC2 Fleet, definisci la configurazione del parco istanze in un file JSON e fai riferimento al file con il comando create-fleet della . Nel file JSON, devi specificare la capacità target totale per il parco istanze, separare le capacità target per le istanze Spot e le istanze on demand e un modello di lancio che definisce la configurazione per le istanze nel parco istanze, come un’AMI, un tipo di istanza, una sottorete o una 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 la selezione di istanze spot e istanze on demand dai pool di capacità EC2, e l’importo massimo che sei disposto a pagare per il parco istanze. Per ulteriori informazioni, consulta Opzioni di configurazione per il parco istanze EC2 o il parco istanze spot.
Il parco istanze EC2 avvia le Istanze on demand quando la capacità è disponibile e avvia le Istanze spot quando il prezzo massimo supera il prezzo Spot e la capacità è disponibile.
Se il parco istanze include istanze spot ed è di tipo maintain, Amazon EC2 tenterà di mantenere la capacità target del parco istanze quando le istanze spot vengono interrotte.
Limitazioni di EC2 Fleet
Le limitazioni seguenti riguardano EC2 Fleet:
-
La creazione di una flotta EC2 è disponibile solo tramite l'API Amazon EC2 AWS CLI, AWS SDKs, e. CloudFormation
-
Una richiesta di flotta EC2 non può estendersi su più regioni. AWS È necessario creare un EC2 Fleet separato per ciascuna regione.
-
Una richiesta di EC2 Fleet non può comprendere sottoreti diverse della stessa zona di disponibilità.
Creazione di un parco istanze EC2
Per avviare un parco istanze utilizzando il parco istanze EC2, devi solo specificare i seguenti parametri nella richiesta del parco istanze, e il parco istanze utilizzerà i valori predefiniti per gli altri parametri:
-
LaunchTemplateIdoLaunchTemplateName– 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 sostituire i parametri specificati nel modello di avvio, puoi specificare una o più sostituzioni. Ciascuna sostituzione può variare a seconda del tipo di istanza, della zona di disponibilità, della sottorete e del prezzo massimo e può includere una capacità ponderata diversa. In alternativa alla specifica di un tipo di istanza, è possibile specificare gli attributi che un’istanza deve avere e Amazon EC2 identificherà tutti i tipi di istanza con tali attributi. Per ulteriori informazioni, consulta Specifica gli attributi per la selezione del tipo di istanza per il parco del tipo per il parco istanze EC2 o il parco istanze Spot.
Per il parco istanze EC2 di tipoinstant, puoi specificare un parametro Systems Manager anziché l’ID dell’AMI. Puoi specificare il parametro Systems Manager nella sostituzione o nel modello di avvio. Per ulteriori informazioni, consulta Usare un parametro Systems Manager invece di un'ID AMI.
Puoi specificare i parametri del parco istanze in un file JSON. Per informazioni su tutti i possibili parametri che è possibile specificare, consulta Visualizza tutte le opzioni di configurazione del parco istanze EC2.
Per gli esempi di configurazione del parco istanze, consulta Esempi di configurazioni di CLI per parco istanze EC2.
Al momento non è disponibile il supporto per la console per la creazione di un parco istanze EC2.
Per creare un parco istanze EC2
Utilizza il comando create-fleet per creare un parco istanze e specifica il file JSON che contiene i parametri di configurazione del parco istanze.
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 parco istanze EC2 che sostituisca le istanze spot non integre
parco istanze EC2 controlla lo stato delle istanze nel parco istanze ogni due minuti. Lo stato di un’istanza è healthy o unhealthy.
parco istanze EC2 determina lo stato di un’istanza utilizzando i controlli dello stato forniti da Amazon EC2. 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 Verifiche dello stato delle istanze Amazon EC2.
È 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 del controllo dello stato è supportata solo per Parchi istanze EC2 che mantengono una capacità target (parchi istanza del tipo
maintain) e non con parchi istanza del tiporequestoinstant. -
La sostituzione del controllo dello stato è supportata solo per Istanze spot. Questa funzionalità non è supportata per Istanze on demand.
-
È possibile configurare EC2 Fleet per sostituire le istanze non integre solo al momento della sua 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 parco istanze EC2 per sostituire un Istanze spot non integro
-
Utilizza le informazioni per creare un parco istanze EC2 in Creazione di un parco istanze EC2.
-
Per configurare il parco istanze per sostituire Istanze spot non integre, nel file JSON, per
ReplaceUnhealthyInstancesspecificatrue.
Visualizza tutte le opzioni di configurazione del parco istanze EC2
Per visualizzare l’elenco completo dei parametri di configurazione del parco istanze EC2, è possibile generare un file JSON. Per una descrizione di ciascun parametro, consulta create-fleet.
Per generare un file JSON con tutti i parametri del parco istanze EC2 possibili
Utilizzare il comando create-fleet (AWS CLI) e il parametro --generate-cli-skeleton per generare un file JSON del parco istanze EC2 e indirizzare l’output in un file per salvarlo.
aws ec2 create-fleet \ --generate-cli-skeleton input >ec2createfleet.json
Di seguito è riportato un 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": ""
}