Crea modelli di lancio con 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 CloudFormation

Questa sezione fornisce un esempio per la creazione di un modello di EC2 lancio Amazon utilizzando CloudFormation. I modelli di lancio consentono di creare modelli per la configurazione e il provisioning delle EC2 istanze Amazon 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 lancio, consulta i parametri di avvio delle istanze Store nei modelli di EC2 lancio di Amazon nella Amazon EC2 User Guide.

Per informazioni sulla creazione di modelli di lancio da utilizzare con i gruppi Auto Scaling, consulta i modelli di lancio di Auto Scaling nella Amazon Auto EC2 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 EC2 sicurezza esistente e un nuovo gruppo di sicurezza. La Ref funzione 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 Ref funzione 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