Erstellen Sie Startvorlagen mit AWS CloudFormation - AWS CloudFormation

Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.

Erstellen Sie Startvorlagen mit AWS CloudFormation

Dieser Abschnitt enthält ein Beispiel für die Erstellung einer Amazon EC2 EC2-Startvorlage mit AWS CloudFormation. Mithilfe von Startvorlagen können Sie Vorlagen für die Konfiguration und Bereitstellung von Amazon EC2 EC2-Instances innerhalb von Vorlagen erstellen. AWS Mit Startvorlagen können Sie Startparameter speichern, sodass Sie sie nicht bei jedem Start einer Instance neu angeben müssen. Weitere Beispiele finden Sie im Abschnitt Beispiele in der AWS::EC2::LaunchTemplate Ressource.

Weitere Informationen zu Startvorlagen finden Sie unter Starten einer Instance von einer Startvorlage aus.

Informationen zum Erstellen von Startvorlagen für die Verwendung mit Auto Scaling Scaling-Gruppen finden Sie unter Startvorlagen im Amazon EC2 Auto Scaling Scaling-Benutzerhandbuch.

Erstellen Sie eine Startvorlage, die Sicherheitsgruppen, Tags, Benutzerdaten und eine IAM-Rolle angibt

Dieser Ausschnitt zeigt eine AWS::EC2::LaunchTemplateRessource, die die Konfigurationsinformationen zum Starten einer Instance enthält. Sie definieren Werte für die ImageId-, InstanceType-, SecurityGroups-, UserData- und TagSpecifications-Eigenschaften. Die SecurityGroups-Eigenschaft gibt eine vorhandene EC2-Sicherheitsgruppe und eine neue Sicherheitsgruppe an. Die Ref-Funktion ruft die ID der AWS::EC2::SecurityGroupRessource abmyNewEC2SecurityGroup, die an anderer Stelle in der Stack-Vorlage deklariert ist.

Die Einführungsvorlage enthält einen Abschnitt für benutzerdefinierte Benutzerdaten. In diesem Abschnitt können Sie Konfigurations-Aufgaben und Skripts übergeben, die beim Launch einer Instance ausgeführt werden. In diesem Beispiel installieren die Benutzerdaten den AWS Systems Manager Agenten und starten den Agenten.

Die Startvorlage enthält auch eine IAM-Rolle, die es Anwendungen, die auf Instances ausgeführt werden, ermöglicht, Aktionen in Ihrem Namen auszuführen. Dieses Beispiel zeigt eine AWS::IAM::RoleRessource für die Startvorlage, die die IamInstanceProfile Eigenschaft verwendet, um die IAM-Rolle zu spezifizieren. Die Ref-Funktion ruft den Namen der AWS::IAM::InstanceProfileRessource myInstanceProfile ab. Um die Berechtigungen der IAM-Rolle zu konfigurieren, geben Sie einen Wert für die ManagedPolicyArns-Eigenschaft an.

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