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 EC2 lancement Amazon à l'aide de AWS 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 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 manuel Amazon EC2 Auto Scaling User Guide.
Catégories d'extraits
Créez un modèle de lancement qui spécifie les groupes de sécurité, les balises, les données utilisateur et un IAM rôle
Cet extrait montre une LaunchTemplate ressource AWS: : : EC2 : qui contient les informations de configuration pour lancer 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 SecurityGroup ressource AWSmyNewEC2SecurityGroup
: EC2 : : : 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 IAM rôle qui permet aux applications exécutées sur des instances d'effectuer des actions en votre nom. Cet exemple montre une ressource AWS: : IAM : :Role pour le modèle de lancement, qui utilise la IamInstanceProfile
propriété pour spécifier le IAM rôle. La Ref
fonction obtient le nom de la InstanceProfile ressource AWS: IAM : : :myInstanceProfile
. Pour configurer les autorisations du IAM rôle, vous devez spécifier une valeur pour la ManagedPolicyArns
propriété.
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: - !RefmyNewEC2SecurityGroup
-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