Creazione di un provider di capacità per le istanze gestite da Amazon ECS
Istanze gestite da Amazon ECS usa provider di capacità per gestire la capacità di calcolo dei carichi di lavoro. Per impostazione predefinita, Amazon ECS fornisce un provider di capacità predefinito che seleziona automaticamente i tipi di istanze per uso generico più ottimizzati in termini di costi. Tuttavia, puoi creare provider di capacità personalizzati per specificare attributi delle istanze come tipi di istanze, produttori di CPU, tipi di acceleratori e altri requisiti.
I provider di capacità personalizzati usano la selezione del tipo di istanza basata sugli attributi, che consente di esprimere i requisiti dell'istanza come un set di attributi. Questi requisiti vengono automaticamente tradotti in tutti i tipi di istanza Amazon EC2 corrispondenti, semplificando la creazione e la manutenzione delle configurazioni dei tipi di istanza. Per ulteriori informazioni sui requisiti delle istanze e sulla selezione basata sugli attributi, consulta la documentazione relativa alla selezione del tipo di istanza basata sugli attributi di Amazon EC2 Fleet nella Guida per l'utente di Amazon EC2.
Prerequisiti
Prima di iniziare, assicurati di aver completato quanto segue:
-
Determina il tipo di monitoraggio da usare. Per ulteriori informazioni, consulta Monitoraggio dettagliato delle istanze gestite da Amazon ECS.
-
Disponi di un cluster esistente o pianifica di crearne uno. Per ulteriori informazioni, consulta Creazione di un cluster per Istanze gestite da Amazon ECS.
-
Disponi dei ruoli IAM richiesti per Istanze gestite da Amazon ECS. Questo include:
-
Ruolo dell'infrastruttura: consente ad Amazon ECS di effettuare chiamate ai servizi AWS per tuo conto per gestire l'infrastruttura Amazon ECS Managed Instances.
Per ulteriori informazioni, consulta Ruolo IAM dell'infrastruttura Amazon ECS.
-
Profilo dell'istanza: fornisce le autorizzazioni per l'agente del container di Amazon ECS e il daemon Docker in esecuzione su istanze gestite.
Per ulteriori informazioni, consulta Profilo delle istanze gestite da Amazon ECS.
-
Capisci come scegliere le tue istanze. Per ulteriori informazioni, consulta Best practice per la selezione delle istanze per le Istanze gestite da Amazon ECS.
Procedura della console
Per creare un provider di capacità per le istanze gestite da Amazon ECS (console Amazon ECS)
Apri la console all'indirizzo https://console.aws.amazon.com/ecs/v2
. -
Seleziona la Regione da utilizzare nella barra di navigazione.
-
Nel pannello di navigazione scegli Cluster.
-
Nella pagina Cluster, seleziona il nome del tuo cluster.
-
Nella pagina Cluster, scegli la scheda Infrastruttura.
-
Nella sezione Provider di capacità, seleziona Crea provider di capacità.
-
In Configurazione del provider di capacità, configura i seguenti elementi:
-
In Nome del provider di capacità, inserisci un nome univoco per il tuo provider di capacità.
-
Per il Tipo di provider di capacità, seleziona Istanze gestite da Amazon ECS.
-
-
In Configurazione istanze, configura gli elementi seguenti:
-
Per Profilo dell'istanza, seleziona il ruolo del profilo dell'istanza creato per le istanze gestite da Amazon ECS.
-
In Ruolo dell'infrastruttura, scegli il ruolo dell'infrastruttura creato per le istanze gestite da Amazon ECS.
-
-
In Requisiti dell'istanza, specifica gli attributi per le istanze. Puoi configurare qualsiasi combinazione dei seguenti elementi:
-
Numero di vCPU: specifica il numero di vCPU (ad esempio,
4o8-16per un intervallo). -
Memoria (MiB): specifica la quantità di memoria in MiB (ad esempio,
8192o16384-32768per un intervallo). -
Tipi di istanza: specifica tipi di istanza specifici (ad esempio,
m5.large,m5.xlarge,c5.large). -
Produttori di CPU: scegli tra
intel,amdoamazon-web-services. -
Tipi di acceleratori: specifica i tipi di acceleratori come
gpu,fpgaoinference. -
Numero di acceleratori: specifica il numero di acceleratori (ad esempio,
1o2-4per un intervallo).
-
-
In Configurazione avanzata, scegli una delle seguenti opzioni di monitoraggio:
-
Per fare in modo che CloudWatch invii le metriche di controllo dello stato, seleziona Basic.
-
Per fare in modo che CloudWatch invii tutte le metriche, seleziona Dettagliato.
-
-
(Facoltativo) Per identificare il tuo provider di capacità, espandi la sezione Tag, quindi configura i tag.
Per abilitare la propagazione dei tag dal provider di capacità alle risorse gestite, come le istanze avviate dal provider di capacità, seleziona Provider di capacità in Propaga tag da.
[Aggiungere un tag] Scegliere Add tag (Aggiungi tag) e procedere come segue:
-
In Chiave, immetti il nome della chiave.
-
In Valore, immetti il valore della chiave.
-
-
Scegli Create (Crea).
procedura AWS CLI
È possibile creare un provider di capacità per le istanze gestite da Amazon ECS usando AWS CLI. Usa la versione più recente dell'AWS CLI. Per ulteriori informazioni su come eseguire l'aggiornamento alla versione più recente, consulta Installing or updating to the latest version of the AWS CLI.
Per creare un provider di capacità per le istanze gestite da Amazon ECS (AWS CLI)
-
Esegui il comando seguente:
aws ecs create-capacity-provider --cli-input-json file://capacity-provider-definition.jsonIl seguente file
capacity-provider-definition.jsonpuò essere utilizzato per specificare i requisiti di base dell'istanza, la dimensione di archiviazione dell'istanza e abilitare la propagazione dei tag:{ "name": "my-managed-instances-provider", "cluster": "my-cluster", "tags": [ { "key": "version", "value": "test" } ], "managedInstancesProvider": { "infrastructureRoleArn": "arn:aws:iam::123456789012:role/ecsInfrastructureRole", "instanceLaunchTemplate": { "ec2InstanceProfileArn": "arn:aws:iam::123456789012:instance-profile/ecsInstanceProfile", "instanceRequirements": { "memoryMiB": { "max": 8, "min": 2 }, "vCpuCount": { "max": 16384, "min": 4096 } } }, "networkConfiguration": { "subnets": [ "subnet-abcdef01234567", "subnet-bcdefa98765432" ], "securityGroups": [ "sg-0123456789abcdef" ] }, "storageConfiguration": { "storageSizeGiB": 100 }, "propagateTags": "CAPACITY_PROVIDER" } } -
Verifica che il tuo provider di capacità sia stato creato in modo corretto:
aws ecs describe-capacity-providers \ --capacity-providersmy-managed-instances-providerOutput:
{ "capacityProviders": [ { "capacityProviderArn": "arn:aws:ecs:region:aws_account_id:capacity-provider/my-managed-instances-provider", "cluster": "my-cluster" "name": "my-managed-capacity-provider", "status": "ACTIVE", "type": "MANAGED_INSTANCES", "tags": [ { "key": "version", "value": "test" } ], "managedInstancesProvider": { "infrastructureRoleArn": "arn:aws:iam::123456789012:role/ecsInfrastructureRole", "instanceLaunchTemplate": { "ec2InstanceProfileArn": "arn:aws:iam::123456789012:instance-profile/ecsInstanceProfile", "instanceRequirements": { "memoryMiB": { "max": 8, "min": 2 }, "vCpuCount": { "max": 16384, "min": 4096 } } }, "networkConfiguration": { "subnets": [ "subnet-abcdef01234567", "subnet-bcdefa98765432" ], "securityGroups": [ "sg-0123456789abcdef" ] }, "storageConfiguration": { "storageSizeGiB": 100 }, "propagateTags": "CAPACITY_PROVIDER" } } ] }
Configurazioni di esempio
I seguenti esempi mostrano configurazioni comuni dei provider di capacità per differenti casi d'uso:
Esempio Carichi di lavoro generici
Questa configurazione seleziona istanze ottimizzate in termini di costi con 2-8 vCPU e 4-16 GiB di memoria:
{ "name": "my-managed-capacity-provider", "cluster": "my-cluster", "managedInstancesProvider": { "infrastructureRoleArn": "arn:aws:iam::123456789012:role/ecsInfrastructureRole", "instanceLaunchTemplate": { "ec2InstanceProfileArn": "arn:aws:iam::123456789012:instance-profile/ecsInstanceProfile", "instanceRequirements": { "memoryMiB": { "max": 8, "min": 2 }, "vCpuCount": { "max": 16384, "min": 4096 }, "cpuManufacturers": ["intel", "amd"] } }, "networkConfiguration": { "subnets": [ "subnet-abcdef01234567", "subnet-bcdefa98765432" ], "securityGroups": [ "sg-0123456789abcdef" ] }, } }
Esempio Carichi di lavoro accelerati da GPU
Questa configurazione seleziona le istanze GPU per i carichi di lavoro di machine learning:
{ "name": "ml-gpu-provider", "cluster": "my-cluster", "managedInstancesProvider": { "infrastructureRoleArn": "arn:aws:iam::123456789012:role/ecsInfrastructureRole", "instanceLaunchTemplate": { "ec2InstanceProfileArn": "arn:aws:iam::123456789012:instance-profile/ecsInstanceProfile", "instanceRequirements": { "allowedInstanceTypes": [ "p3.2xlarge", "p3.8xlarge", "g4dn.xlarge", "g4dn.2xlarge" ], "acceleratorTypes": ["gpu"], "acceleratorCount": { "max": 4, "min": 1 } } }, "networkConfiguration": { "subnets": [ "subnet-abcdef01234567", "subnet-bcdefa98765432" ], "securityGroups": [ "sg-0123456789abcdef" ] } } }
Esempio Carichi di lavoro a memoria elevata
Questa configurazione seleziona istanze ottimizzate per la memoria per l'elaborazione dei dati:
{ "name": "high-memory-provider", "cluster": "my-cluster", "managedInstancesProvider": { "infrastructureRoleArn": "arn:aws:iam::123456789012:role/ecsInfrastructureRole", "instanceLaunchTemplate": { "ec2InstanceProfileArn": "arn:aws:iam::123456789012:instance-profile/ecsInstanceProfile", "instanceRequirements": { "allowedInstanceTypes": [ "r5.2xlarge", "r5.4xlarge", "r5.8xlarge", "x1e.xlarge" ], "memoryMiB": { "max": 131072, "min": 32768 } } }, "networkConfiguration": { "subnets": [ "subnet-abcdef01234567", "subnet-bcdefa98765432" ], "securityGroups": [ "sg-0123456789abcdef" ] } } }
Passaggi successivi
Dopo aver creato il tuo provider di capacità, puoi usarlo durante la creazione di servizi o l'esecuzione di attività:
-
Per usare il provider di capacità con un servizio, consulta Creazione di un'implementazione di aggiornamenti continui di Amazon ECS.
-
Per usare il provider di capacità con attività autonome, consulta Esecuzione di un'applicazione come attività Amazon ECS.