Avec AWS Batch, vous pouvez simplement compresser le code pour vos tâches de traitement par lots, spécifier leurs dépendances et soumettre ces tâches à l'aide d'AWS Management Console, des interfaces de ligne de commande ou des kits SDK. AWS Batch vous permet de spécifier les paramètres d'exécution et les dépendances entre les tâches, et facilite l'intégration dans de nombreux moteurs de flux de travail et de langages de calcul par lots populaires (par ex., Pegasus WMS, Luigi, Nextflow, Metaflow, Apache Airflow et AWS Step Functions). AWS Batch met en service et dimensionne efficacement et dynamiquement des instances Amazon EC2 et Spot en fonction des besoins de vos tâches. AWS Batch propose des files d'attente de tâches par défaut et des définitions d'environnements de calcul qui vous permettent de démarrer rapidement.

Mise en service et dimensionnement dynamiques des ressources de calcul

AWS Batch propose des environnements de calcul gérés qui mettent en service et dimensionnent de façon dynamique les ressources de calcul en fonction du volume et des besoins en ressources des tâches que vous avez soumises. Vous pouvez configurer vos environnements de calcul gérés AWS Batch en fonction des exigences, telles que le type d’instances EC2, les configurations de sous-réseau VPC, le nombre minimum et maximum de vCPU sur toutes les instances et le montant que vous êtes prêt à payer pour les instances Spot. Ce montant est exprimé en pourcentage du prix de l’instance à la demande.

