Buat template peluncuran dengan CloudFormation - AWS CloudFormation

Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.

Buat template peluncuran dengan CloudFormation

Bagian ini memberikan contoh untuk membuat template peluncuran Amazon EC2 menggunakan. CloudFormation Template peluncuran memungkinkan Anda membuat templat untuk mengonfigurasi dan menyediakan instans Amazon EC2 di dalamnya. AWS Dengan template peluncuran, Anda dapat menyimpan parameter peluncuran sehingga Anda tidak perlu menentukannya setiap kali Anda meluncurkan instance. Untuk contoh lainnya, lihat bagian Contoh di AWS::EC2::LaunchTemplate sumber daya.

Untuk informasi selengkapnya tentang template peluncuran, lihat Menyimpan parameter peluncuran instans di templat peluncuran Amazon EC2 di Panduan Pengguna Amazon EC2.

Untuk informasi tentang membuat templat peluncuran untuk digunakan dengan grup Auto Scaling, lihat templat peluncuran Auto Scaling di Panduan Pengguna Amazon EC2 Auto Scaling.

Buat template peluncuran yang menentukan grup keamanan, tag, data pengguna, dan peran IAM

Cuplikan ini menunjukkan AWS::EC2::LaunchTemplatesumber daya yang berisi informasi konfigurasi untuk meluncurkan instance. Anda menentukan nilai untukImageId,InstanceType,SecurityGroups,UserData, dan TagSpecifications properti. SecurityGroupsProperti menentukan grup keamanan EC2 yang ada dan grup keamanan baru. RefFungsi mendapatkan ID dari AWS::EC2::SecurityGroupsumber daya myNewEC2SecurityGroup yang dideklarasikan di tempat lain di template tumpukan.

Template peluncuran mencakup bagian untuk data pengguna kustom. Anda dapat meneruskan tugas konfigurasi dan skrip yang berjalan saat instance diluncurkan di bagian ini. Dalam contoh ini, data pengguna menginstal AWS Systems Manager Agen dan memulai agen.

Template peluncuran juga menyertakan peran IAM yang memungkinkan aplikasi yang berjalan pada instance untuk melakukan tindakan atas nama Anda. Contoh ini menunjukkan AWS::IAM::Rolesumber daya untuk template peluncuran, yang menggunakan IamInstanceProfile properti untuk menentukan peran IAM. RefFungsi mendapatkan nama sumber AWS::IAM::InstanceProfiledayamyInstanceProfile. Untuk mengonfigurasi izin peran IAM, Anda menentukan nilai untuk properti. 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