View a markdown version of this page

Environnements informatiques gérés - 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.

Environnements informatiques gérés

Vous pouvez utiliser un environnement informatique géré pour AWS Batch gérer la capacité et les types d'instance des ressources de calcul au sein de l'environnement. Ceci est basé sur les spécifications des ressources de calcul que vous définissez lorsque vous créez l'environnement de calcul. Vous pouvez choisir d'utiliser les instances Amazon EC2 ou On-Demand les instances Spot Amazon EC2. Vous pouvez également utiliser les capacités de Fargate et de 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 de l'instance Spot est inférieur à un certain pourcentage du On-Demand prix.

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 de calcul Fargate Spot.

Important

AWS Batch crée et gère plusieurs AWS ressources en votre nom et au sein de votre compte, notamment des modèles de lancement Amazon EC2, des groupes Amazon EC2 Auto Scaling, des flottes Amazon EC2 Spot et des clusters Amazon ECS. Ces ressources gérées sont configurées spécifiquement pour garantir un AWS Batch fonctionnement optimal. La modification manuelle de ces ressources AWS Batch gérées, sauf indication explicite dans la AWS Batch documentation, peut entraîner des comportements inattendus, notamment des environnements de INVALID calcul, un comportement de dimensionnement des instances sous-optimal, un retard dans le traitement de la charge de travail ou des coûts imprévus. Ces modifications manuelles ne peuvent pas être prises en charge de manière déterministe par le AWS Batch service. Utilisez toujours les AWS Batch API prises en charge ou la AWS Batch console pour gérer vos environnements informatiques.

Les modifications manuelles non prises en charge incluent l'exécution de vos propres tâches ou services Amazon ECS sur des clusters Amazon ECS AWS Batch gérés, ou le démarrage de processus, de démons ou de services supplémentaires directement sur des instances gérées. AWS Batch AWS Batch assume le contrôle total des ressources de calcul dans un environnement informatique géré et peut mettre fin à des instances, arrêter des tâches ou faire évoluer le cluster à tout moment. Toutes les charges de travail que vous exécutez en dehors des soumissions de AWS Batch tâches sur ces ressources gérées peuvent être interrompues sans avertissement. L'exécution de AWS Batch charges de travail non gérées sur des clusters et des instances AWS Batch gérés peut également interférer avec la planification des AWS Batch tâches et la mise à l'échelle des instances.

Pour les environnements de calcul qui utilisent Amazon ECS, ne définissez pas de valeurs de configuration de l'agent Amazon ECS qui AWS Batch gère les données utilisateur dans votre modèle de lancement. Pour obtenir la liste des valeurs réservées, consultezValeurs de configuration réservées pour les agents Amazon ECS.

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 ne possèdent 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, consultezCréer un Virtual Private Cloud.

Par défaut, les environnements informatiques 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 pour vos environnements informatiques gérés pour diverses raisons. Pour de plus amples informations, veuillez consulter AMI de ressources de calcul.

Note

AWS Batch ne met pas automatiquement à niveau les AMI dans un environnement informatique après sa création. 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 toutes 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 de plus amples informations, veuillez consulter Mettre à jour un environnement informatique dans AWS Batch. 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 rôle de service (serviceRole) ou définissez-le sur le rôle AWSServiceRoleForBatch lié au service.

  • Définissez le paramètre de stratégie d'allocation (allocationStrategy) sur BEST_FIT_PROGRESSIVE BEST_FIT_PROGRESSIVE_ORDEREDSPOT_CAPACITY_OPTIMIZED,SPOT_PRICE_CAPACITY_OPTIMIZED, ouSPOT_CAPACITY_OPTIMIZED_PRIORITIZED.

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

  • Ne spécifiez pas d'ID AMI dans imageId, imageIdOverride (dans ec2Configuration) ou dans le modèle de lancement (launchTemplate). Dans ce cas, AWS Batch sélectionne la dernière AMI optimisée pour Amazon ECS qui est prise en charge AWS Batch au moment où la mise à jour de l'infrastructure est lancée. Vous pouvez également spécifier l'ID AMI dans les imageIdOverride paramètres imageId ou 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 AMI est spécifié dans le modèle de lancement, il ne peut pas être remplacé en spécifiant un ID 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 version paramè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.

À prendre en compte lors de la création de tâches parallèles multi-nœuds

AWS Batch recommande de créer des environnements informatiques dédiés pour exécuter des tâches parallèles multi-nœuds (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é. Lors de la création d'un nouvel environnement informatique géré, si vous spécifiez une minvCpu valeur supérieure à zéro, cela AWS Batch crée un pool d'instances à utiliser uniquement avec des tâches non MNP. Si une tâche parallèle multi-nœuds est soumise, AWS Batch crée une nouvelle capacité d'instance pour exécuter les tâches parallèles multi-nœuds. 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 est définie, si les ressources de calcul requises ne sont pas disponibles, AWS Batch attendra la fin des tâches en cours avant de créer les ressources de calcul nécessaires à l'exécution des nouvelles tâches.