Vous pouvez également mettre en service et gérer vos propres ressources de calcul dans des environnements de calcul non gérés AWS Batch si vous devez utiliser, pour vos instances EC2, des configurations différentes de celles proposées par les environnements de calcul gérés AWS Batch (par ex., de plus grands volumes EBS ou un autre système d'exploitation). Il vous suffit de mettre en service des instances EC2 qui incluent l'agent Amazon ECS et d'exécuter des versions prises en charge de Linux et Docker. AWS Batch exécute alors les tâches de traitement par lots sur les instances EC2 que vous mettez en service.

Prise en charge des charges de travail HPC étroitement liées

AWS Batch prend en charge les tâches parallèles à plusieurs nœuds pour vous permettre d'exécuter des tâches uniques couvrant plusieurs instances EC2. Vous pouvez utiliser AWS Batch pour exécuter aisément et efficacement des charges de travail telles que des applications HPC (High Performance Computing) à grande échelle et étroitement liées ou une formation de modèle GPU distribuée. AWS Batch prend également en charge Elastic Fabric Adapter, une interface réseau qui permet d'exécuter des applications qui nécessitent de hauts niveaux de communication entre les nœuds à l'échelle sur AWS. 

Définitions précises des tâches et modélisation simplifiée des dépendances entre les tâches

AWS Batch vous permet de spécifier des besoins en ressources, tels que les vCPU et la mémoire, les rôles AWS Identity and Access Management(IAM), les points de montage de volume, les propriétés de conteneur et les variables d'environnement, pour définir le mode d'exécution des tâches. AWS Batch exécute vos tâches sous la forme d'applications conteneurisées lancées sur Amazon ECS. Batch vous permet également de définir des dépendances entre différentes tâches. Par exemple, votre tâche de traitement par lots peut être composée de trois étapes de traitement différentes auxquelles sont associés divers besoins en ressources. Grâce aux dépendances, vous pouvez créer trois tâches comportant des besoins en ressources différents, chaque tâche successive dépendant de la tâche précédente.

Planification des tâches en fonction des priorités

AWS Batch vous permet de configurer plusieurs files d'attente avec différents niveaux de priorité. Les tâches de traitement par lots sont stockées dans les requêtes jusqu'à ce que les ressources de calcul nécessaires à leur exécution soient disponibles. Le planificateur AWS Batch détermine quand, où et comment exécuter les tâches qui ont été soumises à une file d'attente en fonction des besoins en ressources de chaque tâche. Le planificateur évalue la priorité de chaque file d'attente et exécute les tâches dans l'ordre de priorité sur des ressources de calcul optimales (par ex., des instances optimisées pour la mémoire ou le processeur), à condition que les tâches ne possèdent aucune dépendance en suspens.

Prise en charge de la planification GPU

La planification GPU vous permet de préciser le nombre et le type d’accélérateurs dont vos tâches ont besoin en tant que variables d’entrée de définition des tâches sur AWS Batch. AWS Batch mettra à l'échelle les instances appropriées pour vos tâches en fonction du nombre de GPU requis et isolera les accélérateurs selon les besoins de chaque tâche, seuls les conteneurs peuvent donc y accéder.

AWS Batch peut être intégré à des moteurs de flux de travail et langages commerciaux et open source tels que Pegasus WMS, Luigi, Nextflow, Metaflow, Apache Airflow et AWS Step Functions, ce qui vous permet d'utiliser des langages de flux de travail que vous connaissez pour modéliser vos pipelines de calcul par lots.

Intégration avec les modèles de lancement EC2

AWS Batch prend désormais en charge les modèles de lancement EC2. Vous pouvez ainsi concevoir des modèles personnalisés pour vos ressources de calcul et permettre à Batch de dimensionner des instances en fonction de ces paramètres. Vous pouvez, entre autres, définir vos modèles de lancement EC2 pour ajouter des volumes de stockage, spécifier des interfaces réseau ou configurer des autorisations. Les modèles de lacement EC2 réduisent le nombre d'étapes requises pour la configuration d'un environnement Batch en capturant les paramètres de lancement au sein d'une ressource.

Stratégies d'allocation flexibles

AWS Batch permet aux clients de choisir trois méthodes d'allocation des ressources de calcul. Ces stratégies permettent aux clients de prendre en compte le débit ainsi que le tarif lorsqu'ils décident de la façon dont AWS Batch doit mettre à l'échelle les instances en leur nom.

Best Fit : AWS Batch sélectionne un type d'instance qui correspond le mieux aux besoins des tâches, avec une préférence pour le type d'instance le moins coûteux. Si des instances supplémentaires du type d'instance sélectionné ne sont pas disponibles, AWS Batch attendra que les instances supplémentaires soient disponibles. S'il n'y a pas assez d'instances disponibles, ou si l'utilisateur atteint les limites du service Amazon EC2, les tâches supplémentaires ne seront pas exécutées tant que les tâches en cours ne seront pas terminées. Cette stratégie d'allocation permet de maintenir les coûts à un niveau plus raisonnable, mais peut limiter la mise à l'échelle.

Best Fit Progressive : AWS Batch sélectionnera des types d'instance supplémentaires dont la taille est suffisamment importante pour répondre aux exigences des tâches dans la file d'attente, avec une préférence pour les types d'instance au coût par vCPU plus faible. Si des instances supplémentaires des types d'instance sélectionnés précédemment ne sont pas disponibles, AWS Batch sélectionnera de nouveaux types d'instance.

Spot Capacity Optimized : AWS Batch sélectionnera un ou plusieurs types d'instance dont la taille est suffisamment importante pour répondre aux exigences des tâches en attente, avec une préférence pour les types d'instance qui sont moins susceptibles d'être interrompus. Cette stratégie d'allocation est uniquement disponible pour les ressources de calcul d'instances Spot.

Surveillance et journalisation intégrées

AWS Batch affiche des métriques opérationnelles clés pour vos tâches de traitement par lots dans AWS Management Console. Vous pouvez consulter les métriques liées aux capacités de calcul, ainsi que les tâches en cours d'exécution, en attente et terminées. Les journaux de vos tâches (par ex., STDERR et STDOUT) sont disponibles dans AWS Management Console et sont également écrits dans Amazon CloudWatch Logs.

Contrôle précis des accès

AWS Batch utilise IAM pour contrôler et surveiller les ressources AWS auxquelles peuvent accéder vos tâches, telles que les tables Amazon DynamoDB. Grâce à IAM, vous pouvez également définir des stratégies pour différents utilisateurs dans votre organisation. Par exemple, les administrateurs peuvent se voir accorder des autorisations d'accès complet à une opération d'API AWS Batch, les développeurs peuvent disposer d'autorisations limitées pour la configuration d'environnements de calcul et l'enregistrement de tâches, et les utilisateurs finaux peuvent être limités aux autorisations nécessaires pour soumettre et supprimer des tâches.

En savoir plus sur la tarification d’AWS Batch

Visiter la page de tarification
Prêt à concevoir ?
Démarrer avec AWS Batch
D'autres questions ?
Contactez-nous