AWS Batch permette di creare pacchetti di codice per i processi batch, specificarne le dipendenze e inoltrare tali processi tramite la Console di gestione AWS, le interfacce a riga di comando e i kit SDK. Con AWS Batch è possibile specificare parametri di esecuzione e dipendenze di processi, facilitando l'integrazione con un'ampia gamma di motori di flusso di lavoro e linguaggi di elaborazione batch comuni (ad esempio Pegasus WMS, Luigi, Nextflow, Metaflow, Apache Airflow e AWS Step Functions). AWS Batch effettua il provisioning e ricalibra istanze Amazon EC2 e Spot in modo efficiente e dinamico, in base ai requisiti dei processi in corso. AWS Batch fornisce code processi predefinite e definizioni dell'ambiente di elaborazione con cui iniziare a lavorare rapidamente.

Provisioning e dimensionamento dinamici delle risorse di calcolo

AWS Batch fornisce ambienti di elaborazione gestiti che effettuano il provisioning e ricalibrano automaticamente le risorse di elaborazione in base ai volumi e ai requisiti dei lavori inoltrati. Puoi configurare i tuoi ambienti di elaborazione gestiti di AWS Batch con requisiti come il tipo di istanze EC2, le configurazioni della sottorete VPC, il numero minimo/massimo/desiderato di vCPU in tutte le istanze e l'importo che sei disposto a pagare per le istanze Spot in percentuale del prezzo dell'istanza on demand.

In alternativa, è possibile effettuare il provisioning e gestire le risorse di elaborazione all'interno di ambienti di elaborazione non gestiti di AWS Batch quando è necessario utilizzare configurazioni di istanze EC2 diverse da quelle fornite dagli ambienti di elaborazione gestiti, ad esempio volumi EBS di dimensioni maggiori oppure sistemi operativi differenti. È sufficiente effettuare il provisioning di istanze EC2 che includano l'agente di Amazon ECS ed eseguano versioni supportate di Linux e Docker. AWS Batch eseguirà processi batch sulle istanze EC2 assegnate.

Supporto per carichi di lavoro HPC strettamente accoppiati

AWS Batch supporta processi paralleli a più nodi; ciò consente di eseguire processi singoli che si possono estendere a più istanze EC2. Questa funzione consente di utilizzare AWS Batch per eseguire in modo semplice ed efficiente i carichi di lavoro come le applicazioni High Performance Computing (HPC) su larga scala e strettamente interdipendenti o i training del modello GPU distribuito. AWS Batch supporta inoltre Elastic Fabric Adapter, un'interfaccia di rete che consente di eseguire applicazioni che richiedono elevati livelli di comunicazione tra nodi su larga scala su AWS. 

Definizioni di processo granulari e modellizzazione di dipendenze di processi semplificata

AWS Batch permette di specificare i requisiti delle risorse, ad esempio vCPU e memoria, ruoli AWS Identity and Access Management (IAM), punti di montaggio del volume, proprietà dei container e variabili di ambiente per definire le modalità di esecuzione dei processi. AWS Batch esegue i processi come applicazioni in container in esecuzione su Amazon ECS. Batch consente inoltre di definire dipendenze tra diversi processi. Ad esempio, un processo batch può essere composto da tre diverse fasi di elaborazione con esigenze di risorse diverse. Mediante le dipendenze, è possibile creare tre processi consecutivi e interdipendenti che richiedono risorse differenti.

Pianificazione di processi basata su priorità

AWS Batch permette di impostare più code con diversi livelli di priorità. I processi in batch vengono inseriti nelle code finché le risorse di calcolo necessarie non sono disponibili. La funzione di pianificazione di AWS Batch stima quando, dove e come eseguire i processi inoltrati a una coda in base ai requisiti di ciascun processo. Questa funzione valuta la priorità di ciascuna coda ed esegue i processi in ordine di priorità su risorse di calcolo ottimali (ad esempio memoria o CPU ottimizzata), ammesso che non prevedano dipendenze in attesa.

Supporto per la pianificazione GPU

