Créez des modèles de lancement avec AWS CloudFormation - AWS CloudFormation

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 AWS CloudFormation

Cette section fournit un exemple de création d'un modèle de lancement Amazon EC2 à l'aide de. AWS 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 ce dernier. 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 de la AWS::EC2::LaunchTemplate ressource.

Pour plus d'informations sur les modèles de lancement, consultez Lancer une instance à partir d'un modèle de lancement.

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 dans le guide de l'utilisateur Amazon EC2 Auto Scaling.

Créez 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 propriété SecurityGroups indique un groupe de sécurité EC2 existant nommé et un nouveau groupe de sécurité. La fonction Ref 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 permet aux applications exécutées sur des instances d'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 fonction Ref 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-02354e95b3example InstanceType: t3.micro IamInstanceProfile: Name: !Ref myInstanceProfile SecurityGroupIds: - !Ref myNewEC2SecurityGroup - sg-083cd3bfb8example UserData: 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-agent 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