Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.
Tutorial: Gunakan skrip data dan metadata instance untuk mengambil status siklus hidup
Cara umum untuk membuat tindakan kustom untuk kait siklus hidup adalah dengan menggunakan notifikasi yang dikirimkan oleh Amazon EC2 Auto Scaling ke layanan lain, seperti Amazon. EventBridge Namun, Anda dapat menghindari keharusan membuat infrastruktur tambahan dengan menggunakan skrip data pengguna untuk memindahkan kode yang mengonfigurasi instance dan menyelesaikan tindakan siklus hidup ke dalam instance itu sendiri.
Tutorial berikut menunjukkan kepada Anda bagaimana untuk memulai menggunakan script data pengguna dan metadata instance. Anda membuat konfigurasi grup Auto Scaling dasar dengan skrip data pengguna yang membaca status siklus hidup target instans dalam grup Anda dan melakukan tindakan panggilan balik pada fase tertentu dari siklus hidup instans untuk melanjutkan proses peluncuran.
Ilustrasi berikut merangkum alur untuk acara scale-out saat Anda menggunakan skrip data pengguna untuk melakukan tindakan kustom. Setelah instance diluncurkan, siklus hidup instans dijeda hingga pengait siklus hidup selesai, baik dengan waktu habis atau oleh Amazon EC2 Auto Scaling yang menerima sinyal untuk melanjutkan.
Daftar Isi
- Langkah 1: Buat peran IAM dengan izin untuk menyelesaikan tindakan siklus hidup
- Langkah 2: Buat template peluncuran dan sertakan peran IAM dan skrip data pengguna
- Langkah 3: Buat grup Auto Scaling
- Langkah 4: Tambahkan kait siklus hidup
- Langkah 5: Uji dan verifikasi fungsionalitas
- Langkah 6: Bersihkan
- Sumber daya terkait
Langkah 1: Buat peran IAM dengan izin untuk menyelesaikan tindakan siklus hidup
Bila Anda menggunakan AWS CLI atau AWS SDK untuk mengirim panggilan balik untuk menyelesaikan tindakan siklus hidup, Anda harus menggunakan peran IAM dengan izin untuk menyelesaikan tindakan siklus hidup.
Untuk membuat kebijakan
-
Buka halaman Kebijakan
konsol IAM, lalu pilih Buat kebijakan. -
Pilih tab JSON.
-
Di kotak Dokumen Kebijakan, salin dan tempel dokumen kebijakan berikut ke dalam kotak. Ganti
teks contoh
dengan nomor akun Anda dan nama grup Auto Scaling yang ingin Anda buat ()TestAutoScalingEvent-group
.{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "autoscaling:CompleteLifecycleAction" ], "Resource": "arn:aws:autoscaling:*:
123456789012
:autoScalingGroup:*:autoScalingGroupName/TestAutoScalingEvent-group
" } ] } -
Pilih Berikutnya.
-
Untuk Nama kebijakan, masukkan
TestAutoScalingEvent-policy
. Pilih Buat kebijakan.
Setelah selesai membuat kebijakan, Anda dapat membuat peran yang menggunakannya.
Untuk membuat peran
-
Pada panel navigasi di sebelah kiri, pilih Peran.
-
Pilih Buat peran.
-
Untuk Pilih entitas tepercaya, pilih AWS layanan.
-
Untuk kasus penggunaan Anda, pilih EC2 dan kemudian pilih Berikutnya.
-
Di bawah Tambahkan izin, pilih kebijakan yang Anda buat (TestAutoScalingEvent-policy). Lalu, pilih Selanjutnya.
-
Pada halaman Nama, tinjau, dan buat, untuk nama Peran, masukkan
TestAutoScalingEvent-role
dan pilih Buat peran.
Langkah 2: Buat template peluncuran dan sertakan peran IAM dan skrip data pengguna
Buat template peluncuran untuk digunakan dengan grup Auto Scaling Anda. Sertakan peran IAM yang Anda buat dan skrip data pengguna sampel yang disediakan.
Untuk membuat templat peluncuran
-
Buka halaman Peluncuran templat
konsol Amazon EC2. -
Pilih Buat templat peluncuran.
-
Untuk nama template Luncurkan, masukkan
TestAutoScalingEvent-template
. -
Di bawah panduan Auto Scaling, pilih kotak centang.
-
Untuk Gambar Aplikasi dan OS (Gambar Mesin Amazon), pilih Amazon Linux 2 (HVM), Jenis Volume SSD, 64-bit (x86) dari daftar Mulai Cepat.
-
Untuk jenis Instance, pilih jenis instans Amazon EC2 (misalnya, “t2.micro”).
-
Untuk Detail lanjutan, perluas bagian tersebut untuk melihat kolomnya.
-
Untuk profil instans IAM, pilih nama profil instans IAM dari peran IAM Anda (-role)TestAutoScalingEvent. Profil instance adalah kontainer untuk peran IAM yang memungkinkan Amazon EC2 melewati peran IAM ke suatu instance saat instance diluncurkan.
Saat Anda menggunakan konsol IAM untuk membuat peran IAM, konsol secara otomatis membuat profil instance dengan nama yang sama dengan peran yang sesuai.
-
Untuk data Pengguna, salin dan tempel contoh skrip data pengguna berikut ke dalam bidang. Ganti teks sampel
group_name
dengan nama grup Auto Scaling yang ingin Anda buat danregion
dengan grup Auto Scaling yang Wilayah AWS Anda inginkan untuk digunakan.#!/bin/bash function get_target_state { echo $(curl -s http://169.254.169.254/latest/meta-data/autoscaling/target-lifecycle-state) } function get_instance_id { echo $(curl -s http://169.254.169.254/latest/meta-data/instance-id) } function complete_lifecycle_action { instance_id=$(get_instance_id) group_name='
TestAutoScalingEvent-group
' region='us-west-2
' echo $instance_id echo $region echo $(aws autoscaling complete-lifecycle-action \ --lifecycle-hook-nameTestAutoScalingEvent-hook
\ --auto-scaling-group-name $group_name \ --lifecycle-action-result CONTINUE \ --instance-id $instance_id \ --region $region) } function main { while true do target_state=$(get_target_state) if [ \"$target_state\" = \"InService\" ]; then# Change hostname
export new_hostname="${group_name}-$instance_id" hostname $new_hostname# Send callback
complete_lifecycle_action break fi echo $target_state sleep 5 done } mainSkrip data pengguna sederhana ini melakukan hal berikut:
-
Memanggil metadata instance untuk mengambil status siklus hidup target dan ID instans dari metadata instance
-
Mengambil status siklus hidup target berulang kali hingga berubah menjadi
InService
-
Mengubah nama host instance menjadi ID instans yang ditambahkan dengan nama grup Auto Scaling, jika status siklus hidup target
InService
-
Mengirim panggilan balik dengan memanggil perintah complete-lifecycle-action CLI untuk memberi sinyal Auto Scaling Amazon EC2 ke proses peluncuran EC2
CONTINUE
-
-
Pilih Buat templat peluncuran.
-
Pada halaman konfirmasi, pilih Buat grup Auto Scaling.
catatan
Untuk contoh lain yang dapat Anda gunakan sebagai referensi untuk mengembangkan skrip data pengguna, lihat GitHub repositori
Langkah 3: Buat grup Auto Scaling
Setelah Anda membuat template peluncuran, buat grup Auto Scaling.
Untuk membuat grup Auto Scaling
-
Pada halaman Choose launch template atau konfigurasi, untuk nama grup Auto Scaling, masukkan nama untuk grup Auto Scaling ().
TestAutoScalingEvent-group
-
Pilih Berikutnya untuk pergi ke halaman opsi peluncuran Choose instance.
-
Untuk Jaringan, pilih VPC.
-
Untuk Availability Zones dan subnet, pilih satu atau beberapa subnet dari satu atau beberapa Availability Zone.
-
Di bagian Persyaratan tipe instans, gunakan pengaturan default untuk menyederhanakan langkah ini. (Jangan mengganti template peluncuran.) Untuk tutorial ini, Anda hanya akan meluncurkan satu On-Demand Instance menggunakan jenis instance yang ditentukan dalam template peluncuran Anda.
-
Pilih Lewati untuk meninjau di bagian bawah layar.
-
Pada halaman Tinjauan, tinjau detail grup Auto Scaling Anda, lalu pilih grup Buat Auto Scaling.
Langkah 4: Tambahkan kait siklus hidup
Tambahkan kait siklus hidup untuk menahan instance dalam status tunggu hingga tindakan siklus hidup Anda selesai.
Untuk menambahkan hook siklus aktif
-
Buka halaman grup Auto Scaling
di konsol Amazon EC2. -
Pilih kotak centang di samping grup Auto Scaling Anda. Panel split terbuka di bagian bawah halaman.
-
Di panel bawah, pada tab Manajemen instans, di kait Siklus Hidup, pilih Buat kait siklus hidup.
-
Untuk menentukan hook siklus hidup untuk skala keluar (peluncuran instance), lakukan hal berikut:
-
Untuk nama kait Siklus Hidup, masukkan.
TestAutoScalingEvent-hook
-
Untuk transisi Siklus Hidup, pilih Peluncuran instans.
-
Untuk batas waktu detak jantung, masukkan
300
jumlah detik untuk menunggu panggilan balik dari skrip data pengguna Anda. -
Untuk hasil Default, pilih ABANDOND. Jika waktu hook habis tanpa menerima panggilan balik dari skrip data pengguna Anda, grup Auto Scaling akan menghentikan instance baru.
-
(Opsional) Biarkan metadata Pemberitahuan tetap kosong.
-
-
Pilih Buat.
Langkah 5: Uji dan verifikasi fungsionalitas
Untuk menguji fungsionalitas, perbarui grup Auto Scaling dengan meningkatkan kapasitas grup Auto Scaling yang diinginkan sebanyak 1. Skrip data pengguna berjalan dan mulai memeriksa status siklus hidup target instans segera setelah instance diluncurkan. Skrip mengubah nama host dan mengirimkan tindakan panggilan balik saat status siklus hidup target. InService
Ini biasanya hanya membutuhkan beberapa detik untuk menyelesaikannya.
Untuk meningkatkan ukuran grup Auto Scaling
-
Buka halaman grup Auto Scaling
di konsol Amazon EC2. -
Pilih kotak centang di samping grup Auto Scaling Anda. Lihat detail di panel bawah sambil tetap melihat baris atas panel atas.
-
Di panel bawah, pada tab Detail, pilih Detail grup, Edit.
-
Untuk Kapasitas yang diinginkan, naikkan nilai saat ini sebesar 1.
-
Pilih Perbarui. Saat instance diluncurkan, kolom Status di panel atas menampilkan status Memperbarui kapasitas.
Setelah meningkatkan kapasitas yang diinginkan, Anda dapat memverifikasi bahwa instans Anda telah berhasil diluncurkan dan tidak dihentikan dari deskripsi aktivitas penskalaan.
Untuk melihat aktivitas penskalaan
-
Kembali ke halaman grup Auto Scaling dan pilih grup Anda.
-
Pada tab Aktivitas, di bawah Riwayat aktivitas, kolom Status menunjukkan apakah grup Auto Scaling Anda telah berhasil meluncurkan instance.
-
Jika skrip data pengguna gagal, setelah periode batas waktu berlalu, Anda akan melihat aktivitas penskalaan dengan status
Canceled
dan pesan status.Instance failed to complete user's Lifecycle Action: Lifecycle Action with token e85eb647-4fe0-4909-b341-a6c42EXAMPLE was abandoned: Lifecycle Action Completed with ABANDON Result
Langkah 6: Bersihkan
Jika Anda selesai bekerja dengan sumber daya yang Anda buat untuk tutorial ini, gunakan langkah-langkah berikut untuk menghapusnya.
Untuk menghapus kait siklus hidup
-
Buka halaman grup Auto Scaling
di konsol Amazon EC2. -
Pilih kotak centang di samping grup Auto Scaling Anda.
-
Pada tab Manajemen instans, di kait Siklus Hidup, pilih hook siklus hidup ().
TestAutoScalingEvent-hook
-
Pilih Tindakan, Hapus.
-
Pilih Hapus lagi untuk mengonfirmasi.
Untuk menghapus template peluncuran
-
Buka halaman Peluncuran templat
konsol Amazon EC2. -
Pilih template peluncuran Anda (
TestAutoScalingEvent-template
) dan kemudian pilih Tindakan, Hapus template. -
Saat diminta konfirmasi, ketik
Delete
untuk mengonfirmasi penghapusan templat peluncuran yang ditentukan, lalu pilih Hapus.
Jika Anda sudah selesai bekerja dengan contoh grup Auto Scaling, hapus saja. Anda juga dapat menghapus peran IAM dan kebijakan izin yang Anda buat.
Untuk menghapus grup Auto Scaling
-
Buka halaman grup Auto Scaling
di konsol Amazon EC2. -
Pilih kotak centang di samping grup Auto Scaling (
TestAutoScalingEvent-group
) dan pilih Hapus. -
Saat diminta konfirmasi, ketik
delete
untuk mengonfirmasi penghapusan grup Auto Scaling yang ditentukan, lalu pilih Hapus.Ikon memuat di kolom Nama menunjukkan bahwa grup Auto Scaling dihapus. Dibutuhkan beberapa menit untuk menghentikan instance dan menghapus grup.
Untuk menghapus peran IAM
-
Buka halaman Peran
konsol IAM. -
Pilih peran fungsi (
TestAutoScalingEvent-role
) -
Pilih Hapus.
-
Saat diminta konfirmasi, ketikkan nama peran, lalu pilih Hapus.
Untuk menghapus kebijakan IAM
-
Buka halaman Kebijakan
konsol IAM. -
Pilih kebijakan yang Anda buat (
TestAutoScalingEvent-policy
). -
Pilih Tindakan, Hapus.
-
Saat diminta konfirmasi, ketikkan nama kebijakan, lalu pilih Hapus.
Sumber daya terkait
Topik terkait berikut dapat membantu saat Anda mengembangkan kode yang memanggil tindakan pada instance berdasarkan data yang tersedia dalam metadata instance.
-
Ambil status siklus hidup target melalui metadata instance. Bagian ini menjelaskan status siklus hidup untuk kasus penggunaan lainnya, seperti penghentian instance.
-
Tambahkan hook siklus aktif (konsol). Prosedur ini menunjukkan kepada Anda cara menambahkan kait siklus hidup untuk skala keluar (peluncuran instance) dan skala (instance mengakhiri atau kembali ke kolam hangat).
-
Kategori metadata instans di Panduan Pengguna Amazon EC2. Topik ini mencantumkan semua kategori metadata instans yang dapat Anda gunakan untuk menjalankan tindakan pada instans EC2.
Untuk tutorial yang menunjukkan cara menggunakan Amazon EventBridge untuk membuat aturan yang menjalankan fungsi Lambda berdasarkan peristiwa yang terjadi pada instance di grup Auto Scaling, lihat. Tutorial: Konfigurasikan kait siklus hidup yang memanggil fungsi Lambda