Environnement de calcul - AWS Batch

Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.

Environnement de calcul

Les files d'attente de tâches sont mappées sur un ou plusieurs environnements de calcul. Les environnements de calcul contiennent les instances de conteneur Amazon ECS qui sont utilisées pour exécuter des tâches par lots conteneurisées. Un environnement informatique spécifique peut également être mappé à une ou plusieurs files d'attente de tâches. Au sein d'une file d'attente de tâches, les environnements informatiques associés ont chacun un ordre utilisé par le planificateur pour déterminer où les tâches prêtes à être exécutées seront exécutées. Si le premier environnement de calcul a un statut de VALID et dispose de ressources disponibles, la tâche est planifiée sur une instance de conteneur au sein de cet environnement informatique. Si le premier environnement de calcul a un statut de INVALID ou ne peut pas fournir de ressource de calcul appropriée, le planificateur tente d'exécuter la tâche sur l'environnement de calcul suivant.

Environnements informatiques gérés

Vous pouvez utiliser un environnement informatique géré pour AWS Batch gérer la capacité et les types d'instances des ressources de calcul au sein de l'environnement. Ceci est basé sur les spécifications des ressources de calcul que vous définissez lors de la création de l'environnement de calcul. Vous pouvez choisir d'utiliser les instances Amazon EC2 On-Demand et les instances Amazon EC2 Spot. Vous pouvez également utiliser les capacités Fargate et Fargate Spot dans votre environnement informatique géré. Lorsque vous utilisez des instances Spot, vous pouvez éventuellement définir un prix maximum. Ainsi, les instances Spot ne sont lancées que lorsque le prix des instances Spot est inférieur à un pourcentage spécifié du prix à la demande.

Important

Les instances Fargate Spot ne sont pas prises en charge sur. Windows containers on AWS Fargate Une file d'attente de tâches sera bloquée si une FargateWindows tâche est soumise à une file d'attente de tâches qui utilise uniquement les environnements informatiques Fargate Spot.

Les environnements informatiques gérés lancent des instances Amazon EC2 dans le VPC et les sous-réseaux que vous spécifiez, puis les enregistrent auprès d'un cluster Amazon ECS. Les instances Amazon EC2 ont besoin d'un accès réseau externe pour communiquer avec le point de terminaison du service Amazon ECS. Certains sous-réseaux ne fournissent pas d'adresses IP publiques aux instances Amazon EC2. Si vos instances Amazon EC2 n'ont pas d'adresse IP publique, elles doivent utiliser la traduction d'adresses réseau (NAT) pour obtenir cet accès. Pour plus d'informations, veuillez consulter NAT Gateways (Passerelles NAT) dans le Guide de l'utilisateur Amazon VPC. Pour plus d'informations sur la création d'un VPC, consultez. Création d'un cloud privé virtuel

Par défaut, les environnements de calcul AWS Batch gérés utilisent une version récente et approuvée de l'AMI optimisée Amazon ECS pour les ressources de calcul. Cependant, vous souhaiterez peut-être créer votre propre AMI à utiliser dans vos environnements informatiques gérés pour diverses raisons. Pour plus d’informations, consultez AMI de ressources de calcul.

Note

AWS Batch ne met pas automatiquement à niveau les AMI dans un environnement informatique une fois celui-ci créé. Par exemple, il ne met pas à jour les AMI de votre environnement informatique lorsqu'une nouvelle version de l'AMI optimisée pour Amazon ECS est publiée. Vous êtes responsable de la gestion du système d'exploitation client. Cela inclut les mises à jour et les correctifs de sécurité. Vous êtes également responsable de tout logiciel d'application ou utilitaire supplémentaire que vous installez sur les ressources informatiques. Il existe deux manières d'utiliser une nouvelle AMI pour vos AWS Batch tâches. La méthode initiale consiste à procéder comme suit :

  1. Créez un nouvel environnement de calcul avec la nouvelle AMI.

  2. Ajoutez l'environnement de calcul à une file d'attente de tâches existante.

  3. Supprimez l'environnement de calcul antérieur de votre file d'attente de tâches.

  4. Supprimez l'environnement de calcul antérieur.

