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
Anda dapat memigrasikan templat AWS 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
Topik
Temukan grup Auto Scaling yang menggunakan konfigurasi peluncuran
Untuk menemukan grup Auto Scaling yang menggunakan konfigurasi peluncuran
-
Gunakan describe-auto-scaling-groupsperintah 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 kunciaws: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
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
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
-
Ikuti prosedur umum yang sama untuk memodifikasi template tumpukan yang dijelaskan dalam Memodifikasi template tumpukan di AWS CloudFormation Panduan Pengguna.
-
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 EC2 didukung Amazon, lihat AWS:EC2:: LaunchTemplate AWS di Panduan AWS CloudFormation 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. -
Jika
IamInstanceProfile
properti hadir dalam konfigurasi peluncuran Anda, Anda harus mengubahnya menjadi struktur dan menentukan nama atau profil instance. ARN Sebagai contoh, lihat AWS::EC2:: LaunchTemplate AWS . -
Jika
AssociatePublicIpAddress
,InstanceMonitoring
, atauPlacementTenancy
properti ada dalam konfigurasi peluncuran Anda, Anda harus mengonversinya menjadi struktur. Sebagai contoh, lihat AWS:EC2:: LaunchTemplate AWS .Pengecualian adalah ketika nilai
MapPublicIpOnLaunch
properti pada subnet yang Anda gunakan untuk grup Auto Scaling cocok dengan nilai properti dalamAssociatePublicIpAddress
konfigurasi peluncuran Anda. Dalam hal ini, Anda dapat mengabaikanAssociatePublicIpAddress
properti.AssociatePublicIpAddress
Properti hanya digunakan untuk menggantiMapPublicIpOnLaunch
properti untuk mengubah apakah instance menerima IPv4 alamat publik saat peluncuran. -
Anda dapat menyalin grup keamanan dari
SecurityGroups
properti ke salah satu dari dua tempat di template peluncuran Anda. Biasanya, Anda menyalin grup keamanan keSecurityGroupIds
properti. Namun, jika Anda membuatNetworkInterfaces
struktur dalam template peluncuran Anda untuk menentukanAssociatePublicIpAddress
properti, maka Anda harus menyalin grup keamanan keGroups
properti antarmuka jaringan sebagai gantinya. -
Jika ada
BlockDeviceMapping
struktur yang ada dalam konfigurasi peluncuran Anda denganNoDevice
set totrue
, maka Anda harus menentukan string kosong untukNoDevice
di template peluncuran Anda agar Amazon EC2 menghilangkan perangkat. -
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 AWSEC2:: LaunchTemplate InstanceMarketOptions AWS 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 AWSAutoScaling:: AutoScalingGroup MixedInstancesPolicy AWS di Panduan AWS CloudFormation Pengguna.
-
-
Hapus
LaunchConfigurationName
properti dari AutoScalingGroup sumber daya AWS:AutoScaling:: AutoScalingGroup AWS Tambahkan template peluncuran di tempatnya.Dalam contoh berikut, fungsi intrinsik Ref mendapatkan ID dari AWS::::EC2: LaunchTemplate sumber daya dengan ID logis.
myLaunchTemplate
GetAttFungsi mendapatkan nomor versi terbaru (misalnya,1
) dari template peluncuran untukVersion
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, lihat AWS::AutoScaling:: AutoScalingGroup AWS di AWS CloudFormation Panduan Pengguna.
-
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 di Panduan AWS CloudFormation Pengguna.
Memahami perilaku pembaruan sumber daya tumpukan
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 UpdatePolicyatribut untuk grup Auto Scaling. Selama pembaruan, jika UpdatePolicy
diatur keAutoScalingRollingUpdate
, CloudFormation menggantikan InService
instance setelah Anda melakukan langkah-langkah dalam prosedur ini. Jika UpdatePolicy
diatur keAutoScalingReplacingUpdate
, 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
Untuk melacak migrasi
-
Di Konsol AWS CloudFormation
, pilih tumpukan yang diperbarui dan kemudian pilih tab Kejadian untuk melihat kejadian tumpukan. -
Untuk memperbarui daftar acara dengan acara terbaru, pilih tombol segarkan di CloudFormation konsol.
-
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 Auto EC2 Scaling: Luncurkan template penyebab potensial.
-
(Opsional) Bergantung pada penggunaan
UpdatePolicy
atribut, Anda dapat memantau kemajuan grup Auto Scaling Anda dari halaman grup Auto Scaling di konsolAmazon. 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. -
Saat pembaruan tumpukan selesai, CloudFormation mengeluarkan acara
UPDATE_COMPLETE
tumpukan. Untuk informasi selengkapnya, lihat Memantau kemajuan pembaruan tumpukan di Panduan AWS CloudFormation Pengguna. -
Setelah pembaruan tumpukan selesai, buka halaman Peluncuran templat dan halaman
Konfigurasi Luncurkan EC2 konsol Amazon. Anda akan melihat template peluncuran baru dibuat, dan konfigurasi peluncuran dihapus.
Luncurkan referensi pemetaan konfigurasi
Untuk tujuan referensi, tabel berikut mencantumkan semua properti tingkat atas di LaunchConfiguration sumber daya AWSAutoScalingLaunchConfigurationAWS: ::::EC2:: LaunchTemplate AWS
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.