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 khusus untuk kait siklus hidup adalah dengan menggunakan notifikasi yang dikirimkan 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 instans itu sendiri.
Tutorial berikut menunjukkan cara memulai menggunakan skrip data pengguna dan metadata instance. Anda membuat konfigurasi grup Penskalaan Otomatis 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 instance untuk melanjutkan proses peluncuran.
Ilustrasi berikut merangkum alur untuk peristiwa scale-out saat Anda menggunakan skrip data pengguna untuk melakukan tindakan kustom. Setelah instance diluncurkan, siklus hidup instans dijeda hingga kait siklus hidup selesai, baik dengan batas waktu atau dengan Amazon EC2 Auto Scaling yang menerima sinyal untuk melanjutkan.
Daftar Isi
Langkah 1: Buat peran IAM dengan izin untuk menyelesaikan tindakan siklus hidup
Saat 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 https://console.aws.amazon.com/iam/home?#/policies
Kebijakan konsol IAM, lalu pilih Buat kebijakan. -
Pilih tab JSON.
-
Di kotak Dokumen Kebijakan, salin dan tempel dokumen kebijakan berikut ke dalam kotak. Ganti
sample textdengan nomor akun Anda dan nama grup Penskalaan Otomatis yang ingin Anda buat (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 Ber ikutnya.
-
Di bawah Tam bah izin, pilih kebijakan yang Anda buat (TestAutoScalingEvent-policy). Lalu, pilih Selanjutnya.
-
Pada halaman Nama, ulasan, dan buat, untuk Nama peran, masukkan
TestAutoScalingEvent-roledan pilih Buat peran.
Langkah 2: Buat template peluncuran dan sertakan peran IAM dan skrip data pengguna
Buat template peluncuran untuk digunakan dengan grup Penskalaan Otomatis Anda. Sertakan peran IAM yang Anda buat dan contoh skrip data pengguna yang disediakan.
Untuk membuat templat peluncuran
-
Buka halaman Template Pel https://console.aws.amazon.com/ec2/v2/#LaunchTemplates
uncuran konsol Amazon EC2. -
Pilih Buat templat peluncuran.
-
Untuk Nama template Luncur kan, masukkan
TestAutoScalingEvent-template. -
Di bawah panduan Penskalaan Otomatis, pilih kotak centang.
-
Untuk Gambar Aplikasi dan OS (Amazon Machine Image), pilih Amazon Linux 2 (HVM), Jenis Volume SSD, 64-bit (x86) dari daftar Mulai Cepat.
-
Untuk Jenis Inst ance, 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 (). TestAutoScalingEvent-role 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 untuk
group_namedengan nama grup Penskalaan Otomatis yang ingin Anda buat danregiondengan grup Penskalaan Otomatis yang Wilayah AWS Anda inginkan untuk digunakan.#!/bin/bash function token { echo "X-aws-ec2-metadata-token: $(curl -X PUT 'http://169.254.169.254/latest/api/token' -H 'X-aws-ec2-metadata-token-ttl-seconds: 21600')" } function get_target_state { echo $(curl -H "$(token)" -s http://169.254.169.254/latest/meta-data/autoscaling/target-lifecycle-state) } function get_instance_id { echo $(curl -H "$(token)" -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 hostnameexport new_hostname="${group_name}-$instance_id" hostname $new_hostname# Send callbackcomplete_lifecycle_action break fi echo $target_state sleep 5 done } mainSkrip data pengguna sederhana ini melakukan hal berikut:
-
Memanggil metadata instans untuk mengambil status siklus hidup target dan ID instance dari metadata instans
-
Mengambil status siklus hidup target berulang kali hingga berubah menjadi
InService -
Mengubah nama host instance menjadi ID instance yang diawali dengan nama grup Auto Scaling, jika status siklus hidup target adalah
InService -
Mengirim panggilan balik dengan memanggil perintah complete-lifecycle-action CLI untuk memberi sinyal Amazon EC2 Auto Scaling ke proses peluncur
CONTINUEan EC2
-
-
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 Penskalaan Otomatis
Setelah Anda membuat template peluncuran, buat grup Penskalaan Otomatis.
Untuk membuat grup Auto Scaling
-
Pada halaman Pilih template peluncuran atau konfigurasi, untuk nama grup Penskalaan Otom atis, masukkan nama untuk grup Penskalaan Otomatis Anda (
TestAutoScalingEvent-group). -
Pilih Berikutnya untuk membuka halaman Pilih opsi peluncuran instans.
-
Untuk Jaringan, pilih VPC.
-
Untuk Zona Ketersediaan dan subnet, pilih satu atau beberapa subnet dari satu atau beberapa Zona Ketersediaan.
-
Di bagian Persyaratan jenis Instance, gunakan setelan default untuk menyederhanakan langkah ini. (Jangan mengganti template peluncuran.) Untuk tutorial ini, Anda hanya akan meluncurkan satu Inst On-Demand ans menggunakan jenis instance yang ditentukan dalam template peluncuran Anda.
-
Pilih Lewati untuk meninjau di bagian bawah layar.
-
Pada halaman T injauan, tinjau detail grup Penskalaan Otomatis Anda, lalu pilih Buat grup Penskalaan Otomatis.
Langkah 4: Tambahkan kait siklus hidup
Tambahkan kait siklus hidup untuk menahan instans dalam status tunggu sampai tindakan siklus hidup Anda selesai.
Untuk menambahkan hook siklus aktif
-
Buka halaman grup Penskalaan Otom
atis pada konsol Amazon EC2. -
Pilih kotak centang di samping grup Auto Scaling Anda. Panel terpisah 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 instans), lakukan hal berikut:
-
Untuk nama kait siklus hidup, masukkan
TestAutoScalingEvent-hook. -
Untuk transisi Siklus Hi dup, pilih Peluncuran instans.
-
Untuk batas waktu Heartbeat
300, masukkan jumlah detik untuk menunggu panggilan balik dari skrip data pengguna Anda. -
Untuk hasil default, pilih ABAND ON. Jika waktu kait habis tanpa menerima panggilan balik dari skrip data pengguna Anda, grup Penskalaan Otomatis mengakhiri instance baru.
-
(Opsional) Kosong kan metadata Pem beritahuan.
-
-
Pilih Buat.
Langkah 5: Uji dan verifikasi fungsionalitas
Untuk menguji fungsionalitas, perbarui grup Auto Scaling dengan meningkatkan kapasitas grup Auto Scaling yang diinginkan sebesar 1. Skrip data pengguna berjalan dan mulai memeriksa status siklus hidup target instans segera setelah instance diluncurkan. Skrip mengubah nama host dan mengirimkan tindakan callback saat status siklus hidup target berada. InService Ini biasanya hanya membutuhkan beberapa detik untuk menyelesaikannya.
Untuk menambah ukuran grup Auto Scaling
-
Buka halaman grup Penskalaan Otom
atis pada 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 sedang diluncurkan, kolom Status di panel atas menampilkan status Memper barui kapasitas.
Setelah meningkatkan kapasitas yang diinginkan, Anda dapat memverifikasi bahwa instance Anda telah berhasil diluncurkan dan tidak dihentikan dari deskripsi aktivitas penskalaan.
Untuk melihat aktivitas penskalaan
-
Kembali ke halaman Grup Penskalaan Otomatis dan pilih grup Anda.
-
Pada tab Aktivitas, di bawah Riwayat aktivitas, kolom Status menunjukkan apakah grup Penskalaan Otomatis Anda telah berhasil meluncurkan instance.
-
Jika skrip data pengguna gagal, setelah periode batas waktu berlalu, Anda akan melihat aktivitas penskalaan dengan status
Canceleddan 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 Penskalaan Otom
atis pada 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 Template Pel https://console.aws.amazon.com/ec2/v2/#LaunchTemplates
uncuran konsol Amazon EC2. -
Pilih template peluncuran Anda (
TestAutoScalingEvent-template) lalu pilih Tind akan, Hapus template. -
Saat diminta konfirmasi, ketik
Deleteuntuk mengonfirmasi penghapusan template peluncuran yang ditentukan, lalu pilih H apus.
Jika Anda selesai bekerja dengan contoh grup Auto Scaling, hapus. Anda juga dapat menghapus peran IAM dan kebijakan izin yang Anda buat.
Untuk menghapus grup Auto Scaling
-
Buka halaman grup Penskalaan Otom
atis pada konsol Amazon EC2. -
Pilih kotak centang di sebelah grup Penskalaan Otomatis Anda (
TestAutoScalingEvent-group) dan pilih H apus. -
Saat diminta konfirmasi, ketik untuk mengonfirmasi
deletepenghapusan grup Penskalaan Otomatis 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, ketik nama peran dan kemudian pilih H apus.
Untuk menghapus kebijakan IAM
-
Buka halaman Kebijakan
konsol IAM. -
Pilih kebijakan yang Anda buat (
TestAutoScalingEvent-policy). -
Pilih Tindakan, Hapus.
-
Saat diminta konfirmasi, ketik nama kebijakan, lalu pilih H apus.
Sumber daya terkait
Topik terkait berikut dapat membantu saat Anda mengembangkan kode yang memanggil tindakan pada instance berdasarkan data yang tersedia dalam metadata instans.
-
Mengambil status siklus hidup target melalui metadata instance. Bagian ini menjelaskan status siklus hidup untuk kasus penggunaan lain, seperti penghentian instans.
-
Tambahkan hook siklus aktif (konsol). Prosedur ini menunjukkan cara menambahkan kait siklus hidup untuk skala keluar (peluncuran instans) dan skala masuk (instans yang 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 memanggil tindakan pada instans EC2.
Untuk tutorial yang menunjukkan cara menggunakan Amazon EventBridge untuk membuat aturan yang memanggil fungsi Lambda berdasarkan peristiwa yang terjadi pada instance di grup Penskalaan Otomatis Anda, lihat. Tutorial: Mengkonfigurasi hook siklus hidup yang memanggil fungsi Lambda