En avril 2022, AWS Batch ajout d'un support amélioré pour la mise à jour des environnements informatiques. Pour plus d’informations, consultez Mise à jour des environnements informatiques. Pour utiliser la mise à jour améliorée des environnements de calcul afin de mettre à jour les AMI, suivez les règles ci-dessous :

  • Ne définissez pas le paramètre du rôle de service (serviceRole) ou définissez-le sur le rôle AWSServiceRoleForBatchlié au service.

  • Définissez le paramètre de stratégie d'allocation (allocationStrategy) surBEST_FIT_PROGRESSIVE, SPOT_CAPACITY_OPTIMIZED ouSPOT_PRICE_CAPACITY_OPTIMIZED.

  • Définissez le paramètre de mise à jour vers la dernière version de l'image (updateToLatestImageVersion) surtrue.

  • Ne spécifiez pas d'ID d'AMI dans imageId, imageIdOverride(in ec2Configuration) ou dans le modèle de lancement (launchTemplate). Dans ce cas, AWS Batch sélectionne l'AMI optimisée pour Amazon ECS la plus récente prise en charge AWS Batch au moment du lancement de la mise à jour de l'infrastructure. Vous pouvez également spécifier l'ID de l'AMI dans les imageIdOverride paramètres imageId ou dans le modèle de lancement identifié par les LaunchTemplate propriétés. La modification de l'une de ces propriétés déclenche une mise à jour de l'infrastructure. Si l'ID d'AMI est spécifié dans le modèle de lancement, il ne peut pas être remplacé en spécifiant un ID d'AMI dans les imageIdOverride paramètres imageId ou. Il ne peut être remplacé qu'en spécifiant un modèle de lancement différent. Ou, si la version du modèle de lancement est définie sur $Default ou$Latest, en définissant une nouvelle version par défaut pour le modèle de lancement (si c'est le cas$Default) ou en ajoutant une nouvelle version au modèle de lancement (si c'est le cas$Latest).

Si ces règles sont respectées, toute mise à jour qui lance une mise à jour de l'infrastructure entraînera une nouvelle sélection de l'ID AMI. Si le versionparamètre du modèle de lancement (launchTemplate) est défini sur $Latest ou$Default, la version la plus récente ou par défaut du modèle de lancement est évaluée au moment de la mise à jour de l'infrastructure, même si elle n'launchTemplatea pas été mise à jour.

Prise en compte lors de la création de tâches parallèles à nœuds multiples

AWS Batch recommande de créer des environnements informatiques dédiés pour exécuter des tâches multi-nœuds parallèles (MNP) et des tâches non MNP. Cela est dû à la manière dont la capacité de calcul est créée dans votre environnement informatique géré. Lorsque vous créez un nouvel environnement informatique géré, si vous spécifiez une minvCpu valeur supérieure à zéro, vous AWS Batch créez un pool d'instances à utiliser uniquement avec des tâches non MNP. Si une tâche parallèle à nœuds multiples est soumise, AWS Batch crée une nouvelle capacité d'instance pour exécuter les tâches parallèles à nœuds multiples. Dans les cas où des tâches parallèles à nœud unique et à nœuds multiples sont exécutées dans le même environnement informatique où une maxvCpus valeur minvCpus ou une valeur est définie, si les ressources de calcul requises ne sont pas disponibles, il AWS Batch faudra attendre la fin des tâches en cours avant de créer les ressources de calcul nécessaires pour exécuter les nouvelles tâches.

Environnements informatiques non gérés

Dans un environnement de calcul non géré, vous gérez vos propres ressources de calcul. Vous devez vérifier que l'AMI que vous utilisez pour vos ressources de calcul est conforme à la spécification AMI de l'instance de conteneur Amazon ECS. Pour plus d’informations, consultez Spécification de l'AMI des ressources de calcul et Création d'une AMI de ressources de calcul.

Note

AWS Les ressources Fargate ne sont pas prises en charge dans les environnements informatiques non gérés.

Après avoir créé votre environnement de calcul non géré, utilisez l'opération d'DescribeComputeEnvironmentsAPI pour afficher les détails de l'environnement de calcul. Trouvez le cluster Amazon ECS associé à l'environnement, puis lancez manuellement vos instances de conteneur dans ce cluster Amazon ECS.

La AWS CLI commande suivante fournit également l'ARN du cluster Amazon ECS.

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

Pour plus d'informations, reportez-vous à la section consacrée au Lancement d'une instance de conteneur Amazon ECS dans le Guide du développeur Amazon Elastic Container Service. Lorsque vous lancez vos ressources de calcul, spécifiez l'ARN du cluster Amazon ECS que les ressources enregistrent avec les données utilisateur Amazon EC2 suivantes. ecsClusterArnRemplacez-le par l'ARN du cluster que vous avez obtenu avec la commande précédente.

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