

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

# Migrasikan AWS CloudFormation tumpukan untuk meluncurkan templat
<a name="migrate-launch-configurations-with-cloudformation"></a>

Anda dapat memigrasikan templat CloudFormation tumpukan yang ada dari konfigurasi peluncuran ke templat peluncuran. Untuk melakukan ini, tambahkan template peluncuran langsung ke template tumpukan yang ada dan kemudian kaitkan template peluncuran dengan grup Auto Scaling di template tumpukan. Kemudian, gunakan template yang dimodifikasi untuk memperbarui tumpukan Anda. 

Saat bermigrasi ke templat peluncuran, topik ini menghemat waktu Anda dengan memberikan instruksi untuk menulis ulang konfigurasi peluncuran di templat CloudFormation tumpukan Anda sebagai templat peluncuran. Untuk informasi selengkapnya tentang memigrasi konfigurasi peluncuran untuk meluncurkan templat, lihat. [Migrasi grup Auto Scaling Anda untuk meluncurkan template](migrate-to-launch-templates.md)

**Topics**
+ [Temukan grup Auto Scaling yang menggunakan konfigurasi peluncuran](#find-auto-scaling-groups-to-migrate)
+ [Perbarui tumpukan untuk menggunakan template peluncuran](#update-stack-to-use-launch-template)
+ [Memahami perilaku pembaruan sumber daya tumpukan](#understand-update-behavior)
+ [Lacak migrasi](#track-the-migration)
+ [Luncurkan referensi pemetaan konfigurasi](#launch-configuration-mapping-reference)

## Temukan grup Auto Scaling yang menggunakan konfigurasi peluncuran
<a name="find-auto-scaling-groups-to-migrate"></a>

**Untuk menemukan grup Auto Scaling yang menggunakan konfigurasi peluncuran**
+ Gunakan [describe-auto-scaling-groups](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/autoscaling/describe-auto-scaling-groups.html)perintah berikut untuk mencantumkan nama grup Auto Scaling yang menggunakan konfigurasi peluncuran di Wilayah yang ditentukan. Sertakan `--filters` opsi untuk mempersempit hasil ke grup yang terkait dengan CloudFormation tumpukan (dengan memfilter dengan kunci `aws:cloudformation:stack-name` tag). 

  ```
  aws autoscaling describe-auto-scaling-groups --region REGION \
    --filters Name=tag-key,Values=aws:cloudformation:stack-name \
    --query 'AutoScalingGroups[?LaunchConfigurationName!=`null`].AutoScalingGroupName'
  ```

  Berikut ini adalah contoh output.

  ```
  [
      "{stack-name}-group-1",
      "{stack-name}-group-2",
      "{stack-name}-group-3"
  ]
  ```

  Anda dapat menemukan AWS CLI perintah tambahan yang berguna untuk menemukan grup Auto Scaling untuk memigrasi dan memfilter output. [Migrasi grup Auto Scaling Anda untuk meluncurkan template](migrate-to-launch-templates.md)

**penting**  
Jika sumber daya tumpukan Anda memiliki `AWSEB` namanya, ini berarti mereka dibuat melalui AWS Elastic Beanstalk. Dalam hal ini, Anda harus memperbarui lingkungan Beanstalk untuk mengarahkan Elastic Beanstalk untuk menghapus konfigurasi peluncuran dan menggantinya dengan template peluncuran.

## Perbarui tumpukan untuk menggunakan template peluncuran
<a name="update-stack-to-use-launch-template"></a>

Ikuti langkah-langkah di bagian ini untuk melakukan hal berikut:
+ Tulis ulang konfigurasi peluncuran sebagai template peluncuran menggunakan properti template peluncuran yang setara. 
+ Kaitkan template peluncuran baru dengan grup Auto Scaling. 
+ Terapkan pembaruan ini.

**Untuk memodifikasi template tumpukan dan memperbarui tumpukan**

1. Ikuti prosedur umum yang sama untuk memodifikasi template tumpukan yang dijelaskan dalam [Memodifikasi template tumpukan](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-get-template.html) di *AWS CloudFormation Panduan Pengguna*.

1. Tulis ulang konfigurasi peluncuran sebagai template peluncuran. Lihat contoh berikut ini: 

   **Contoh: Konfigurasi peluncuran sederhana**

   ```
   ---
   Resources:
     myLaunchConfig: 
       Type: AWS::AutoScaling::LaunchConfiguration
       Properties: 
         ImageId: ami-02354e95b3example
         InstanceType: t3.micro
         SecurityGroups:
           - !Ref EC2SecurityGroup
         KeyName: MyKeyPair
         BlockDeviceMappings: 
           - DeviceName: /dev/xvda
             Ebs: 
               VolumeSize: 150
               DeleteOnTermination: true
         UserData: 
           Fn::Base64: !Sub |
             #!/bin/bash -xe
             yum install -y aws-cfn-bootstrap
             /opt/aws/bin/cfn-signal -e $? --stack ${AWS::StackName} --resource myASG --region ${AWS::Region}
   ```

   **Contoh: Template peluncuran yang setara**

   ```
   ---
   Resources:
     myLaunchTemplate:
       Type: AWS::EC2::LaunchTemplate
       Properties:
         LaunchTemplateName: !Sub ${AWS::StackName}-launch-template
         LaunchTemplateData:
           ImageId: ami-02354e95b3example
           InstanceType: t3.micro
           SecurityGroupIds:
             - Ref! EC2SecurityGroup
           KeyName: MyKeyPair
           BlockDeviceMappings: 
             - DeviceName: /dev/xvda
               Ebs: 
                 VolumeSize: 150
                 DeleteOnTermination: true
           UserData: 
             Fn::Base64: !Sub |
               #!/bin/bash -x
               yum install -y aws-cfn-bootstrap
               /opt/aws/bin/cfn-signal -e $? --stack ${AWS::StackName} --resource myASG --region ${AWS::Region}
   ```

   Untuk informasi referensi untuk semua properti yang didukung Amazon EC2, lihat [AWS::EC2::LaunchTemplate](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-launchtemplate.html)di *AWS CloudFormation Panduan Pengguna*. 

   Perhatikan bagaimana template peluncuran menyertakan `LaunchTemplateName` properti dengan nilai`!Sub ${AWS::StackName}-launch-template`. Ini diperlukan jika Anda ingin nama template peluncuran menyertakan nama tumpukan.

1. Jika `IamInstanceProfile` properti hadir dalam konfigurasi peluncuran Anda, Anda harus mengubahnya menjadi struktur dan menentukan nama atau ARN dari profil instance. Sebagai contoh, lihat [AWS::EC2::LaunchTemplate](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-launchtemplate.html). 

1. Jika`AssociatePublicIpAddress`,`InstanceMonitoring`, atau `PlacementTenancy` properti ada dalam konfigurasi peluncuran Anda, Anda harus mengonversinya menjadi struktur. Sebagai contoh, lihat [AWS::EC2::LaunchTemplate](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-launchtemplate.html). 

   Pengecualian adalah ketika nilai `MapPublicIpOnLaunch` properti pada subnet yang Anda gunakan untuk grup Auto Scaling cocok dengan nilai properti dalam `AssociatePublicIpAddress` konfigurasi peluncuran Anda. Dalam hal ini, Anda dapat mengabaikan `AssociatePublicIpAddress` properti. `AssociatePublicIpAddress`Properti hanya digunakan untuk mengganti `MapPublicIpOnLaunch` properti untuk mengubah apakah instance menerima IPv4 alamat publik saat peluncuran. 

1. Anda dapat menyalin grup keamanan dari `SecurityGroups` properti ke salah satu dari dua tempat di template peluncuran Anda. Biasanya, Anda menyalin grup keamanan ke `SecurityGroupIds` properti. Namun, jika Anda membuat `NetworkInterfaces` struktur dalam template peluncuran Anda untuk menentukan `AssociatePublicIpAddress` properti, maka Anda harus menyalin grup keamanan ke `Groups` properti antarmuka jaringan sebagai gantinya.

1. Jika ada `BlockDeviceMapping` struktur yang ada dalam konfigurasi peluncuran Anda dengan `NoDevice` set to`true`, maka Anda harus menentukan string kosong untuk `NoDevice` di template peluncuran agar Amazon EC2 menghilangkan perangkat.

1. Jika `SpotPrice` properti hadir dalam konfigurasi peluncuran Anda, kami sarankan Anda menghilangkannya dari template peluncuran Anda. Instans Spot Anda akan diluncurkan pada harga Spot saat ini. Harga ini tidak akan pernah melebihi harga On-Demand.

   Untuk meminta Instans Spot, Anda memiliki dua opsi yang saling eksklusif:
   + Yang pertama adalah menggunakan `InstanceMarketOptions` struktur dalam template peluncuran Anda (tidak disarankan). Untuk informasi selengkapnya, lihat [AWS::EC2::LaunchTemplate InstanceMarketOptions](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-launchtemplate-instancemarketoptions.html)di *Panduan AWS CloudFormation Pengguna*.
   + Yang lainnya adalah menambahkan `MixedInstancesPolicy` struktur ke grup Auto Scaling Anda. Melakukannya memberi Anda lebih banyak opsi untuk bagaimana Anda membuat permintaan. Permintaan Instans Spot di template peluncuran Anda tidak mendukung lebih dari satu pilihan jenis instans per grup Auto Scaling. Namun, kebijakan instance campuran mendukung lebih dari satu pemilihan tipe instans per grup Auto Scaling. Permintaan Instans Spot mendapat manfaat dari memiliki lebih dari satu jenis instans untuk dipilih. Untuk informasi selengkapnya, lihat [AWS::AutoScaling::AutoScaling MixedInstancesPolicyAWS::AutoScaling::AutoScalingGrup](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-autoscaling-autoscalinggroup-mixedinstancespolicy.html) di *Panduan AWS CloudFormation Pengguna*.

1. Hapus `LaunchConfigurationName` properti dari sumber daya [AWS::AutoScaling::AutoScalingAWS::AutoScaling::AutoScalingGrup](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-autoscaling-autoscalinggroup.html) . Tambahkan template peluncuran di tempatnya.

   Dalam contoh berikut, fungsi intrinsik [Ref](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/intrinsic-function-reference-ref.html) mendapatkan ID [AWS::EC2::LaunchTemplate](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-launchtemplate.html)sumber daya dengan ID logis. `myLaunchTemplate` [GetAtt](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/intrinsic-function-reference-getatt.html)Fungsi mendapatkan nomor versi terbaru (misalnya,`1`) dari template peluncuran untuk `Version` properti.

   **Contoh: Tanpa kebijakan instance campuran**

   ```
   ---
   Resources:
     myASG:
       Type: AWS::AutoScaling::AutoScalingGroup
       Properties:
         LaunchTemplate:
           LaunchTemplateId: !Ref myLaunchTemplate
           Version: !GetAtt myLaunchTemplate.LatestVersionNumber
         ...
   ```

   **Contoh: Dengan kebijakan instance campuran**

   ```
   ---
   Resources:
     myASG:
       Type: AWS::AutoScaling::AutoScalingGroup
       Properties:        
         MixedInstancesPolicy:
           LaunchTemplate:
             LaunchTemplateSpecification:
               LaunchTemplateId: !Ref myLaunchTemplate
               Version: !GetAtt myLaunchTemplate.LatestVersionNumber
         ...
   ```

   Untuk informasi referensi untuk semua properti yang didukung Amazon EC2 Auto Scaling [AWS::AutoScaling::AutoScaling, AWS::AutoScaling::AutoScaling](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-autoscaling-autoscalinggroup.html) Grup Grup *AWS CloudFormation dalam* Panduan Pengguna.

1. Saat Anda siap untuk menerapkan pembaruan ini, ikuti CloudFormation prosedur untuk memperbarui tumpukan dengan templat tumpukan yang dimodifikasi. Untuk informasi selengkapnya, lihat [Memodifikasi template tumpukan](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-get-template.html) di *Panduan AWS CloudFormation Pengguna*. 

## Memahami perilaku pembaruan sumber daya tumpukan
<a name="understand-update-behavior"></a>

CloudFormation memperbarui sumber daya tumpukan dengan membandingkan perubahan antara template yang diperbarui yang Anda berikan, dan konfigurasi sumber daya yang Anda jelaskan di versi template tumpukan Anda sebelumnya. Konfigurasi sumber daya yang tidak berubah tetap tidak terpengaruh selama proses pembaruan.

CloudFormation mendukung [UpdatePolicy](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-updatepolicy.html)atribut untuk grup Auto Scaling. Selama pembaruan, jika `UpdatePolicy` diatur ke`AutoScalingRollingUpdate`, CloudFormation menggantikan `InService` instance setelah Anda melakukan langkah-langkah dalam prosedur ini. Jika `UpdatePolicy` disetel ke`AutoScalingReplacingUpdate`, CloudFormation ganti grup Auto Scaling dan kolam hangatnya (jika ada).

Jika Anda tidak menentukan `UpdatePolicy` atribut untuk grup Auto Scaling, template peluncuran akan diperiksa kebenarannya, tetapi CloudFormation tidak menerapkan perubahan apa pun di seluruh instance dalam grup Auto Scaling. Semua instance baru akan menggunakan template peluncuran Anda, tetapi instance yang ada terus berjalan dengan konfigurasi peluncuran yang awalnya diluncurkan (meskipun konfigurasi peluncuran tidak ada). Pengecualiannya adalah ketika Anda mengubah opsi pembelian, misalnya, dengan menambahkan kebijakan instance campuran. Dalam hal ini, grup Auto Scaling Anda secara bertahap mengganti instans yang ada dengan instans baru agar sesuai dengan opsi pembelian baru.

Jika Anda harus memutar kembali perubahan untuk beralih dari konfigurasi peluncuran ke template peluncuran, pastikan untuk menguji operasi roll back.

## Lacak migrasi
<a name="track-the-migration"></a>

**Untuk melacak migrasi**

1. Di [Konsol CloudFormation](https://console.aws.amazon.com/cloudformation), pilih tumpukan yang diperbarui dan kemudian pilih tab **Kejadian** untuk melihat kejadian tumpukan.

1. Untuk memperbarui daftar acara dengan acara terbaru, pilih tombol segarkan di CloudFormation konsol.

1. Saat tumpukan Anda diperbarui, Anda akan melihat beberapa peristiwa untuk setiap pembaruan sumber daya. Jika Anda melihat pengecualian di kolom **Alasan status** yang menunjukkan masalah saat mencoba membuat templat peluncuran, lihat [Memecahkan Masalah Amazon EC2 Auto Scaling: Luncurkan template](ts-as-launch-template.md) penyebab potensial.

1. (Opsional) Bergantung pada penggunaan `UpdatePolicy` atribut, Anda dapat memantau kemajuan grup Auto Scaling dari halaman [grup Auto Scaling](https://console.aws.amazon.com/ec2/v2/home?#AutoScalingGroups) di konsol Amazon EC2. Pilih grup Auto Scaling. Pada tab **Aktivitas**, di bawah **Riwayat aktivitas**, kolom **Status** menunjukkan apakah grup Auto Scaling Anda telah berhasil meluncurkan atau menghentikan instance, atau apakah aktivitas penskalaan masih berlangsung. 

1. Saat pembaruan tumpukan selesai, CloudFormation mengeluarkan acara `UPDATE_COMPLETE` tumpukan. Untuk informasi selengkapnya, lihat [Memantau kemajuan pembaruan tumpukan](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-monitor-stack.html) di *Panduan AWS CloudFormation Pengguna*. 

1. Setelah pembaruan tumpukan selesai, buka [halaman Launch templates](https://console.aws.amazon.com/ec2/v2/#LaunchTemplates) dan [Luncurkan halaman konfigurasi](https://console.aws.amazon.com/ec2/v2/home?#LaunchConfigurations) konsol Amazon EC2. Anda akan melihat template peluncuran baru dibuat, dan konfigurasi peluncuran dihapus. 

## Luncurkan referensi pemetaan konfigurasi
<a name="launch-configuration-mapping-reference"></a>

Untuk tujuan referensi, tabel berikut mencantumkan semua properti tingkat atas dalam [AWS::AutoScaling::LaunchConfiguration](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-autoscaling-launchconfiguration.html)sumber daya dengan properti yang sesuai di [AWS::EC2::LaunchTemplate](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-launchtemplate.html)sumber daya.


| Luncurkan properti sumber konfigurasi | Luncurkan properti target template | 
| --- | --- | 
| AssociatePublicIpAddress | NetworkInterfaces.AssociatePublicIpAddress | 
| BlockDeviceMappings | BlockDeviceMappings | 
| ClassicLinkVPCId | Tidak tersedia¹ | 
| ClassicLinkVPCSecurityGroups | Tidak tersedia¹ | 
| EbsOptimized | EbsOptimized | 
| IamInstanceProfile | Entah IamInstanceProfile.Arn atauIamInstanceProfile.Name, tapi tidak keduanya  | 
| ImageId | ImageId | 
| InstanceId | InstanceId | 
| InstanceMonitoring | Monitoring.Enabled | 
| InstanceType | InstanceType | 
| KernelId | KernelId | 
| KeyName | KeyName | 
| LaunchConfigurationName | LaunchTemplateName | 
| MetadataOptions | MetadataOptions | 
| PlacementTenancy | Placement.Tenancy  | 
| RamDiskId | RamDiskId | 
| SecurityGroups | Entah SecurityGroupIds atauNetworkInterfaces.Groups, tapi tidak keduanya | 
| SpotPrice | InstanceMarketOptions.SpotOptions.MaxPrice | 
| UserData | UserData | 

¹ `ClassicLinkVPCSecurityGroups` Properti `ClassicLinkVPCId` dan tidak tersedia untuk digunakan dalam template peluncuran karena EC2-Classic tidak lagi tersedia.