>
>
NAKIVO for AWS EC2 Backup
Backup of Amazon EC2 instances to EC2, AWS S3 and onsite. Anti-ransomware options. Fast recovery of instances and application objects.
Che cos’è AWS Batch?
AWS Batch è un servizio cloud fornito da Amazon Web Services (AWS) progettato per consentire a sviluppatori, ingegneri e scienziati di eseguire in modo semplice ed efficiente migliaia di lavori di elaborazione batch sul cloud AWS. L’elaborazione batch è un modo per elaborare grandi volumi di dati suddividendo il lavoro in unità più piccole che possono essere elaborate simultaneamente.
AWS Batch semplifica il processo di implementazione, gestione e scalabilità dei lavori di elaborazione batch. Fornisce automaticamente le risorse di calcolo e ottimizza l’allocazione di tali risorse per garantire un throughput elevato a basso costo. Con AWS Batch, non è necessario installare o gestire software di elaborazione batch o cluster di server che tradizionalmente gestiscono queste attività, rendendo più facile l’esecuzione di lavori di elaborazione complessi su larga scala.
AWS Batch offre le seguenti funzioni principali:
- Allocazione dinamica delle risorse. AWS Batch fornisce dinamicamente le risorse, compresa la quantità e il tipo ottimali di risorse di elaborazione (istanze ottimizzate per CPU o memoria) in base al volume e ai requisiti specifici dei lavori batch inviati.
- Gestisci ambiente di calcolos. È possibile specificare le risorse di calcolo per i propri lavori e AWS Batch gestirà l’infrastruttura sottostante, scalando verso l’alto o verso il basso secondo necessità per eseguire i lavori nel modo più efficiente possibile.
- Pianificazione dei lavori. AWS Batch mette in coda i lavori, pianifica e programma la loro esecuzione in base alle risorse di calcolo disponibili e alla priorità dei lavori batch. Assicura che i lavori con priorità più alta vengano completati per primi e gestisce le dipendenze di esecuzione tra i lavori, se presenti.
- Supporto contenitore. AWS Batch è integrato con Amazon Elastic Container Service (ECS) e supporta Docker, consentendo di raggruppare i lavori in contenitori. Ciò garantisce che gli ambienti di elaborazione siano isolati e coerenti, rendendoli più sicuri e facili da gestire.
- Integrazione con i servizi AWS. AWS Batch può essere facilmente integrato con altri servizi AWS come Amazon S3, Amazon DynamoDB, Amazon RDS, AWS Lambda e altri, consentendo di creare architetture di elaborazione batch complesse e scalabili.
Componenti di AWS Batch
Per comprendere meglio il servizio AWS Batch, è importante conoscere i componenti principali utilizzati. I componenti principali di AWS Batch sono:
- Definizioni dei lavori. Si tratta di modelli che descrivono come devono essere eseguiti i lavori. Una definizione di lavoro specifica varie impostazioni relative al lavoro, come l’immagine Docker da utilizzare, i requisiti di vCPU e memoria, il comando da eseguire, le variabili di ambiente, una strategia di riprova e i volumi di dati, tra le altre configurazioni. È possibile creare più definizioni di lavoro per diversi tipi di lavori che si intende eseguire.
- Code di lavoro. Le code di lavoro sono il luogo in cui risiedono i lavori fino a quando non vengono pianificati per l’esecuzione in ambienti di calcolo. È possibile avere più code di lavoro per diversi livelli di priorità (ad esempio, alta, media, bassa) o diversi tipi di lavori. I lavori nella coda vengono pianificati in base alla loro priorità e all’ordine di assegnazione dell’ambiente di calcolo alla coda di lavoro.
- Ambiente di calcolos. Gli ambienti di calcolo AWS Batch sono insiemi di risorse di calcolo utilizzate per eseguire lavori batch. Gli ambienti di elaborazione possono essere gestiti e non gestiti.
- Lavori. I lavori sono le singole unità di lavoro inviate ad AWS Batch. Ogni lavoro esegue un’immagine del contenitore Docker ed è possibile specificare le vCPU, la memoria e altri requisiti per ogni lavoro. I lavori possono essere dipendenti, il che significa che un lavoro può dipendere dal completamento corretto di uno o più lavori precedenti prima di essere eseguito.
- Pianificazione. La pianificazione AWS Batch è il processo che determina come i lavori vengono assegnati alle risorse di calcolo. Lo scheduler valuta la coda dei lavori, la priorità del lavoro e la disponibilità delle risorse di calcolo per eseguire i lavori in modo efficiente. Lo scheduler AWS Batch può ottimizzare sia l’utilizzo delle risorse di calcolo che il tempo di completamento dei lavori.
- Funzioni Lambda (opzionali). Sebbene non sia un componente fondamentale, AWS Lambda può essere utilizzato insieme ad AWS Batch per vari scopi, come l’attivazione di lavori in risposta a eventi, l’elaborazione dei risultati dei lavori o la modifica dinamica delle code di lavoro o degli ambienti di calcolo.
Comprensione degli ambienti di calcolo
Gli ambienti di calcolo all’interno di AWS Batch rappresentano l’infrastruttura di calcolo che esegue i lavori batch. Sono essenzialmente gli ambienti in cui risiedono le risorse di calcolo. È possibile considerare un ambiente di calcolo come un pool di risorse computazionali all’interno di AWS Batch che viene gestito e offerto con una certa scalabilità per eseguire i lavori batch inviati. Questi ambienti possono essere configurati con tipi specifici di risorse di calcolo, definiti dai tipi di istanza, oppure ottimizzati per particolari attività di elaborazione.
Esistono due tipi di ambienti di elaborazione in AWS Batch:
1. Ambiente di calcolo gestito s
In questo tipo di configurazione, AWS gestisce l’ambiente di calcolo per conto dell’utente. AWS Batch gestisce automaticamente la scalabilità e il provisioning delle risorse di calcolo in base ai requisiti del lavoro. È sufficiente specificare i tipi di istanza desiderati (o l’intervallo), il numero minimo, desiderato e massimo di vCPU e altre specifiche come la strategia di allocazione. AWS Batch gestirà il resto delle attività, compresa la decisione di aumentare o diminuire la scalabilità in base al carico di lavoro, regolando automaticamente la quantità di risorse di calcolo in base al carico di lavoro senza intervento manuale.
Questo ambiente supporta due tipi di istanze: Istanze on-demand e Istanze spot, con la possibilità di combinarle per ottimizzare i costi e aumentare la capacità.
I vantaggi degli ambienti di calcolo gestiti sono:
- Scalabilità automatica. AWS Batch può scalare automaticamente le risorse verso l’alto o verso il basso in base ai requisiti della coda di lavoro, contribuendo a ottimizzare i costi e l’utilizzo delle risorse.
- Configurazione semplice. È necessaria una configurazione minima da parte vostra, poiché AWS gestisce l’infrastruttura sottostante, comprese le istanze e i criteri di scalabilità.
- Convenienza economica. È possibile sfruttare Spot Instances all’interno di gestito ambiente di calcolos per risparmiare sui costi dei lavori batch.
2. Ambienti di elaborazione non gestiti
In un ambiente di elaborazione non gestito, sei tu a gestire le tue risorse di elaborazione. Ciò significa che hai il controllo della configurazione e della scalabilità del cluster di istanze di EC2 o Spot che eseguiranno i tuoi lavori batch. Questa opzione consente un controllo più granulare sull’ambiente di elaborazione, ma richiede un maggiore sforzo di configurazione e gestione da parte vostra. È adatta a situazioni in cui sono coinvolte configurazioni specifiche, AMI (Amazon Machine Images) personalizzate o esigenze di risorse specializzate.
Le caratteristiche principali degli ambienti di elaborazione sono:
- Tipi di risorse di elaborazione. È possibile specificare il tipo di istanze che verrà utilizzato dall’ambiente. Può trattarsi di un tipo ottimale (in cui AWS Batch seleziona automaticamente il tipo di risorsa), di tipi di istanze specifici o di una combinazione che soddisfa i requisiti del lavoro.
- Criteri di scalabilità. Per gli ambienti gestiti, AWS Batch offre una scalabilità dinamica delle risorse di calcolo in base ai modelli di invio e completamento dei lavori, garantendo un’efficienza dei costi e prestazioni ottimali.
- Supporto dei modelli di avvio. È possibile specificare modelli di avvio EC2 per gli ambienti di elaborazione, consentendo la personalizzazione delle istanze di EC2 in ambienti di elaborazione gestiti.
- Integrazione Spot. AWS Batch supporta l’utilizzo di istanze spot EC2 in ambienti di calcolo gestiti e non gestiti, offrendo risparmi sui costi per carichi di lavoro flessibili.
I vantaggi di questo tipo di ambiente di elaborazione sono:
- Controllo completo. Hai il pieno controllo sull’ambiente di elaborazione, compresi i tipi di istanze e le configurazioni dettagliate.
- Personalizzazione. È l’ideale per requisiti specifici che non possono essere soddisfatti dall’ambiente di elaborazione gestito, consentendo una maggiore flessibilità in termini di tipi di istanze, configurazioni e strategie di scalabilità.
- Integrazione con l’infrastruttura esistente. Se disponete già di ambienti configurati o avete requisiti particolari in materia di sicurezza, conformità o utilizzo di istanze riservate, un ambiente non gestito potrebbe essere la scelta giusta.
Casi d’uso di AWS Batch
AWS Batch può essere utilizzato in un’ampia gamma di scenari. Di seguito sono elencati i casi d’uso più comuni in cui AWS Batch offre efficienza e scalabilità, dimostrando la sua versatilità in diversi settori e applicazioni.
- Elaborazione e analisi di dati su larga scala. Le organizzazioni che gestiscono grandi quantità di dati, come quelle che operano nei settori della genomica, dell’analisi finanziaria o della modellizzazione ambientale, possono utilizzare AWS Batch per elaborare grandi set di dati. Il servizio è in grado di gestire in modo efficiente le risorse computazionali necessarie per analizzare grandi volumi di dati in parallelo, riducendo significativamente il tempo necessario per elaborare e analizzare i dati, da ore o giorni a pochi minuti.
- Formazione e inferenza dei modelli di apprendimento automatico. I data scientist e gli ingegneri ML possono utilizzare AWS Batch per la formazione di modelli di apprendimento automatico su grandi datasets. AWS Batch ha una scalabilità dinamica delle risorse di calcolo per soddisfare le esigenze di vari lavori di formazione, dalla messa a punto di modelli su piccola scala alla formazione di modelli di deep learning su larga scala su numerose GPU. Allo stesso modo, è in grado di gestire attività di inferenza in batch, elaborando in modo efficiente grandi batch di richieste di inferenza.
- Elaborazione di immagini o video. Le aziende che operano nel settore dei media, i fornitori di contenuti o anche gli istituti di ricerca scientifica hanno spesso bisogno di elaborare grandi raccolte di immagini o video, sia per il rendering, la transcodifica o l’analisi (ad esempio, analisi di immagini satellitari per il monitoraggio ambientale). AWS Batch ha una scalabilità che consente di gestire l’elaborazione di migliaia di file contemporaneamente, velocizzando notevolmente il flusso di lavoro.
- Carichi di lavoro di simulazione e modellazione. Per i settori che si occupano di simulazioni (farmaceutico, automobilistico, aerospaziale, ecc.), dove possono essere necessarie migliaia di simulazioni per modellare fenomeni fisici complessi o per testare vari scenari, AWS Batch consente l’esecuzione efficiente di queste attività ad alta intensità di calcolo. Assicura che ogni simulazione disponga delle risorse di calcolo necessarie, riducendo potenzialmente il tempo necessario per ottenere i risultati da settimane a giorni o ore.
- Modellizzazione del rischio finanziario. Gli istituti finanziari possono utilizzare AWS Batch per eseguire modelli di rischio complessi su grandi dataset. Grazie alla scalabilità dinamica delle risorse di calcolo, AWS Batch garantisce che le valutazioni del rischio, che richiedono l’analisi di grandi quantità di dati finanziari storici, possano essere completate rapidamente, facilitando un processo decisionale rapido.
- Pipeline di compilazione e test del software. I team di sviluppo software possono utilizzare AWS Batch per automatizzare le loro pipeline di compilazione e test. Per i progetti con suite di test di grandi dimensioni o che richiedono build su più piattaforme, AWS Batch può ridurre significativamente i tempi di completamento eseguendo i test in parallelo e con scalabilità per soddisfare i picchi di domanda.
Guida alla configurazione passo passo
Vediamo come configurare un processo batch AWS, un ambiente di calcolo e altri componenti obbligatori.
Passaggi preparatori
console di gestione AWS, cercare il Servizio IAM, quindi aprirlo.
Creare AWSBatchServiceRole:
- Nella dashboard IAM, selezionare Ruoli quindi fare clic su Creare un ruolo.
- Selezionare un servizio AWS come entità attendibile, selezionare Batch, quindi fai clic su Avanti: Autorizzazioni.
- Allega la AWSBatchServiceRole criterio. Se non la vedi, cercala nella barra di ricerca.
- Fai clic su Avanti, assegna un nome al ruolo (ad esempio, AWSBatchServiceRole) e crealo.
Crea ruolo istanza EC2:
- Ripeti il processo di creazione del ruolo, ma questa volta seleziona EC2 come entità attendibile.
- Allega il AmazonEC2ContainerServiceforEC2Role qualsiasi altro criterio obbligatorio per il tuo caso d’uso.
- Assegna un nome al ruolo (ad esempio, ecsInstanceRole) e crealo.
Accesso ad AWS Batch
Digitare batch nel campo di ricerca dei servizi AWS e fare clic su AWS Batch quando viene visualizzato questo elemento.

