Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.
Hook siklus aktif Amazon EC2 Auto Scaling
Amazon EC2 Auto Scaling menawarkan kemampuan untuk menambahkan kait siklus hidup ke grup Penskalaan Otomatis Anda. Pengait ini memungkinkan Anda membuat solusi yang mengetahui peristiwa dalam siklus hidup instance Penskalaan Otomatis, dan kemudian melakukan tindakan kustom pada instance saat peristiwa siklus hidup yang sesuai terjadi. Pengait siklus hidup menyediakan jumlah waktu tertentu (satu jam secara default) untuk menunggu tindakan selesai sebelum instance beralih ke status berikutnya.
Sebagai contoh penggunaan kait siklus hidup dengan instance Auto Scaling:
-
Ketika peristiwa scale-out terjadi, instance yang baru diluncurkan menyelesaikan urutan startup dan beralih ke status tunggu. Sementara instance dalam keadaan tunggu, ia menjalankan skrip untuk mengunduh dan menginstal paket perangkat lunak yang diperlukan untuk aplikasi Anda, memastikan bahwa instance Anda sepenuhnya siap sebelum mulai menerima lalu lintas. Ketika skrip selesai menginstal perangkat lunak, ia mengirimkan complete-lifecycle-action perintah untuk melanjutkan.
-
Saat peristiwa scale-in terjadi, hook siklus hidup akan menjeda instance sebelum dihentikan dan mengirimkan pemberitahuan menggunakan Amazon kepada Anda. EventBridge Saat instance berada dalam status tunggu, Anda dapat memanggil AWS Lambda fungsi atau menyambung ke instance untuk mengunduh log atau data lain sebelum instance dihentikan sepenuhnya.
Penggunaan kait siklus hidup yang populer adalah untuk mengontrol kapan instance terdaftar dengan Elastic Load Balancing. Dengan menambahkan hook siklus hidup peluncuran ke grup Penskalaan Otomatis, Anda dapat memastikan bahwa skrip bootstrap Anda telah berhasil diselesaikan dan aplikasi pada instans siap menerima lalu lintas sebelum didaftarkan ke penyeimbang beban di akhir kait siklus hidup.
Daftar Isi
Kontrol retensi instans dengan kebijakan siklus hidup instans
Tambahkan kait siklus hidup ke grup Penskalaan Otomatis Anda
Menyelesaikan tindakan siklus hidup dalam grup Penskalaan Otomatis
Tutorial: Menggunakan metadata instance untuk mengambil status siklus hidup
Tutorial: Mengkonfigurasi hook siklus hidup yang memanggil fungsi Lambda
Ketersediaan kait siklus hidup
Tabel berikut mencantumkan kait siklus hidup yang tersedia untuk berbagai skenario.
| Peristiwa | Peluncuran atau penghentian instans¹ | Masa Pakai Instans Maksimum: Instans pengganti | Penyegaran Instance: Instans pengganti | Penyeimbangan Kembali Kapasitas: Instans penggantian | Kolam H angat: Contoh masuk dan keluar dari kolam yang hangat |
|---|---|---|---|---|---|
| Peluncuran instans | ✓ | ✓ | ✓ | ✓ | ✓ |
| Instance diakhiri | ✓ | ✓ | ✓ | ✓ | ✓ |
¹ Berlaku untuk semua peluncuran dan penghentian, baik yang dimulai secara otomatis atau manual seperti saat Anda memanggil TerminateInstanceInAutoScalingGroup operasi SetDesiredCapacity atau. Tidak berlaku saat Anda melampirkan atau melepaskan instance, memindahkan instans masuk dan keluar dari mode siaga, atau menghapus grup dengan opsi hapus paksa.
Pertimbangan dan batasan untuk kait siklus hidup
Saat bekerja dengan kait siklus hidup, ingatlah catatan dan batasan berikut:
-
Amazon EC2 Auto Scaling menyediakan siklus hidupnya sendiri untuk membantu pengelolaan grup Auto Scaling. Siklus hidup ini berbeda dari instans EC2 lainnya. Untuk informasi selengkapnya, lihat Siklus aktif instance Amazon EC2 Auto Scaling. Contoh di kolam hangat juga memiliki siklus hidupnya sendiri, seperti yang dijelaskan dalamTransisi status siklus hidup untuk instance di kolam hangat.
-
Jika Anda mengonfigurasi kumpulan hangat untuk grup Penskalaan Otomatis, Amazon EC2 Auto Scaling menghentikan atau melakukan hibernasi setiap instans yang masuk ke kolam hangat. Tindakan berhenti atau hibernasi tidak menunggu data pengguna selesai berjalan. Untuk menahan instance hingga skrip bootstrap Anda selesai, gunakan kait siklus hidup untuk tindakan
EC2_INSTANCE_LAUNCHINGsiklus hidup. Untuk informasi selengkapnya, lihat Gunakan kait siklus hidup dengan kolam hangat di grup Penskalaan Otomatis. -
Secara default, kait siklus hidup penghentian beroperasi berdasarkan upaya terbaik. Jika pengait siklus hidup penghentian habis waktu, atau ditinggalkan, Amazon EC2 Auto Scaling melanjutkan dengan menghentikan instans segera. Anda dapat menggabungkan kait siklus hidup penghentian dengan kebijakan siklus hidup instans untuk retensi instance. Untuk informasi selengkapnya, lihat Kontrol retensi instans dengan kebijakan siklus hidup instans.
-
Anda dapat menggunakan kait siklus hidup dengan Instans Spot, tetapi kait siklus hidup tidak mencegah instance dihentikan jika kapasitas tidak lagi tersedia, yang dapat terjadi kapan saja dengan pemberitahuan interupsi dua menit. Untuk informasi selengkapnya, lihat Interupsi Instans Spot di Panduan Pengguna Amazon EC2. Namun, Anda dapat mengaktifkan Penyeimbangan Kembali Kapasitas untuk secara proaktif mengganti Instans Spot yang telah menerima rekomendasi rebalance dari layanan Amazon EC2 Spot, sinyal yang dikirim ketika Instans Spot berada pada risiko gangguan yang tinggi. Untuk informasi selengkapnya, lihat Rebalancing Kapasitas di Auto Scaling untuk menggantikan Instans Spot yang berisiko.
-
Instance dapat tetap berada dalam status tunggu selama periode waktu tertentu. Batas waktu default untuk hook siklus hidup adalah satu jam (batas waktu detak jantung). Ada juga batas waktu global yang menentukan jumlah waktu maksimum yang dapat Anda simpan instans dalam status tunggu. Batas waktu global adalah 48 jam atau 100 kali batas waktu detak jantung, mana yang lebih kecil.
-
Hasil dari kait siklus hidup dapat ditinggalkan atau dilanjutkan. Jika instance diluncurkan, lanjutkan menunjukkan bahwa tindakan Anda berhasil, dan Amazon EC2 Auto Scaling dapat menjalankan instance tersebut. Jika tidak, abandon menunjukkan bahwa tindakan kustom Anda tidak berhasil, dan bahwa kami dapat menghentikan dan mengganti instance. Jika instance dihentikan, keduanya meninggalkan dan melanjutkan mengizinkan instance untuk dihentikan. Namun, abandon menghentikan tindakan yang tersisa, seperti kait siklus hidup lainnya, dan melanjutkan memungkinkan kait siklus hidup lainnya diselesaikan.
-
Amazon EC2 Auto Scaling membatasi kecepatan peluncuran instans jika kait siklus hidup gagal secara konsisten, jadi pastikan untuk menguji dan memperbaiki kesalahan permanen apa pun dalam tindakan siklus hidup Anda.
-
Membuat dan memperbarui kait siklus hidup menggunakan AWS CLI, CloudFormation, atau SDK menyediakan opsi yang tidak tersedia saat membuat kait siklus hidup dari Konsol Manajemen AWS. Misalnya, bidang untuk menentukan ARN topik SNS atau antrian SQS tidak muncul di konsol, karena Amazon EC2 Auto Scaling sudah mengirimkan peristiwa ke Amazon. EventBridge Peristiwa ini dapat disaring dan dialihkan ke AWS layanan seperti Lambda, Amazon SNS, dan Amazon SQS sesuai kebutuhan.
-
Anda dapat menambahkan beberapa kait siklus hidup ke grup Penskalaan Otomatis saat Anda membuatnya, dengan memanggil CreateAutoScalingGroup API menggunakan AWS CLI CloudFormation,, atau SDK. Namun, setiap hook harus memiliki target notifikasi dan peran IAM yang sama, jika ditentukan. Untuk membuat kait siklus hidup dengan target notifikasi dan peran yang berbeda, buat kait siklus hidup satu per satu dalam panggilan terpisah ke PutLifecycleHook API.
-
Jika Anda menambahkan hook siklus hidup misalnya peluncuran, masa tenggang pemeriksaan kesehatan dimulai segera setelah instans mencapai
InServicestatus. Untuk informasi selengkapnya, lihat Mengatur periode tenggang pemeriksaan kondisi untuk grup Auto Scaling.
Pertimbangan penskalaan
-
Kebijakan penskalaan dinamis berskala masuk dan keluar sebagai respons terhadap data CloudWatch metrik, seperti CPU dan jaringan I/O, yang digabungkan di beberapa instans. Saat melakukan peningkatan skala, Amazon EC2 Auto Scaling tidak langsung menghitung instance baru terhadap metrik instans agregat grup Auto Scaling. Itu menunggu sampai instance mencapai
InServicestatus dan pemanasan instance selesai. Untuk informasi selengkapnya, lihat Pertimbangan kinerja penskalaan topik pemanasan instans default. -
Pada skala dalam, metrik instans agregat mungkin tidak secara instan mencerminkan penghapusan instans yang dihentikan. Instans yang dihentikan berhenti menghitung terhadap metrik instans agregat grup segera setelah alur kerja penghentian Amazon EC2 Auto Scaling dimulai.
-
Dalam kebanyakan kasus ketika hook siklus hidup dipanggil, aktivitas penskalaan karena kebijakan penskalaan sederhana dijeda hingga tindakan siklus hidup selesai dan periode cooldown telah kedaluwarsa. Menyetel interval panjang untuk periode cooldown berarti akan membutuhkan waktu lebih lama untuk penskalaan untuk dilanjutkan. Untuk informasi selengkapnya, lihat Kait siklus hidup dapat menyebabkan penundaan tambahan di topik cooldown. Secara umum, sebaiknya jangan menggunakan kebijakan penskalaan sederhana jika Anda dapat menggunakan kebijakan penskalaan langkah atau kebijakan penskalaan pelacakan target sebagai gantinya.
Sumber daya terkait
Untuk video pengantar, lihat AWS re:Invent 2018: Manajemen Kapasitas Mudah dengan Amazon EC2 Auto Scaling aktif.
Kami menyediakan beberapa cuplikan template JSON dan YAML yang dapat Anda gunakan untuk memahami cara mendeklarasikan kait siklus hidup di template tumpukan Anda CloudFormation . Untuk informasi selengkapnya, lihat LifecycleHook referensi AWS::AutoScaling:: di Panduan AWS CloudFormation Pengguna.
Anda juga dapat mengunjungi GitHub repositori kami
Untuk contoh penggunaan kait siklus hidup, lihat posting blog berikut.