

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.

# Créez des modèles de lancement avec CloudFormation
<a name="quickref-ec2-launch-templates"></a>

Cette section fournit un exemple de création d'un modèle de lancement Amazon EC2 à l'aide de. CloudFormation Les modèles de lancement vous permettent de créer des modèles pour configurer et approvisionner des instances Amazon EC2 au sein de AWS. Les modèles de lancement vous permettent de stocker les paramètres de lancement afin de ne pas avoir à les spécifier à chaque fois que vous lancez une instance. Pour plus d’exemples, consultez la section [Exemples](https://docs.aws.amazon.com/AWSCloudFormation/latest/TemplateReference/aws-resource-ec2-launchtemplate.html#aws-resource-ec2-launchtemplate--examples) dans la ressource `AWS::EC2::LaunchTemplate`.

Pour plus d’informations sur les modèles de lancement, consultez la section [Paramètres de lancement d’instance de magasin dans les modèles de lancement Amazon EC2](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-launch-templates.html) du *Guide de l’utilisateur Amazon EC2*. 

Pour plus d’informations sur la création de modèles de lancement à utiliser avec les groupes Auto Scaling, consultez la section [Modèles de lancement autoscaling](https://docs.aws.amazon.com/autoscaling/ec2/userguide/launch-templates.html) dans le *Guide de l’utilisateur Amazon EC2 Auto Scaling*.

**Topics**
+ [Création d’un modèle de lancement qui spécifie les groupes de sécurité, les balises, les données utilisateur et un rôle IAM](#scenario-as-launch-template)

## Création d’un modèle de lancement qui spécifie les groupes de sécurité, les balises, les données utilisateur et un rôle IAM
<a name="scenario-as-launch-template"></a>

Cet extrait montre une [AWS::EC2::LaunchTemplate](https://docs.aws.amazon.com/AWSCloudFormation/latest/TemplateReference/aws-resource-ec2-launchtemplate.html)ressource contenant les informations de configuration nécessaires au lancement d'une instance. Vous spécifiez les valeurs pour les propriétés `ImageId`, `InstanceType`, `SecurityGroups`, `UserData` et `TagSpecifications`. La propriété `SecurityGroups` indique un groupe de sécurité EC2 existant nommé et un nouveau groupe de sécurité. La `Ref` fonction obtient l'ID de la [AWS::EC2::SecurityGroup](https://docs.aws.amazon.com/AWSCloudFormation/latest/TemplateReference/aws-resource-ec2-securitygroup.html)ressource `myNewEC2SecurityGroup` déclarée ailleurs dans le modèle de pile. 

Le modèle de lancement comprend une section pour les données utilisateur personnalisées. Dans cette section, vous pouvez transmettre des tâches de configuration et des scripts qui s'exécutent lors du lancement d'une instance. Dans cet exemple, les données utilisateur installent l' AWS Systems Manager agent et démarrent l'agent.

Le modèle de lancement inclut également un rôle IAM qui autorise les applications exécutées sur les instances à effectuer des actions en votre nom. Cet exemple montre une [AWS::IAM::Role](https://docs.aws.amazon.com/AWSCloudFormation/latest/TemplateReference/aws-resource-iam-role.html)ressource pour le modèle de lancement, qui utilise la `IamInstanceProfile` propriété pour spécifier le rôle IAM. La `Ref` fonction obtient le nom de la [AWS::IAM::InstanceProfile](https://docs.aws.amazon.com/AWSCloudFormation/latest/TemplateReference/aws-resource-iam-instanceprofile.html)ressource`myInstanceProfile`. Pour configurer les autorisations du rôle IAM, vous spécifiez une valeur pour la propriété `ManagedPolicyArns`.

### JSON
<a name="quickref-launch-template-example-1.json"></a>

```
 1. {
 2.   "Resources":{
 3.     "myLaunchTemplate":{
 4.       "Type":"AWS::EC2::LaunchTemplate",
 5.       "Properties":{
 6.         "LaunchTemplateName":{ "Fn::Sub": "${AWS::StackName}-launch-template" },
 7.         "LaunchTemplateData":{
 8.           "ImageId":"ami-02354e95b3example",
 9.           "InstanceType":"t3.micro",
10.           "IamInstanceProfile":{
11.             "Name":{
12.               "Ref":"myInstanceProfile"
13.             }
14.           },
15.           "SecurityGroupIds":[
16.             {
17.               "Ref":"myNewEC2SecurityGroup"
18.             },
19.             "sg-083cd3bfb8example"
20.           ],
21.           "UserData":{
22.             "Fn::Base64":{
23.               "Fn::Join": [
24.                 "", [
25.                   "#!/bin/bash\n",
26.                   "cd /tmp\n",
27.                   "yum install -y https://s3.amazonaws.com/ec2-downloads-windows/SSMAgent/latest/linux_amd64/amazon-ssm-agent.rpm\n",
28.                   "systemctl enable amazon-ssm-agent\n",
29.                   "systemctl start amazon-ssm-agent\n"
30.                 ]
31.               ]
32.             }
33.           },
34.           "TagSpecifications":[
35.             {
36.               "ResourceType":"instance",
37.               "Tags":[
38.                 {
39.                   "Key":"environment",
40.                   "Value":"development"
41.                 }
42.               ]
43.             },
44.             {
45.               "ResourceType":"volume",
46.               "Tags":[
47.                 {
48.                   "Key":"environment",
49.                   "Value":"development"
50.                 }
51.               ]
52.             }
53.           ]
54.         }
55.       }
56.     },
57.     "myInstanceRole":{
58.       "Type":"AWS::IAM::Role",
59.       "Properties":{
60.         "RoleName":"InstanceRole",
61.         "AssumeRolePolicyDocument":{
62.           "Version": "2012-10-17",		 	 	 
63.           "Statement":[
64.             {
65.               "Effect":"Allow",
66.               "Principal":{
67.                 "Service":[
68.                   "ec2.amazonaws.com"
69.                 ]
70.               },
71.               "Action":[
72.                 "sts:AssumeRole"
73.               ]
74.             }
75.           ]
76.         },
77.         "ManagedPolicyArns":[
78.           "arn:aws:iam::aws:policy/myCustomerManagedPolicy"
79.         ]
80.       }
81.     },
82.     "myInstanceProfile":{
83.       "Type":"AWS::IAM::InstanceProfile",
84.       "Properties":{
85.         "Path":"/",
86.         "Roles":[
87.           {
88.             "Ref":"myInstanceRole"
89.           }
90.         ]
91.       }
92.     }
93.   }
94. }
```

### YAML
<a name="quickref-launch-template-example-1.yaml"></a>

```
 1. ---
 2. Resources:
 3.   myLaunchTemplate:
 4.     Type: AWS::EC2::LaunchTemplate
 5.     Properties:
 6.       LaunchTemplateName: !Sub ${AWS::StackName}-launch-template
 7.       LaunchTemplateData:
 8.         ImageId: ami-02354e95b3example
 9.         InstanceType: t3.micro
10.         IamInstanceProfile:
11.           Name: !Ref myInstanceProfile
12.         SecurityGroupIds:
13.         - !Ref myNewEC2SecurityGroup
14.         - sg-083cd3bfb8example
15.         UserData:
16.           Fn::Base64: !Sub |
17.             #!/bin/bash
18.             cd /tmp
19.             yum install -y https://s3.amazonaws.com/ec2-downloads-windows/SSMAgent/latest/linux_amd64/amazon-ssm-agent.rpm
20.             systemctl enable amazon-ssm-agent
21.             systemctl start amazon-ssm-agent
22.         TagSpecifications:
23.         - ResourceType: instance
24.           Tags:
25.           - Key: environment
26.             Value: development
27.         - ResourceType: volume
28.           Tags:
29.           - Key: environment
30.             Value: development
31.   myInstanceRole:
32.     Type: AWS::IAM::Role
33.     Properties:
34.       RoleName: InstanceRole
35.       AssumeRolePolicyDocument:
36.         Version: '2012-10-17'
37.         Statement:
38.         - Effect: 'Allow'
39.           Principal:
40.             Service:
41.             - 'ec2.amazonaws.com'
42.           Action:
43.           - 'sts:AssumeRole'
44.       ManagedPolicyArns:
45.         - 'arn:aws:iam::aws:policy/myCustomerManagedPolicy'
46.   myInstanceProfile:
47.     Type: AWS::IAM::InstanceProfile
48.     Properties:
49.       Path: '/'
50.       Roles:
51.       - !Ref myInstanceRole
```