AWS Batch permette di creare pacchetti di codice per processi in batch, specificarne le dipendenze e inoltrare tali processi tramite Console di gestione AWS, interfaccia a riga di comando e 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 sintassi di elaborazione in batch comuni (ad esempio Pegasus WMS, Luigi e AWS Step Functions). AWS Batch effettua il provisioning e ricalibra istanze Amazon EC2 e Spot in base ai requisiti dei processi in corso. AWS Batch fornisce definizioni di ambiente di elaborazione e codice di processi di default con cui iniziare a lavorare rapidamente.
Inizia subito a usare AWS Batch
Nozioni di base
AWS Batch permette di specificare requisiti di risorse, ad esempio vCPU e memoria, ruoli di AWS Identity and Access Management (IAM), punti di montaggio dei volumi, proprietà dei container e variabili di ambiente per definire le modalità di esecuzione dei processi. AWS Batch esegue i processi come applicazioni in container eseguiti in Amazon ECS.
AWS Batch consente di definire dipendenze tra diversi processi. Ad esempio, un processo in batch può essere composto da tre diverse fasi di elaborazione ognuna con i propri requisiti. Mediante le dipendenze, è possibile creare tre processi consecutivi e interdipendenti che richiedono risorse differenti.
AWS Batch può essere integrato con sintassi e motori di flusso di lavoro commerciali e open source quali Pegasus WMS e Luigi, permettendo di utilizzare i linguaggi di flusso di lavoro già usati nella pipeline esistente.
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 processi inoltrati. È possibile configurare gli ambienti di elaborazione gestiti di AWS Batch con requisiti quali istanze EC2, configurazioni di sottorete di VPC, numero massimo/minimo/desiderato di vCPU di tutte le istanze e prezzo di offerta per istanze Spot.
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 in batch nelle istanze EC2 allocate.
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 soppesa la priorità di ciascuna coda ed esegue i processi in ordine di priorità in modo da garantire risorse di elaborazione ottimali (ad esempio memoria o CPU), ammesso che non prevedano dipendenze in attesa.
AWS Batch semplifica l'utilizzo delle istanze Spot di Amazon EC2 per ridurre ulteriormente i costi di esecuzione dei processi in batch. AWS Batch crea offerte dinamiche per istanze Spot in base ai requisiti dei processi e ai parametri di configurazione importati per le risorse di elaborazione.
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.
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.