Utilisez les modèles EC2 de lancement Amazon avec AWS Batch - 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.

Utilisez les modèles EC2 de lancement Amazon avec AWS Batch

AWS Batch prend en charge l'utilisation des modèles de EC2 lancement Amazon avec vos environnements EC2 informatiques. Avec les modèles de lancement, vous pouvez modifier la configuration par défaut de vos ressources AWS Batch informatiques sans avoir à créer des modèles personnalisésAMIs.

Note

Les modèles de lancement ne sont pas pris en charge sur les AWS ressources Fargate.

Vous devez créer un modèle de lancement avant de pouvoir l'associer à un environnement de calcul. Vous pouvez créer un modèle de lancement dans la EC2 console Amazon. Ou, vous pouvez utiliser le AWS CLI ou un AWS SDK. Par exemple, le JSON fichier suivant représente un modèle de lancement qui redimensionne le volume de données Docker pour la ressource de AWS Batch calcul par défaut AMI et le définit également pour qu'il soit chiffré.

{ "LaunchTemplateName": "increase-container-volume-encrypt", "LaunchTemplateData": { "BlockDeviceMappings": [ { "DeviceName": "/dev/xvda", "Ebs": { "Encrypted": true, "VolumeSize": 100, "VolumeType": "gp2" } } ] } }

Vous pouvez créer le modèle de lancement précédent en l'JSONenregistrant dans un fichier appelé lt-data.json et en exécutant la AWS CLI commande suivante.

aws ec2 --region <region> create-launch-template --cli-input-json file://lt-data.json

Pour plus d'informations sur les modèles de lancement, consultez Lancer une instance à partir d'un modèle de lancement dans le guide de EC2 l'utilisateur Amazon.

Si vous utilisez un modèle de lancement pour créer votre environnement de calcul, vous pouvez déplacer les paramètres suivants de l'environnement de calcul existant dans votre modèle de lancement :

Note

Supposons que l'un de ces paramètres (à l'exception des EC2 balises Amazon) soit spécifié à la fois dans le modèle de lancement et dans la configuration de l'environnement de calcul. Les paramètres de l'environnement de calcul sont alors prioritaires. Les EC2 balises Amazon sont fusionnées entre le modèle de lancement et la configuration de l'environnement de calcul. En cas de collision sur la clé de la balise, la valeur de la configuration de l'environnement de calcul est prioritaire.

  • Paire EC2 de clés Amazon

  • EC2AMIIdentifiant Amazon

  • Groupe de sécurité IDs

  • EC2Balises Amazon