A questo punto dovrebbe aprirsi la pagina del dashboard di AWS Batch.
Creazione di un ambiente di calcolo
Gli ambienti di calcolo contengono le istanze dei contenitori Amazon ECS su cui verranno eseguiti i tuoi lavori.
Fai clic su Ambiente di calcolos nella pagina del dashboard di AWS Batch, quindi fare clic su Creare per creare un nuovo ambiente di calcolo.

Si apre la procedura guidata Create compute environment .
- Configurazione dell’ambiente di calcolo.
- Selezionare una piattaforma di calcolo, ad esempio Amazon Elastic Compute Cloud (Amazon EC2).
- Scegli tra Gestito e Non gestito. Gli ambienti gestiti sono gestiti da AWS, mentre quelli non gestiti sono gestiti dall’utente.
- Compilare il modulo in base alle proprie esigenze. Immettere un nome per l’ambiente di elaborazione (env01test in questo esempio). Specificare i ruoli creati nella fase di preparazione se necessari. In alternativa, è possibile creare un nuovo ruolo in questa schermata se non è stato creato in precedenza. Per ogni campo sono disponibili suggerimenti utili che aiutano a impostare il valore ottimale.

- Configurazione dell’istanza. Impostare i parametri vCPU (unità di elaborazione centrale virtuale) necessari. Selezionare il tipo di istanza. È possibile selezionare Spot Instances o On-Demand Instances. Si noti che se il Minimo vCPU è impostato su 0, le risorse AWS non verranno sprecate quando non ci sono lavori da eseguire (questo è il valore consigliato).

