Ambiente di elaborazione - AWS Batch

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à.

Ambiente di elaborazione

Le code dei processi sono mappate a uno o più ambienti di calcolo. Gli ambienti di calcolo contengono le istanze di container Amazon ECS utilizzate per eseguire processi batch containerizzati. Un ambiente di calcolo specifico può anche essere mappato su una o più di una coda di lavoro. All'interno di una coda di lavoro, gli ambienti di calcolo associati hanno ciascuno un ordine che viene utilizzato dallo scheduler per determinare dove verranno eseguiti i lavori pronti per essere eseguiti. Se il primo ambiente di calcolo ha lo stato di VALID e dispone di risorse disponibili, il processo viene programmato su un'istanza di contenitore all'interno di quell'ambiente di calcolo. Se il primo ambiente di calcolo ha lo stato di INVALID o non è in grado di fornire una risorsa di elaborazione adeguata, lo scheduler tenta di eseguire il processo nell'ambiente di calcolo successivo.

Ambienti di elaborazione gestiti

È possibile utilizzare un ambiente di elaborazione gestito per AWS Batch gestire la capacità e i tipi di istanze delle risorse di elaborazione all'interno dell'ambiente. Questo si basa sulle specifiche delle risorse di calcolo definite al momento della creazione dell'ambiente di calcolo. Puoi scegliere di utilizzare le istanze On-Demand di Amazon EC2 e le istanze Spot di Amazon EC2. In alternativa, puoi utilizzare la capacità di Fargate e Fargate Spot nel tuo ambiente di elaborazione gestito. Quando utilizzi le istanze Spot, puoi facoltativamente impostare un prezzo massimo. In questo modo, le istanze Spot vengono avviate solo quando il prezzo delle istanze Spot è inferiore a una percentuale specificata del prezzo on demand.

Importante

Le istanze Fargate Spot non sono supportate su. Windows containers on AWS Fargate Una coda di lavoro verrà bloccata se un FargateWindows lavoro viene inviato a una coda di lavoro che utilizza solo ambienti di elaborazione Fargate Spot.

Gli ambienti di elaborazione gestiti avviano le istanze Amazon EC2 nel VPC e nelle sottoreti specificate, quindi le registrano in un cluster Amazon ECS. Le istanze Amazon EC2 richiedono l'accesso alla rete esterna per comunicare con l'endpoint del servizio Amazon ECS. Alcune sottoreti non forniscono alle istanze Amazon EC2 indirizzi IP pubblici. Se le tue istanze Amazon EC2 non dispongono di un indirizzo IP pubblico, devono utilizzare la traduzione degli indirizzi di rete (NAT) per ottenere questo accesso. Per ulteriori informazioni, consulta Gateway NAT nella Guida per l'utente di Amazon VPC. Per ulteriori informazioni su come creare un VPC, consulta. Creazione di un cloud privato virtuale

Per impostazione predefinita, gli ambienti di elaborazione AWS Batch gestiti utilizzano una versione recente e approvata dell'AMI ottimizzata Amazon ECS per le risorse di calcolo. Tuttavia, potresti voler creare la tua AMI da utilizzare per i tuoi ambienti di elaborazione gestiti per vari motivi. Per ulteriori informazioni, consulta AMI per risorse di calcolo.

Nota

AWS Batch non aggiorna automaticamente le AMI in un ambiente di calcolo dopo la creazione. Ad esempio, non aggiorna le AMI nel tuo ambiente di calcolo quando viene rilasciata una versione più recente dell'AMI ottimizzata per Amazon ECS. Sei responsabile della gestione del sistema operativo guest. Ciò include eventuali aggiornamenti e patch di sicurezza. Sei inoltre responsabile di qualsiasi software applicativo o utilità aggiuntivo che installi sulle risorse di elaborazione. Esistono due modi per utilizzare una nuova AMI per i tuoi AWS Batch lavori. Il metodo originale consiste nel completare questi passaggi:

  1. Creare un nuovo ambiente di calcolo con la nuova AMI.

  2. Aggiungere l'ambiente di calcolo a una coda di processi esistente.

  3. Rimuovere il precedente ambiente di calcolo dalla coda di processi.

  4. Eliminare l'ambiente di calcolo precedente.