La pianificazione della GPU permette di specificare il numero e il tipo di acceleratori che le attività richiedono come variabili di input per la definizione dei processi in AWS Batch. AWS Batch ridimensiona le istanze adatte ai tuoi lavori in base al numero richiesto di GPU e isola gli acceleratori in base alle esigenze di ciascun lavoro, affinché solo i container corretti possano accedervi.

AWS Batch può essere integrato con linguaggi e motori di flusso di lavoro commerciali e open source quali Pegasus WMS, Luigi, Nextflow, Metaflow, Apache Airflow e AWS Step Functions, permettendo di utilizzare linguaggi di flusso di lavoro familiari per modellare le pipeline di elaborazione batch.

Integrazione con i modelli di lancio EC2

AWS Batch supporta ora modelli di lancio EC2 che consentono di creare modelli personalizzati per le risorse di calcolo nonché di abilitare batch per ricalibrare le istanze in base ai requisiti stabiliti. Tra le diverse funzionalità offerte, vi sono la possibilità di specificare il modello di lancio EC2 per aggiungere volumi di storage e interfacce di rete o la configurazione di autorizzazioni. I modelli di lancio EC2 riducono il numero di passaggi necessari per configurare gli ambienti batch tramite l'acquisizione di parametri di lancio all'interno di una risorsa.

Strategie di allocazione flessibili

AWS Batch consente ai clienti di scegliere tre metodi per allocare le risorse di calcolo. Tali strategie consentono ai clienti di tenere conto sia del throughput che del prezzo quando decidono come AWS Batch dovrebbe scalare le istanze per conto loro.

Migliore adattamento: AWS Batch seleziona un tipo di istanza che si adatta meglio alle esigenze dei processi, dando priorità al tipo di istanza più economico. Se non sono disponibili ulteriori istanze del tipo di istanza selezionato, AWS Batch attenderà la disponibilità delle istanze aggiuntive. Se non sono disponibili sufficienti istanze o se l'utente sta raggiungendo i limiti del servizio Amazon EC2, non verranno eseguiti lavori aggiuntivi prima che vengano completati i lavori attualmente in esecuzione. Questa strategia di allocazione mantiene i costi più bassi ma può limitare il dimensionamento.

Migliore adattamento progressivo: AWS Batch selezionerà altri tipi di istanza sufficientemente grandi da soddisfare i requisiti dei processi in coda, dando priorità ai tipi di istanza con un costo inferiore per unità vCPU. Se non sono disponibili ulteriori istanze dei tipi di istanza precedentemente selezionati, AWS Batch selezionerà nuovi tipi di istanza.

Capacità spot ottimizzata: AWS Batch selezionerà uno o più tipi di istanza sufficientemente grandi da soddisfare i requisiti dei processi in coda, dando priorità ai tipi di istanza che hanno meno probabilità di essere interrotti. Questa strategia di allocazione è disponibile solo per le risorse di calcolo dell'istanza Spot.

Registrazione di log e monitoraggio integrati

I parametri operativi chiave dei processi in batch di AWS Batch sono disponibili nella Console di gestione AWS. È possibile consultare i parametri relativi a capacità di elaborazione e a processi in esecuzione, in attesa e completati. I log dei processi (ad esempio STDERR e STDOUT) sono disponibili nella Console di gestione AWS e vengono anche memorizzati tramite Amazon CloudWatch Logs.

Controllo granulare degli accessi

AWS Batch usa IAM per controllare e monitorare le risorse AWS a cui i processi possono accedere, ad esempio le tabelle Amazon DynamoDB. Tramite IAM, puoi anche definire le policy per singoli utenti nell'organizzazione. Ad esempio, gli amministratori potranno avere autorizzazioni di accesso complete a qualsiasi operazione API di AWS Batch, gli sviluppatori avranno autorizzazioni limitate alla configurazione degli ambienti di elaborazione e alla registrazione dei processi, mentre gli utenti finali potranno solamente inoltrare ed eliminare processi.

Ulteriori informazioni sui prezzi di AWS Batch

Visita la pagina dei prezzi
Ti senti pronto?
Inizia a usare AWS Batch
Hai altre domande?
Contattaci