Les paramètres du modèle de lancement suivants sont ignorés par AWS Batch :

  • Type d'instance (spécifiez vos types d'instance souhaités lorsque vous créez votre environnement de calcul)

  • Rôle d'instance (spécifiez votre rôle d'instance souhaité lorsque vous créez votre environnement de calcul)

  • Sous-réseaux d'interface réseau (spécifiez vos sous-réseaux souhaités lorsque vous créez votre environnement de calcul)

  • Options du marché des instances (AWS Batch doit contrôler la configuration de l'instance Spot)

  • Désactiver API la résiliation (AWS Batch doit contrôler le cycle de vie de l'instance)

AWS Batch met uniquement à jour le modèle de lancement avec une nouvelle version du modèle de lancement lors des mises à jour de l'infrastructure. Pour de plus amples informations, veuillez consulter Mise à jour des environnements informatiques.

Modèles de lancement par défaut et de remplacement

Vous pouvez définir un modèle de lancement par défaut pour l'environnement de calcul et un modèle de lancement de remplacement pour des types et familles d'instances spécifiques. Cela peut vous être utile pour que le modèle par défaut soit utilisé pour la majorité des types d'instances dans les environnements informatiques.

Les variables $Default de substitution $Latest peuvent être utilisées au lieu de nommer une version spécifique. Si vous ne fournissez pas de modèle de lancement de remplacement, le modèle de lancement par défaut est automatiquement appliqué.

Si vous utilisez la $Latest variable $Default or, elle AWS Batch appliquera les informations actuelles au moment de la création de l'environnement de calcul. Si la version par défaut ou la dernière version change à l'avenir, vous devez mettre à jour les informations via UpdateComputeEnvironmentou via le AWS Management Console - AWS Batch.

Pour plus de flexibilité, vous pouvez définir des modèles de lancement de remplacement qui seront appliqués à des types ou familles d'instances de calcul spécifiques.

Note

Vous pouvez spécifier jusqu'à dix (10) modèles de lancement de remplacement par environnement informatique.

Utilisez le targetInstanceTypes paramètre pour sélectionner le type ou la famille d'instance qui doit utiliser ce modèle de lancement de remplacement. Le type ou la famille d'instance doit d'abord être identifié par le instanceTypesparamètre.

Si vous définissez des remplacements de modèles de lancement et que vous décidez de les supprimer ultérieurement, vous pouvez transmettre un tableau vide pour annuler le overridesparamètre lors de l'UpdateComputeEnvironmentAPIopération. Vous pouvez également choisir de ne pas inclure le overrides paramètre lors de la soumission de l'UpdateComputeEnvironmentAPIopération. Pour plus d'informations, voir LaunchTemplateSpecification.overrides

Pour plus d'informations, consultez LaunchTemplateSpecificationOverride.targetInstanceTypesle guide AWS Batch API de référence.

Données EC2 utilisateur Amazon dans les modèles de lancement

Vous pouvez fournir des données EC2 utilisateur Amazon dans votre modèle de lancement qui est exécuté par cloud-init lors du lancement de vos instances. Vos données utilisateur peuvent exécuter des scénarios de configuration courants, notamment les suivants :

Les données EC2 utilisateur Amazon figurant dans les modèles de lancement doivent être au format d'archive en MIME plusieurs parties. Cela est dû au fait que vos données utilisateur sont fusionnées avec AWS Batch d'autres données utilisateur nécessaires à la configuration de vos ressources informatiques. Vous pouvez combiner plusieurs blocs de données utilisateur dans un seul fichier en MIME plusieurs parties. Par exemple, vous pouvez associer un boothook cloud qui configure le daemon Docker à un script shell de données utilisateur qui écrit des informations de configuration pour l'agent de conteneur Amazon. ECS

Si vous l'utilisez AWS CloudFormation, le type AWS: CloudFormation : :Init peut être utilisé avec le script d'assistance cfn-init pour exécuter des scénarios de configuration courants.

Un fichier en MIME plusieurs parties comprend les éléments suivants :

  • Le type de contenu et la déclaration de limite : Content-Type: multipart/mixed; boundary="==BOUNDARY=="

  • La déclaration de MIME version : MIME-Version: 1.0

  • Un ou plusieurs blocs de données utilisateur contenant les composants suivants :

    • La limite d'ouverture qui indique le début d'un bloc de données utilisateur :--==BOUNDARY==. Vous devez laisser la ligne avant cette limite vide.

    • La déclaration de type de contenu du bloc : Content-Type: text/cloud-config; charset="us-ascii". Pour plus d'informations sur les types de contenu, consultez la documentation sur Cloud-Init. Vous devez laisser la ligne après la déclaration de type de contenu vide.

    • Le contenu des données utilisateur, tel qu'une liste de commandes ou de cloud-init directives du shell.

  • La limite de fermeture qui indique la fin du fichier en MIME plusieurs parties :--==BOUNDARY==--. Vous devez laisser la ligne avant la limite de fermeture vide.

Note

Si vous ajoutez des données utilisateur à un modèle de lancement dans la EC2 console Amazon, vous pouvez les coller sous forme de texte brut. Vous pouvez également le télécharger à partir d'un fichier. Si vous utilisez le AWS CLI ou an AWS SDK, vous devez d'abord base64 encoder les données utilisateur et envoyer cette chaîne comme valeur du UserData paramètre lorsque vous appelez CreateLaunchTemplate, comme indiqué dans ce JSON fichier.

{ "LaunchTemplateName": "base64-user-data", "LaunchTemplateData": { "UserData": "ewogICAgIkxhdW5jaFRlbXBsYXRlTmFtZSI6ICJpbmNyZWFzZS1jb250YWluZXItdm9sdW..." } }