Nell'aprile 2022, è AWS Batch stato aggiunto un supporto avanzato per l'aggiornamento degli ambienti di elaborazione. Per ulteriori informazioni, consulta Aggiornamento degli ambienti di elaborazione. Per utilizzare l'aggiornamento avanzato degli ambienti di calcolo per aggiornare le AMI, segui queste regole:

  • O non impostate il parametro service role (serviceRole) o impostatelo sul ruolo collegato al AWSServiceRoleForBatchservizio.

  • Imposta il parametro allocation strategy (allocationStrategy) su, oBEST_FIT_PROGRESSIVE. SPOT_CAPACITY_OPTIMIZED SPOT_PRICE_CAPACITY_OPTIMIZED

  • Imposta il parametro di aggiornamento all'ultima versione dell'immagine (updateToLatestImageVersion) sutrue.

  • Non specificare un ID AMI in imageId, imageIdOverride(in ec2Configuration) o nel modello di avvio (launchTemplate). In tal caso, AWS Batch seleziona l'AMI ottimizzata Amazon ECS più recente supportata da AWS Batch al momento dell'avvio dell'aggiornamento dell'infrastruttura. In alternativa, puoi specificare l'ID AMI nei imageIdOverride parametri imageId o o il modello di avvio identificato dalle LaunchTemplate proprietà. La modifica di una di queste proprietà avvia un aggiornamento dell'infrastruttura. Se l'ID AMI è specificato nel modello di avvio, non può essere sostituito specificando un ID AMI nei imageIdOverride parametri imageId o. Può essere sostituito solo specificando un modello di lancio diverso. Oppure, se la versione del modello di lancio è impostata su $Default o$Latest, impostando una nuova versione predefinita per il modello di lancio (se disponibile$Default) o aggiungendo una nuova versione al modello di lancio (se lo è$Latest).

Se vengono seguite queste regole, qualsiasi aggiornamento che avvia un aggiornamento dell'infrastruttura causerà la riselezione dell'ID AMI. Se l'versionimpostazione nel modello di avvio (launchTemplate) è impostata su $Latest o$Default, la versione più recente o predefinita del modello di lancio viene valutata al momento dell'aggiornamento dell'infrastruttura, anche se non launchTemplateè stata aggiornata.

Considerazione da prendere in considerazione durante la creazione di lavori paralleli a più nodi

AWS Batch consiglia di creare ambienti di elaborazione dedicati per l'esecuzione di job multi-node parallel (MNP) e processi non MNP. Ciò è dovuto al modo in cui viene creata la capacità di elaborazione nell'ambiente di elaborazione gestito. Quando si crea un nuovo ambiente di elaborazione gestito, se si specifica un minvCpu valore maggiore di zero, viene AWS Batch creato un pool di istanze da utilizzare solo con processi non MNP. Se viene inviato un processo parallelo multinodo, AWS Batch crea una nuova capacità di istanza per eseguire i processi paralleli multinodo. Nei casi in cui vi siano processi paralleli a nodo singolo e multinodo in esecuzione nello stesso ambiente di calcolo in cui è impostato un maxvCpus valore minvCpus o, se le risorse di elaborazione richieste non sono disponibili, AWS Batch aspetterà il completamento dei processi correnti prima di creare le risorse di elaborazione necessarie per eseguire i nuovi processi.

Ambienti di elaborazione non gestiti

In un ambiente di calcolo non gestito occorre gestire le proprie risorse di calcolo. Devi verificare che l'AMI che usi per le tue risorse di calcolo soddisfi le specifiche AMI dell'istanza di container Amazon ECS. Per ulteriori informazioni, consulta Specifiche AMI delle risorse di calcolo e Creazione di una risorsa di calcolo AMI.

Nota

AWS Le risorse Fargate non sono supportate negli ambienti di elaborazione non gestiti.

Dopo aver creato l'ambiente di elaborazione non gestito, utilizza l'operazione DescribeComputeEnvironmentsAPI per visualizzare i dettagli dell'ambiente di calcolo. Trova il cluster Amazon ECS associato all'ambiente e poi avvia manualmente le istanze di container in quel cluster Amazon ECS.

Il AWS CLI comando seguente fornisce anche l'ARN del cluster Amazon ECS.

$ aws batch describe-compute-environments \ --compute-environments unmanagedCE \ --query "computeEnvironments[].ecsClusterArn"

Per maggiori informazioni, consulta Avvio di un'istanza di container Amazon ECS nella Guida per gli sviluppatori di Amazon Elastic Container Service. Quando avvii le risorse di elaborazione, specifica l'ARN del cluster Amazon ECS che le risorse registrano con i seguenti dati utente di Amazon EC2. Sostituire ecsClusterArncon l'ARN del cluster ottenuto con il comando precedente.

#!/bin/bash echo "ECS_CLUSTER=ecsClusterArn" >> /etc/ecs/ecs.config