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
Cette section fournit un exemple de création d'un modèle de EC2 lancement Amazon à l'aide de CloudFormation. Les modèles de lancement vous permettent de créer des modèles pour configurer et approvisionner des EC2 instances Amazon au sein AWS de ce dernier. 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 dans la ressource AWS::EC2::LaunchTemplate.
Pour plus d'informations sur les modèles de lancement, consultez les paramètres de lancement de l'instance Store dans les modèles de EC2 lancement Amazon du guide de EC2 l'utilisateur Amazon.
Pour plus d'informations sur la création de modèles de lancement à utiliser avec les groupes Amazon EC2 Auto Scaling, consultez les modèles de lancement Amazon EC2 Auto Scaling dans le guide de l'utilisateur Amazon EC2 Auto Scaling.
Catégories d'extraits
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
Cet extrait montre une AWS::EC2::LaunchTemplateressource 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 SecurityGroups propriété spécifie un groupe EC2 de sécurité existant et un nouveau groupe de sécurité. La Ref fonction obtient l'ID de la AWS::EC2::SecurityGroupressource 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::Roleressource 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::InstanceProfileressourcemyInstanceProfile. Pour configurer les autorisations du rôle IAM, vous spécifiez une valeur pour la propriété ManagedPolicyArns.
JSON
{ "Resources":{ "myLaunchTemplate":{ "Type":"AWS::EC2::LaunchTemplate", "Properties":{ "LaunchTemplateName":{ "Fn::Sub": "${AWS::StackName}-launch-template" }, "LaunchTemplateData":{ "ImageId":"ami-02354e95b3example", "InstanceType":"t3.micro", "IamInstanceProfile":{ "Name":{ "Ref":"myInstanceProfile" } }, "SecurityGroupIds":[ { "Ref":"myNewEC2SecurityGroup" }, "sg-083cd3bfb8example" ], "UserData":{ "Fn::Base64":{ "Fn::Join": [ "", [ "#!/bin/bash\n", "cd /tmp\n", "yum install -y https://s3.amazonaws.com/ec2-downloads-windows/SSMAgent/latest/linux_amd64/amazon-ssm-agent.rpm\n", "systemctl enable amazon-ssm-agent\n", "systemctl start amazon-ssm-agent\n" ] ] } }, "TagSpecifications":[ { "ResourceType":"instance", "Tags":[ { "Key":"environment", "Value":"development" } ] }, { "ResourceType":"volume", "Tags":[ { "Key":"environment", "Value":"development" } ] } ] } } }, "myInstanceRole":{ "Type":"AWS::IAM::Role", "Properties":{ "RoleName":"InstanceRole", "AssumeRolePolicyDocument":{ "Version": "2012-10-17", "Statement":[ { "Effect":"Allow", "Principal":{ "Service":[ "ec2.amazonaws.com" ] }, "Action":[ "sts:AssumeRole" ] } ] }, "ManagedPolicyArns":[ "arn:aws:iam::aws:policy/myCustomerManagedPolicy" ] } }, "myInstanceProfile":{ "Type":"AWS::IAM::InstanceProfile", "Properties":{ "Path":"/", "Roles":[ { "Ref":"myInstanceRole" } ] } } } }
YAML
--- Resources: myLaunchTemplate: Type: AWS::EC2::LaunchTemplate Properties: LaunchTemplateName: !Sub ${AWS::StackName}-launch-template LaunchTemplateData: ImageId:ami-02354e95b3exampleInstanceType:t3.microIamInstanceProfile: Name: !Ref myInstanceProfile SecurityGroupIds: - !RefmyNewEC2SecurityGroup-sg-083cd3bfb8exampleUserData: Fn::Base64: !Sub |#!/bin/bash cd /tmp yum install -y https://s3.amazonaws.com/ec2-downloads-windows/SSMAgent/latest/linux_amd64/amazon-ssm-agent.rpm systemctl enable amazon-ssm-agent systemctl start amazon-ssm-agentTagSpecifications: - ResourceType: instance Tags: - Key:environmentValue:development- ResourceType: volume Tags: - Key:environmentValue:developmentmyInstanceRole: Type: AWS::IAM::Role Properties: RoleName: InstanceRole AssumeRolePolicyDocument: Version: '2012-10-17' Statement: - Effect: 'Allow' Principal: Service: - 'ec2.amazonaws.com' Action: - 'sts:AssumeRole' ManagedPolicyArns: - 'arn:aws:iam::aws:policy/myCustomerManagedPolicy' myInstanceProfile: Type: AWS::IAM::InstanceProfile Properties: Path: '/' Roles: - !Ref myInstanceRole