

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

# Konfigurasikan instans Amazon EC2 dengan CloudFormation
<a name="quickref-ec2-instance-config"></a>

Cuplikan berikut menunjukkan cara mengonfigurasi instans Amazon EC2 menggunakan. CloudFormation

**Topics**
+ [Konfigurasi umum Amazon EC2](#quickref-ec2-instance-config-general)
+ [Tentukan pemetaan perangkat blok untuk sebuah instance](#scenario-ec2-bdm)

## Konfigurasi umum Amazon EC2
<a name="quickref-ec2-instance-config-general"></a>

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

**Topics**
+ [Membuat instans Amazon EC2 di Availability Zone yang ditentukan](#scenario-ec2-instance)
+ [Mengonfigurasi instans Amazon EC2 yang diberi tag dengan volume EBS dan data pengguna](#scenario-ec2-instance-with-vol-and-tags)
+ [Tentukan nama tabel DynamoDB dalam data pengguna untuk peluncuran instans Amazon EC2](#scenario-ec2-with-sdb-domain)
+ [Buat volume Amazon EBS dengan `DeletionPolicy`](#scenario-ec2-volume)

### Membuat instans Amazon EC2 di Availability Zone yang ditentukan
<a name="scenario-ec2-instance"></a>

Cuplikan berikut membuat instance Amazon EC2 di Availability Zone yang ditentukan menggunakan resource. [AWS::EC2::Instance](https://docs.aws.amazon.com/AWSCloudFormation/latest/TemplateReference/aws-resource-ec2-instance.html) Kode untuk Availability Zone adalah kode Region diikuti oleh pengidentifikasi huruf. Anda dapat meluncurkan instance ke dalam Availability Zone tunggal. 

#### JSON
<a name="quickref-ec2-example-6.json"></a>

```
1. "Ec2Instance": {
2.     "Type": "AWS::EC2::Instance",
3.     "Properties": {
4.         "AvailabilityZone": "aa-example-1a",
5.         "ImageId": "ami-1234567890abcdef0"
6.     }
7. }
```

#### YAML
<a name="quickref-ec2-example-6.yaml"></a>

```
1. Ec2Instance:
2.   Type: AWS::EC2::Instance
3.   Properties:
4.     AvailabilityZone: aa-example-1a
5.     ImageId: ami-1234567890abcdef0
```

### Mengonfigurasi instans Amazon EC2 yang diberi tag dengan volume EBS dan data pengguna
<a name="scenario-ec2-instance-with-vol-and-tags"></a>

Cuplikan berikut membuat instans Amazon EC2 dengan tag, volume EBS, dan data pengguna. Ini menggunakan sumber [AWS::EC2::Instance](https://docs.aws.amazon.com/AWSCloudFormation/latest/TemplateReference/aws-resource-ec2-instance.html)daya. Dalam template yang sama, Anda harus menentukan [AWS::EC2::SecurityGroup](https://docs.aws.amazon.com/AWSCloudFormation/latest/TemplateReference/aws-resource-ec2-securitygroup.html)sumber daya, [AWS::SNS::Topic](https://docs.aws.amazon.com/AWSCloudFormation/latest/TemplateReference/aws-resource-sns-topic.html)sumber daya, dan [AWS::EC2::Volume](https://docs.aws.amazon.com/AWSCloudFormation/latest/TemplateReference/aws-resource-ec2-volume.html)sumber daya. `KeyName`Harus 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 sumber daya Amazon EC2 Anda](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/Using_Tags.html) di Panduan Pengguna *Amazon EC2*. 

Untuk informasi tentang data pengguna, lihat [Menggunakan metadata instans untuk mengelola instans EC2 Anda](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-instance-metadata.html) di Panduan Pengguna *Amazon* EC2.

#### JSON
<a name="quickref-ec2-example-7.json"></a>

```
 1. "Ec2Instance": {
 2.   "Type": "AWS::EC2::Instance",
 3.   "Properties": {
 4.     "KeyName": { "Ref": "KeyName" },
 5.     "SecurityGroups": [ { "Ref": "Ec2SecurityGroup" } ],
 6.     "UserData": {
 7.       "Fn::Base64": {
 8.         "Fn::Join": [ ":", [
 9.             "PORT=80",
10.             "TOPIC=",
11.             { "Ref": "MySNSTopic" }
12.           ]
13.         ]
14.       }
15.     },
16.     "InstanceType": "aa.size",
17.     "AvailabilityZone": "aa-example-1a",
18.     "ImageId": "ami-1234567890abcdef0",
19.     "Volumes": [
20.       {
21.         "VolumeId": { "Ref": "MyVolumeResource" },
22.         "Device": "/dev/sdk"
23.       }
24.     ],
25.     "Tags": [ { "Key": "Name", "Value": "MyTag" } ]
26.   }
27. }
```

#### YAML
<a name="quickref-ec2-example-7.yaml"></a>

```
 1. Ec2Instance:
 2.   Type: AWS::EC2::Instance
 3.   Properties:
 4.     KeyName: !Ref KeyName
 5.     SecurityGroups:
 6.       - !Ref Ec2SecurityGroup
 7.     UserData:
 8.       Fn::Base64:
 9.         Fn::Join:
10.           - ":"
11.           - - "PORT=80"
12.             - "TOPIC="
13.             - !Ref MySNSTopic
14.     InstanceType: aa.size
15.     AvailabilityZone: aa-example-1a
16.     ImageId: ami-1234567890abcdef0
17.     Volumes:
18.       - VolumeId: !Ref MyVolumeResource
19.         Device: "/dev/sdk"
20.     Tags:
21.       - Key: Name
22.         Value: MyTag
```

### Tentukan nama tabel DynamoDB dalam data pengguna untuk peluncuran instans Amazon EC2
<a name="scenario-ec2-with-sdb-domain"></a>

Cuplikan berikut membuat instance Amazon EC2 dan mendefinisikan nama tabel DynamoDB dalam data pengguna untuk diteruskan ke instance saat peluncuran. Ini menggunakan sumber [AWS::EC2::Instance](https://docs.aws.amazon.com/AWSCloudFormation/latest/TemplateReference/aws-resource-ec2-instance.html)daya. Anda dapat menentukan parameter atau nilai dinamis dalam data pengguna untuk meneruskan instans EC2 saat peluncuran. 

Untuk informasi selengkapnya tentang data pengguna, lihat [Menggunakan metadata instans untuk mengelola instans EC2 Anda](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-instance-metadata.html) di Panduan Pengguna *Amazon* EC2.

#### JSON
<a name="quickref-ec2-example-8.json"></a>

```
 1. "Ec2Instance": {
 2.     "Type": "AWS::EC2::Instance",
 3.     "Properties": {
 4.         "UserData": {
 5.             "Fn::Base64": {
 6.                 "Fn::Join": [
 7.                     "",
 8.                     [
 9.                         "TableName=",
10.                         {
11.                             "Ref": "DynamoDBTableName"
12.                         }
13.                     ]
14.                 ]
15.             }
16.         },
17.         "AvailabilityZone": "aa-example-1a",
18.         "ImageId": "ami-1234567890abcdef0"
19.     }
20. }
```

#### YAML
<a name="quickref-ec2-example-8.yaml"></a>

```
 1. Ec2Instance:
 2.   Type: AWS::EC2::Instance
 3.   Properties:
 4.     UserData:
 5.       Fn::Base64:
 6.         Fn::Join:
 7.           - ''
 8.           - - 'TableName='
 9.             - Ref: DynamoDBTableName
10.     AvailabilityZone: aa-example-1a
11.     ImageId: ami-1234567890abcdef0
```

### Buat volume Amazon EBS dengan `DeletionPolicy`
<a name="scenario-ec2-volume"></a>

Cuplikan berikut membuat volume Amazon EBS menggunakan sumber daya Amazon EC2. [AWS::EC2::Volume](https://docs.aws.amazon.com/AWSCloudFormation/latest/TemplateReference/aws-resource-ec2-volume.html) Anda dapat menggunakan `SnapshotID` properti `Size` or untuk menentukan volume, tetapi tidak keduanya. `DeletionPolicy`Atribut diatur untuk membuat snapshot volume saat tumpukan dihapus. 

Untuk informasi selengkapnya tentang `DeletionPolicy` atribut, lihat [DeletionPolicyatribut](https://docs.aws.amazon.com/AWSCloudFormation/latest/TemplateReference/aws-attribute-deletionpolicy.html).

Untuk informasi selengkapnya tentang membuat volume Amazon EBS, lihat [Membuat volume Amazon EBS](https://docs.aws.amazon.com/ebs/latest/userguide/ebs-creating-volume.html).

#### JSON
<a name="quickref-ec2-example-13.json"></a>

**Cuplikan ini membuat volume Amazon EBS dengan ukuran tertentu.** Ukurannya diatur ke 10, tetapi Anda dapat menyesuaikannya sesuai kebutuhan. [AWS::EC2::Volume](https://docs.aws.amazon.com/AWSCloudFormation/latest/TemplateReference/aws-resource-ec2-volume.html)Sumber daya memungkinkan Anda untuk menentukan ukuran atau ID snapshot tetapi tidak keduanya.

```
 1. "MyEBSVolume": {
 2.     "Type": "AWS::EC2::Volume",
 3.     "Properties": {
 4.         "Size": "10",
 5.         "AvailabilityZone": {
 6.             "Ref": "AvailabilityZone"
 7.         }
 8.     },
 9.     "DeletionPolicy": "Snapshot"
10. }
```

**Cuplikan ini membuat volume Amazon EBS menggunakan ID snapshot yang disediakan.** [AWS::EC2::Volume](https://docs.aws.amazon.com/AWSCloudFormation/latest/TemplateReference/aws-resource-ec2-volume.html)Sumber daya memungkinkan Anda untuk menentukan ukuran atau ID snapshot tetapi tidak keduanya.

```
 1. "MyEBSVolume": {
 2.     "Type": "AWS::EC2::Volume",
 3.     "Properties": {
 4.         "SnapshotId" : "snap-1234567890abcdef0",
 5.         "AvailabilityZone": {
 6.             "Ref": "AvailabilityZone"
 7.         }
 8.     },
 9.     "DeletionPolicy": "Snapshot"
10. }
```

#### YAML
<a name="quickref-ec2-example-13.yaml"></a>

**Cuplikan ini membuat volume Amazon EBS dengan ukuran tertentu.** Ukurannya diatur ke 10, tetapi Anda dapat menyesuaikannya sesuai kebutuhan. [AWS::EC2::Volume](https://docs.aws.amazon.com/AWSCloudFormation/latest/TemplateReference/aws-resource-ec2-volume.html)Sumber daya memungkinkan Anda untuk menentukan ukuran atau ID snapshot tetapi tidak keduanya.

```
1. MyEBSVolume:
2.   Type: AWS::EC2::Volume
3.   Properties:
4.     Size: 10
5.     AvailabilityZone:
6.       Ref: AvailabilityZone
7.   DeletionPolicy: Snapshot
```

**Cuplikan ini membuat volume Amazon EBS menggunakan ID snapshot yang disediakan.** [AWS::EC2::Volume](https://docs.aws.amazon.com/AWSCloudFormation/latest/TemplateReference/aws-resource-ec2-volume.html)Sumber daya memungkinkan Anda untuk menentukan ukuran atau ID snapshot tetapi tidak keduanya.

```
1. MyEBSVolume:
2.   Type: AWS::EC2::Volume
3.   Properties:
4.     SnapshotId: snap-1234567890abcdef0
5.     AvailabilityZone:
6.       Ref: AvailabilityZone
7.   DeletionPolicy: Snapshot
```

## Tentukan pemetaan perangkat blok untuk sebuah instance
<a name="scenario-ec2-bdm"></a>

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](https://docs.aws.amazon.com/AWSCloudFormation/latest/TemplateReference/aws-resource-ec2-instance.html) 

*Untuk informasi selengkapnya tentang memblokir pemetaan perangkat, lihat [Memblokir pemetaan perangkat untuk volume pada instans Amazon EC2 di Panduan Pengguna Amazon EC2](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/block-device-mapping-concepts.html).*

**Topics**
+ [Tentukan pemetaan perangkat blok untuk dua volume EBS](#w2aac11c41c43c13b9c11)
+ [Tentukan pemetaan perangkat blok untuk volume penyimpanan instance](#w2aac11c41c43c13b9c13)

### Tentukan pemetaan perangkat blok untuk dua volume EBS
<a name="w2aac11c41c43c13b9c11"></a>

#### JSON
<a name="quickref-ec2-example-1.json"></a>

```
"Ec2Instance": {
    "Type": "AWS::EC2::Instance",
    "Properties": {
      "ImageId": "{{resolve:ssm:/aws/service/ami-amazon-linux-latest/amzn2-ami-hvm-x86_64-gp2}}",
      "KeyName": { "Ref": "KeyName" },
      "InstanceType": { "Ref": "InstanceType" },
      "SecurityGroups": [{ "Ref": "Ec2SecurityGroup" }],
      "BlockDeviceMappings": [
        {
          "DeviceName": "/dev/sda1",
          "Ebs": { "VolumeSize": "50" }
        },
        {
          "DeviceName": "/dev/sdm",
          "Ebs": { "VolumeSize": "100" }
        }
      ]
    }
  }
}
```

#### YAML
<a name="quickref-ec2-example-1.yaml"></a>

```
EC2Instance:
    Type: AWS::EC2::Instance
    Properties:
      ImageId: '{{resolve:ssm:/aws/service/ami-amazon-linux-latest/amzn2-ami-hvm-x86_64-gp2}}'
      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
<a name="w2aac11c41c43c13b9c13"></a>

#### JSON
<a name="quickref-ec2-example-2.json"></a>

```
"Ec2Instance" : {
  "Type" : "AWS::EC2::Instance", 
  "Properties" : {
    "ImageId" : "{{resolve:ssm:/aws/service/ami-amazon-linux-latest/amzn2-ami-hvm-x86_64-gp2}}",
    "KeyName" : { "Ref" : "KeyName" },
    "InstanceType": { "Ref": "InstanceType" },
    "SecurityGroups" : [{ "Ref" : "Ec2SecurityGroup" }],
    "BlockDeviceMappings" : [
      {
        "DeviceName"  : "/dev/sdc",
        "VirtualName" : "ephemeral0"
      }
    ]
  }
}
```

#### YAML
<a name="quickref-ec2-example-2.yaml"></a>

```
EC2Instance:
  Type: AWS::EC2::Instance
  Properties:
    ImageId: '{{resolve:ssm:/aws/service/ami-amazon-linux-latest/amzn2-ami-hvm-x86_64-gp2}}'
    KeyName: !Ref KeyName
    InstanceType: !Ref InstanceType
    SecurityGroups:
      - !Ref Ec2SecurityGroup
    BlockDeviceMappings:
      - DeviceName: /dev/sdc
        VirtualName: ephemeral0
```