- Reti. È possibile lasciare le impostazioni predefinite. Se è necessario personalizzare le impostazioni di rete, è possibile selezionare ID VPC e sottoreti esistenti o crearne di nuovi.
- Rivedere. Controllare la configurazione e salvare l’ambiente di elaborazione. Premere Creare ambiente di calcolo.
Creazione di una coda di lavoro
Le code di lavoro vengono utilizzate per contenere i lavori, che risiedono in una coda di lavoro univoca. Le code di lavoro sono associate agli ambienti di calcolo.
- Creare una coda di lavoro. Nella dashboard di AWS Batch, fare clic su Lavoro, quindi premi Crea un.

- Seleziona il tipo di orchestrazione, ad esempio Amazon EC2 (Fargate ed EKS sono altre opzioni disponibili).

- Inserisci un nome per la tua coda di lavoro e una priorità (i numeri più alti hanno una priorità maggiore, 1 è il valore predefinito) nella sezione di configurazione della coda di lavoro.
- Collega la tua coda di lavoro all’ambiente di calcolo creato nel passaggio precedente (env01test).
- Clicca su Crea per finalizzare la coda dei lavori.

Creazione di una definizione di lavoro
Le definizioni di lavoro specificano le modalità di esecuzione dei lavori. Includono l’immagine Docker da utilizzare, le vCPU, i requisiti di memoria e altro ancora. I parametri di definizione del lavoro possono essere sovrascritti durante l’esecuzione di un lavoro.
Passa a Definizioni di lavoro nella dashboard di AWS Batch e fare clic su Creare.

