

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 de lancement Amazon EC2 avec AWS Batch
<a name="launch-templates"></a>

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

Les modèles de lancement peuvent spécifier des AMI prioritaires dans l'ordre de sélection des AMI. Pour de plus amples informations, veuillez consulter [Ordre de sélection de l'AMI](ami-selection-order.md).

**Note**  
Lorsque vous spécifiez un modèle de lancement personnalisé pour un environnement AWS Batch informatique, AWS Batch cela n'attache pas directement votre modèle de lancement au groupe Auto Scaling sous-jacent. Il AWS Batch crée plutôt un modèle de Batch-managed lancement distinct pour le groupe Auto Scaling et y intègre les paramètres pertinents de votre modèle de lancement personnalisé. Par conséquent, le modèle de lancement que vous voyez associé au groupe Auto Scaling est différent de celui que vous avez initialement spécifié. Ce comportement est normal.

**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 console Amazon EC2. Vous pouvez également utiliser le AWS CLI ou un AWS SDK. Par exemple, le fichier JSON suivant représente un modèle de lancement qui redimensionne le volume de données Docker pour l'AMI de ressources de AWS Batch calcul par défaut 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 enregistrant le JSON 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](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-launch-templates.html) dans le guide de l'*utilisateur Amazon EC2*.

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 balises Amazon EC2) 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 balises Amazon EC2 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 de clés Amazon EC2
+ ID d'AMI Amazon EC2
+ ID des groupes de sécurité
+ Balises Amazon EC2

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 la terminaison de l'API (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 [Mettre à jour un environnement informatique dans AWS Batch](updating-compute-environments.md).

## Modèles de lancement par défaut et de remplacement
<a name="default-lt-and-overrides"></a>

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 [UpdateComputeEnvironment](https://docs.aws.amazon.com/batch/latest/APIReference/API_UpdateComputeEnvironment.html)ou 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 [https://docs.aws.amazon.com/batch/latest/APIReference/API_ComputeResource.html#Batch-Type-ComputeResource-instanceTypes](https://docs.aws.amazon.com/batch/latest/APIReference/API_ComputeResource.html#Batch-Type-ComputeResource-instanceTypes)paramè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 [https://docs.aws.amazon.com/batch/latest/APIReference/API_LaunchTemplateSpecification.html#Batch-Type-LaunchTemplateSpecification-overrides](https://docs.aws.amazon.com/batch/latest/APIReference/API_LaunchTemplateSpecification.html#Batch-Type-LaunchTemplateSpecification-overrides)paramètre dans l'opération d'[https://docs.aws.amazon.com/batch/latest/APIReference/API_LaunchTemplateSpecification.html](https://docs.aws.amazon.com/batch/latest/APIReference/API_LaunchTemplateSpecification.html)API. Vous pouvez également choisir de ne pas inclure le `overrides` paramètre lors de la soumission de l'opération `UpdateComputeEnvironment` d'API. Pour plus d'informations, voir [https://docs.aws.amazon.com/batch/latest/APIReference/API_LaunchTemplateSpecification.html#Batch-Type-LaunchTemplateSpecification-overrides](https://docs.aws.amazon.com/batch/latest/APIReference/API_LaunchTemplateSpecification.html#Batch-Type-LaunchTemplateSpecification-overrides)

Pour plus d'informations, consultez [https://docs.aws.amazon.com/batch/latest/APIReference/API_LaunchTemplateSpecificationOverride.html#Batch-Type-LaunchTemplateSpecificationOverride-targetInstanceTypes](https://docs.aws.amazon.com/batch/latest/APIReference/API_LaunchTemplateSpecificationOverride.html#Batch-Type-LaunchTemplateSpecificationOverride-targetInstanceTypes)le guide de référence des AWS Batch API.

## Données utilisateur Amazon EC2 dans les modèles de lancement
<a name="lt-user-data"></a>

Vous pouvez fournir des données utilisateur Amazon EC2 dans votre modèle de lancement qui est exécuté par [cloud-init](https://cloudinit.readthedocs.io/en/latest/index.html) lors du lancement de vos instances. Vos données utilisateur peuvent exécuter des scénarios de configuration courants, notamment les suivants :
+ [Inclusion d'utilisateurs ou de groupes](https://cloudinit.readthedocs.io/en/latest/topics/examples.html#including-users-and-groups)
+ [Installations de packages](https://cloudinit.readthedocs.io/en/latest/topics/examples.html#install-arbitrary-packages)
+ [Création de partitions et systèmes de fichiers](https://cloudinit.readthedocs.io/en/latest/topics/examples.html#create-partitions-and-filesystems)

Les données utilisateur Amazon EC2 figurant dans les modèles de lancement doivent être au format d'archive en [plusieurs parties MIME](https://cloudinit.readthedocs.io/en/latest/topics/format.html#mime-multi-part-archive). 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 MIME multi-part. Par exemple, vous pouvez associer un boothook cloud qui configure le démon Docker à un script shell de données utilisateur qui écrit des informations de configuration pour l'agent de conteneur Amazon ECS.

Si vous en utilisez AWS CloudFormation, le type [AWS::CloudFormation: :Init](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-init.html) peut être utilisé avec le script d'assistance [cfn-init](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/cfn-init.html) pour exécuter des scénarios de configuration courants.

Un fichier MIME multi-part est constitué des composants suivants :
+ Le type de contenu et la déclaration de limite : `Content-Type: multipart/mixed; boundary="==BOUNDARY=="`
+ La déclaration de version MIME : `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 [Cloud-Initdocumentation](https://cloudinit.readthedocs.io/en/latest/topics/format.html). 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 MIME en 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 console Amazon EC2, 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 un 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](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_CreateLaunchTemplate.html), comme indiqué dans ce fichier JSON.  

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

**Topics**
+ [Modèles de lancement par défaut et de remplacement](#default-lt-and-overrides)
+ [Données utilisateur Amazon EC2 dans les modèles de lancement](#lt-user-data)
+ [Référence : exemples de modèles de lancement Amazon EC2](launch-template-examples.md)