Crea modelli di lancio con AWS CloudFormation - AWS CloudFormation

Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.

Crea modelli di lancio con AWS CloudFormation

Questa sezione fornisce un esempio per la creazione di un modello di lancio di Amazon EC2 utilizzando. AWS CloudFormation I modelli di avvio consentono di creare modelli per la configurazione e il provisioning delle istanze Amazon EC2 all'interno. AWS Con i modelli di avvio, puoi memorizzare i parametri di avvio in modo da non doverli specificare ogni volta che avvii un'istanza. Per altri esempi, consulta la sezione Esempi nella AWS::EC2::LaunchTemplate risorsa.

Per ulteriori informazioni sui modelli di avvio, consulta Avviare un'istanza da un modello di avvio.

Per informazioni sulla creazione di modelli di lancio da utilizzare con i gruppi Auto Scaling, consulta i modelli di avvio nella Amazon EC2 Auto Scaling User Guide.

Crea un modello di lancio che specifichi gruppi di sicurezza, tag, dati utente e un ruolo IAM

Questo frammento mostra una AWS::EC2::LaunchTemplaterisorsa che contiene le informazioni di configurazione per avviare un'istanza. Puoi specificare i valori per le proprietà ImageId, InstanceType, SecurityGroups, UserData e TagSpecifications. La SecurityGroups proprietà specifica un gruppo di sicurezza EC2 esistente e un nuovo gruppo di sicurezza. La funzione Ref ottiene l'ID della AWS::EC2::SecurityGrouprisorsa myNewEC2SecurityGroup dichiarata altrove nel modello di stack.

Il modello di avvio include una sezione per i dati utente personalizzati. In questa sezione puoi passare attività di configurazione e script che vengono eseguiti all'avvio di un'istanza. In questo esempio, i dati utente installano l' AWS Systems Manager agente e lo avviano.

Il modello di lancio include anche un ruolo IAM che consente alle applicazioni in esecuzione su istanze di eseguire azioni per conto dell'utente. Questo esempio mostra una AWS::IAM::Rolerisorsa per il modello di avvio, che utilizza la IamInstanceProfile proprietà per specificare il ruolo IAM. La funzione Ref ottiene il nome della AWS::IAM::InstanceProfilerisorsamyInstanceProfile. Per configurare le autorizzazioni del ruolo IAM, è necessario specificare un valore per la proprietà 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