- Configurazione della definizione del lavoro. Specificare se il processo verrà eseguito su Amazon EC2, Fargate o Elastic Kubernetes Service. Definire un nome per la definizione del processo.

- Configurare le proprietà del contenitore, inclusi immagine, vCPU, memoria, comando (se presente) e variabili di ambiente.
- Nel ruolo di esecuzione, specificare un ruolo IAM che disponga delle autorizzazioni necessarie per estrarre l’immagine Docker e registrare su CloudWatch, se necessario.
- Premere Avanti in ogni schermata per continuare.

- Configurazione del contenitore. Selezionare la sintassi del comando (bash o JSON). Immettere il comando necessario nel campo comando utilizzando la sintassi specificata. È possibile selezionare la configurazione dell’ambiente, ad esempio il numero di vCPU e la memoria, e aggiungere variabili di ambiente.
- Impostazioni Linux e di registrazione. È possibile configurare le impostazioni Linux e di registrazione, incluse le informazioni utente, la configurazione del file system, la configurazione della registrazione, ecc.
- Revisione della definizione del lavoro. Controllare la configurazione. È possibile rivedere la configurazione della definizione del lavoro e copiare il testo della configurazione (script). Fare clic su Creazione della definizione del lavoro.
Invio di un lavoro
Ora che tutto è configurato, è possibile inviare un lavoro, ovvero un’unità di lavoro eseguita da AWS Batch.
- Vai alla sezione Lavori e clicca su Invia nuovo lavoro.

