Konfigurasikan EC2 instans Amazon dengan CloudFormation - AWS CloudFormation

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

Konfigurasikan EC2 instans Amazon dengan CloudFormation

Cuplikan berikut menunjukkan cara mengonfigurasi EC2 instans Amazon menggunakan. CloudFormation

EC2Konfigurasi Amazon umum

Cuplikan berikut menunjukkan konfigurasi umum untuk instans Amazon EC2 yang digunakan. CloudFormation

Membuat EC2 instance Amazon di Availability Zone yang ditentukan

Cuplikan berikut membuat EC2 instance Amazon di Availability Zone yang ditentukan menggunakan resource. AWS::EC2::Instance Kode untuk Availability Zone adalah kode Region diikuti oleh pengenal huruf. Anda dapat meluncurkan instance ke dalam Availability Zone tunggal.

JSON

"Ec2Instance": { "Type": "AWS::EC2::Instance", "Properties": { "AvailabilityZone": "aa-example-1a", "ImageId": "ami-1234567890abcdef0" } }

YAML

Ec2Instance: Type: AWS::EC2::Instance Properties: AvailabilityZone: aa-example-1a ImageId: ami-1234567890abcdef0

Mengonfigurasi EC2 instans Amazon yang diberi tag dengan volume EBS dan data pengguna

Cuplikan berikut membuat EC2 instance Amazon dengan tag, volume EBS, dan data pengguna. Ini menggunakan sumber AWS::EC2::Instancedaya. Dalam template yang sama, Anda harus menentukan AWS::EC2::SecurityGroupsumber daya, AWS::SNS::Topicsumber daya, dan AWS::EC2::Volumesumber daya. KeyNameHarus didefinisikan di Parameters bagian template.

Tag dapat membantu Anda mengkategorikan AWS sumber daya berdasarkan preferensi Anda, seperti berdasarkan tujuan, pemilik, atau lingkungan. Data pengguna memungkinkan penyediaan skrip atau data khusus ke instance selama peluncuran. Data ini memfasilitasi otomatisasi tugas, konfigurasi perangkat lunak, instalasi paket, dan tindakan lain pada instance selama inisialisasi.

Untuk informasi selengkapnya tentang menandai sumber daya Anda, lihat Menandai EC2 sumber daya Amazon Anda di Panduan EC2 Pengguna Amazon.

Untuk informasi tentang data pengguna, lihat Menggunakan metadata instans untuk mengelola EC2 instans Anda di EC2 Panduan Pengguna Amazon.

JSON

"Ec2Instance": { "Type": "AWS::EC2::Instance", "Properties": { "KeyName": { "Ref": "KeyName" }, "SecurityGroups": [ { "Ref": "Ec2SecurityGroup" } ], "UserData": { "Fn::Base64": { "Fn::Join": [ ":", [ "PORT=80", "TOPIC=", { "Ref": "MySNSTopic" } ] ] } }, "InstanceType": "aa.size", "AvailabilityZone": "aa-example-1a", "ImageId": "ami-1234567890abcdef0", "Volumes": [ { "VolumeId": { "Ref": "MyVolumeResource" }, "Device": "/dev/sdk" } ], "Tags": [ { "Key": "Name", "Value": "MyTag" } ] } }

YAML

Ec2Instance: Type: AWS::EC2::Instance Properties: KeyName: !Ref KeyName SecurityGroups: - !Ref Ec2SecurityGroup UserData: Fn::Base64: Fn::Join: - ":" - - "PORT=80" - "TOPIC=" - !Ref MySNSTopic InstanceType: aa.size AvailabilityZone: aa-example-1a ImageId: ami-1234567890abcdef0 Volumes: - VolumeId: !Ref MyVolumeResource Device: "/dev/sdk" Tags: - Key: Name Value: MyTag

Tentukan nama tabel DynamoDB dalam data pengguna untuk peluncuran instans Amazon EC2

Cuplikan berikut membuat EC2 instance Amazon dan mendefinisikan nama tabel DynamoDB dalam data pengguna untuk diteruskan ke instance saat peluncuran. Ini menggunakan sumber AWS::EC2::Instancedaya. Anda dapat menentukan parameter atau nilai dinamis dalam data pengguna untuk meneruskan EC2 instance saat peluncuran.

Untuk informasi selengkapnya tentang data pengguna, lihat Menggunakan metadata instans untuk mengelola EC2 instans Anda di EC2 Panduan Pengguna Amazon.

JSON

"Ec2Instance": { "Type": "AWS::EC2::Instance", "Properties": { "UserData": { "Fn::Base64": { "Fn::Join": [ "", [ "TableName=", { "Ref": "DynamoDBTableName" } ] ] } }, "AvailabilityZone": "aa-example-1a", "ImageId": "ami-1234567890abcdef0" } }

YAML

Ec2Instance: Type: AWS::EC2::Instance Properties: UserData: Fn::Base64: Fn::Join: - '' - - 'TableName=' - Ref: DynamoDBTableName AvailabilityZone: aa-example-1a ImageId: ami-1234567890abcdef0

Buat volume Amazon EBS dengan DeletionPolicy

Cuplikan berikut membuat volume Amazon EBS menggunakan sumber daya Amazon. EC2 AWS::EC2::Volume Anda dapat menggunakan SnapshotID properti Size or untuk menentukan volume, tetapi tidak keduanya. DeletionPolicyAtribut diatur untuk membuat snapshot volume saat tumpukan dihapus.

Untuk informasi selengkapnya tentang DeletionPolicy atribut, lihat DeletionPolicyatribut.