- Imposta la configurazione del lavoro. Inserisci un nome per il lavoro. Scegli una definizione di lavoro e una coda di lavoro che hai creato in precedenza. Imposta altri parametri aggiuntivi, se necessario.
- Configura le sostituzioni del lavoro (facoltativo).
- Controlla le impostazioni del lavoro e premi Crea lavoro alla fine.

Il lavoro dovrebbe essere avviato in pochi secondi ed essere in stato di esecuzione.
Gestione degli ambienti di calcolo
È possibile effettuare il monitoraggio dello stato di avanzamento del processo AWS Batch nella dashboard AWS Batch nella sezione Processi (Processi > Selezionare un lavoro > Dettagli). AWS Batch consente di visualizzare i log in tempo reale, lo stato del lavoro e qualsiasi output generato dal lavoro.

È possibile utilizzare i seguenti strumenti AWS per il monitoraggio e la gestione degli ambienti di elaborazione:
- Amazon CloudWatch. Utilizza questo strumento per effettuare il monitoraggio delle metriche e dei log dei tuoi lavori batch e degli ambienti di elaborazione. È fondamentale per comprendere le prestazioni di esecuzione dei lavori e risolvere i problemi.
- AWS CloudTrail. Registra e monitora le chiamate API ad AWS Batch e ad altri servizi AWS. Ciò aiuta a controllare e a tracciare le modifiche agli ambienti di elaborazione.
- AWS Cost Explorer. Utilizzatelo per il monitoraggio e la gestione dei costi associati ai vostri ambienti di elaborazione, aiutandovi a identificare le opportunità di ottimizzazione.
Utilizza le pratiche consigliate per il monitoraggio:
- Esamina regolarmente le metriche e i log di AWS Batch in CloudWatch per identificare i colli di bottiglia delle prestazioni o le risorse sottoutilizzate.
- Ottimizza continuamente le definizioni dei lavori e gli ambienti di elaborazione in base ai dati sulle prestazioni.
- Valuta l’utilizzo di AWS Lambda in combinazione con AWS Batch per l’elaborazione batch basata sugli eventi.
- Rimani informato sulle ultime funzioni AWS e sulle procedure consigliate per AWS Batch e i servizi correlati.
La gestione e l’ottimizzazione degli ambienti di calcolo in AWS Batch sono processi continui che comportano il monitoraggio delle prestazioni, il controllo dei costi e l’adeguamento delle strategie in base ai mutevoli requisiti e alle nuove funzionalità di AWS.
Conclusione
AWS Batch è adatto a un’ampia gamma di applicazioni, dall’elaborazione dei dati e il rendering all’addestramento di modelli di machine learning e alla modellazione finanziaria. Si tratta di un servizio AWS completamente gestito. La capacità di gestire lavori batch complessi e ad alta intensità di calcolo senza la necessità di gestire l’infrastruttura sottostante rende AWS Batch uno strumento potente per le organizzazioni che desiderano utilizzare il cloud per esigenze di elaborazione ad alta produttività. Non dimenticate di configurare un backup delle vostre istanze di Amazon EC2 per proteggere i dati. NAKIVO Backup & Replication & >