Untuk informasi selengkapnya tentang membuat volume Amazon EBS, lihat Membuat volume Amazon EBS.

JSON

Cuplikan ini membuat volume Amazon EBS dengan ukuran tertentu. Ukurannya diatur ke 10, tetapi Anda dapat menyesuaikannya sesuai kebutuhan. AWS::EC2::VolumeSumber daya memungkinkan Anda untuk menentukan ukuran atau ID snapshot tetapi tidak keduanya.

"MyEBSVolume": { "Type": "AWS::EC2::Volume", "Properties": { "Size": "10", "AvailabilityZone": { "Ref": "AvailabilityZone" } }, "DeletionPolicy": "Snapshot" }

Cuplikan ini membuat volume Amazon EBS menggunakan ID snapshot yang disediakan. AWS::EC2::VolumeSumber daya memungkinkan Anda untuk menentukan ukuran atau ID snapshot tetapi tidak keduanya.

"MyEBSVolume": { "Type": "AWS::EC2::Volume", "Properties": { "SnapshotId" : "snap-1234567890abcdef0", "AvailabilityZone": { "Ref": "AvailabilityZone" } }, "DeletionPolicy": "Snapshot" }

YAML

Cuplikan ini membuat volume Amazon EBS dengan ukuran tertentu. Ukurannya diatur ke 10, tetapi Anda dapat menyesuaikannya sesuai kebutuhan. AWS::EC2::VolumeSumber daya memungkinkan Anda untuk menentukan ukuran atau ID snapshot tetapi tidak keduanya.

MyEBSVolume: Type: AWS::EC2::Volume Properties: Size: 10 AvailabilityZone: Ref: AvailabilityZone DeletionPolicy: Snapshot

Cuplikan ini membuat volume Amazon EBS menggunakan ID snapshot yang disediakan. AWS::EC2::VolumeSumber daya memungkinkan Anda untuk menentukan ukuran atau ID snapshot tetapi tidak keduanya.

MyEBSVolume: Type: AWS::EC2::Volume Properties: SnapshotId: snap-1234567890abcdef0 AvailabilityZone: Ref: AvailabilityZone DeletionPolicy: Snapshot

Tentukan pemetaan perangkat blok untuk sebuah instance

Pemetaan perangkat blok mendefinisikan perangkat blok, yang mencakup volume penyimpanan instans dan volume EBS, untuk dilampirkan ke sebuah instance. Anda dapat menentukan pemetaan perangkat blok saat membuat AMI sehingga pemetaan digunakan oleh semua instance yang diluncurkan dari AMI. Atau, Anda dapat menentukan pemetaan perangkat blok saat meluncurkan instance, sehingga pemetaan menggantikan yang ditentukan dalam AMI tempat instance diluncurkan.

Anda dapat menggunakan cuplikan templat berikut untuk menentukan pemetaan perangkat blok untuk volume penyimpanan EBS atau instans menggunakan properti sumber daya. BlockDeviceMappings AWS::EC2::Instance

Untuk informasi selengkapnya tentang memblokir pemetaan perangkat, lihat Memblokir pemetaan perangkat untuk volume di EC2 instans Amazon di Panduan Pengguna Amazon. EC2

Tentukan pemetaan perangkat blok untuk dua volume EBS

JSON

"Ec2Instance": { "Type": "AWS::EC2::Instance", "Properties": { "ImageId": { "Fn::FindInMap": [ "AWSRegionArch2AMI", { "Ref": "AWS::Region" }, { "Fn::FindInMap": [ "AWSInstanceType2Arch", { "Ref": "InstanceType" }, "Arch" ] } ] }, "KeyName": { "Ref": "KeyName" }, "InstanceType": { "Ref": "InstanceType" }, "SecurityGroups": [{ "Ref": "Ec2SecurityGroup" }], "BlockDeviceMappings": [ { "DeviceName": "/dev/sda1", "Ebs": { "VolumeSize": "50" } }, { "DeviceName": "/dev/sdm", "Ebs": { "VolumeSize": "100" } } ] } } }

YAML

EC2Instance: Type: AWS::EC2::Instance Properties: ImageId: !FindInMap [AWSRegionArch2AMI, !Ref 'AWS::Region', !FindInMap [AWSInstanceType2Arch, !Ref InstanceType, Arch]] KeyName: !Ref KeyName InstanceType: !Ref InstanceType SecurityGroups: - !Ref Ec2SecurityGroup BlockDeviceMappings: - DeviceName: /dev/sda1 Ebs: VolumeSize: 50 - DeviceName: /dev/sdm Ebs: VolumeSize: 100

Tentukan pemetaan perangkat blok untuk volume penyimpanan instance

JSON

"Ec2Instance" : { "Type" : "AWS::EC2::Instance", "Properties" : { "ImageId" : { "Fn::FindInMap" : [ "AWSRegionArch2AMI", { "Ref" : "AWS::Region" }, "HVM64" ]}, "KeyName" : { "Ref" : "KeyName" }, "InstanceType": { "Ref": "InstanceType" }, "SecurityGroups" : [{ "Ref" : "Ec2SecurityGroup" }], "BlockDeviceMappings" : [ { "DeviceName" : "/dev/sdc", "VirtualName" : "ephemeral0" } ] } }

YAML

EC2Instance: Type: AWS::EC2::Instance Properties: ImageId: !FindInMap - AWSRegionArch2AMI - !Ref AWS::Region - HVM64 KeyName: !Ref KeyName InstanceType: !Ref InstanceType SecurityGroups: - !Ref Ec2SecurityGroup BlockDeviceMappings: - DeviceName: /dev/sdc VirtualName: ephemeral0