Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.
Bersiaplah untuk menambahkan hook siklus hidup ke grup Penskalaan Otomatis Anda
Sebelum menambahkan kait siklus hidup ke grup Penskalaan Otomatis, pastikan skrip data pengguna atau target notifikasi diatur dengan benar.
-
Untuk menggunakan skrip data pengguna untuk melakukan tindakan kustom pada instance saat diluncurkan, Anda tidak perlu mengonfigurasi target notifikasi. Namun, Anda harus telah membuat template peluncuran atau konfigurasi peluncuran yang menentukan skrip data pengguna Anda dan menghubungkannya dengan grup Penskalaan Otomatis Anda. Untuk informasi selengkapnya tentang skrip data pengguna, lihat Menjalankan perintah pada instans Linux Anda saat diluncurkan di Panduan Pengguna Amazon EC2.
-
Untuk memberi sinyal Amazon EC2 Auto Scaling saat tindakan siklus hidup selesai, Anda harus menambahkan panggilan CompleteLifecycleAction API ke skrip, dan Anda harus membuat peran IAM secara manual dengan kebijakan yang memungkinkan instans Auto Scaling memanggil API ini. Template peluncuran atau konfigurasi peluncuran Anda harus menentukan peran ini menggunakan profil instans IAM yang dilampirkan ke instans Amazon EC2 Anda saat diluncurkan. Untuk informasi selengkapnya, lihat Menyelesaikan tindakan siklus hidup dalam grup Penskalaan Otomatis dan Peran IAM untuk aplikasi yang berjalan di instans Amazon EC2.
-
Untuk mengizinkan Lambda memberi sinyal Amazon EC2 Auto Scaling saat tindakan siklus hidup selesai, Anda harus menambahkan panggilan CompleteLifecycleAction API ke kode fungsi. Anda juga harus melampirkan kebijakan IAM ke peran eksekusi fungsi yang memberikan izin Lambda untuk menyelesaikan tindakan siklus hidup. Untuk informasi selengkapnya, lihat Tutorial: Mengkonfigurasi hook siklus hidup yang memanggil fungsi Lambda.
-
Untuk menggunakan layanan seperti Amazon SNS atau Amazon SQS untuk melakukan tindakan khusus, Anda harus telah membuat topik SNS atau antrian SQS dan menyiapkan Nama Sumber Daya Amazon (ARN). Anda juga harus telah membuat peran IAM yang memberikan akses Amazon EC2 Auto Scaling ke topik SNS atau target SQS Anda dan telah menyiapkan ARN-nya. Untuk informasi selengkapnya, lihat Mengkonfigurasi target notifikasi untuk notifikasi siklus hidup.
catatan
Secara default, saat Anda menambahkan kait siklus hidup di konsol, Amazon EC2 Auto Scaling mengirimkan pemberitahuan peristiwa siklus hidup ke Amazon EventBridge. Menggunakan EventBridge atau skrip data pengguna adalah praktik terbaik yang disarankan. Untuk membuat kait siklus hidup yang mengirimkan pemberitahuan langsung ke Amazon SNS, Amazon SQS, atau AWS Lambda, gunakan AWS CLI, AWS CloudFormation, atau SDK untuk menambahkan kait siklus hidup.
Mengkonfigurasi target notifikasi untuk notifikasi siklus hidup
Anda dapat menambahkan kait siklus hidup ke grup Penskalaan Otomatis untuk melakukan tindakan kustom saat instance memasuki status tunggu. Anda dapat memilih layanan target untuk melakukan tindakan ini tergantung pada pendekatan pengembangan pilihan Anda.
Ada empat pendekatan berbeda untuk menerapkan target notifikasi untuk kait siklus hidup:
-
Amazon EventBridge — Terima notifikasi dan lakukan tindakan yang Anda inginkan.
-
Amazon Simple Notification Service (Amazon SNS) — Buat topik untuk menerbitkan pemberitahuan. Klien dapat berlangganan topik SNS dan menerima pesan yang dipublikasikan menggunakan protokol yang didukung.
-
Amazon Simple Queue Service (Amazon SQS) — Bertukar pesan melalui model polling.
-
AWS Lambda— Memanggil fungsi Lambda yang melakukan tindakan yang Anda inginkan.
Sebagai praktik terbaik, kami sarankan Anda menggunakan alih- EventBridge alih Amazon SNS atau Amazon SQS sebagai target pemberitahuan. Pemberitahuan yang dikirim ke Amazon SNS dan Amazon SQS berisi informasi yang sama dengan pemberitahuan yang dikirim Amazon EC2 Auto Scaling. EventBridge Sebelumnya EventBridge, praktik standar adalah mengirim pemberitahuan ke SNS atau SQS dan mengintegrasikan layanan lain dengan SNS atau SQS untuk melakukan tindakan terprogram. Hari ini, EventBridge memberi Anda lebih banyak opsi untuk layanan mana yang dapat Anda targetkan dan membuatnya lebih mudah untuk menangani peristiwa menggunakan arsitektur tanpa server.
Ingat, jika Anda memiliki skrip data pengguna di template peluncuran atau konfigurasi peluncuran yang mengonfigurasi instance Anda saat diluncurkan, Anda tidak perlu menerima pemberitahuan untuk melakukan tindakan kustom pada instans Anda.
Prosedur berikut mencakup cara mengatur target notifikasi Anda.
Daftar Isi
penting
A EventBridge turan, fungsi Lambda, topik Amazon SNS, dan antrian Amazon SQS yang Anda gunakan dengan kait siklus hidup harus selalu berada di Wilayah yang sama tempat Anda membuat grup Penskalaan Otomatis.
Rute notifikasi ke Lambda menggunakan EventBridge
Anda dapat mengonfigurasi EventBridge aturan untuk memanggil fungsi Lambda saat instance memasuki status tunggu. Amazon EC2 Auto Scaling mengirimkan pemberitahuan peristiwa siklus hidup EventBridge kepada instans yang diluncurkan atau dihentikan dan token yang dapat Anda gunakan untuk mengontrol tindakan siklus hidup. Untuk contoh peristiwa ini, lihatReferensi acara Amazon EC2 Auto Scaling.
catatan
Saat Anda menggunakan Konsol Manajemen AWS untuk membuat aturan acara, konsol secara otomatis menambahkan izin IAM yang diperlukan untuk memberikan izin untuk memanggil EventBridge fungsi Lambda Anda. Jika Anda membuat aturan peristiwa menggunakan AWS CLI, Anda harus memberikan izin ini secara eksplisit.
Untuk informasi tentang cara membuat aturan acara di EventBridge konsol, lihat Membuat EventBridge aturan Amazon yang bereaksi terhadap peristiwa di Panduan EventBridge Pengguna Amazon.
— atau —
Untuk tutorial pengantar yang ditujukan kepada pengguna konsol, lihatTutorial: Mengkonfigurasi hook siklus hidup yang memanggil fungsi Lambda. Tutorial ini menunjukkan cara membuat fungsi Lambda sederhana yang mendengarkan acara peluncuran dan menuliskannya ke CloudWatch log Logs.
Untuk membuat EventBridge aturan yang memanggil fungsi Lambda
-
Buat fungsi Lambda dengan menggunakan konsol Lambda
dan catat Nama Sumber Daya Amazon (ARN) nya. Misalnya, arn:aws:lambda:. Anda membutuhkan ARN untuk membuat EventBridge target. Untuk informasi selengkapnya, lihat Memulai dengan Lambda di Panduan Peng AWS Lambda embang.region:123456789012:function:my-function -
Untuk membuat aturan yang cocok dengan peristiwa misalnya peluncuran, gunakan perintah put-rule
berikut. aws events put-rule --namemy-rule--event-pattern file://pattern.json --state ENABLEDContoh berikut menunjukkan tindakan siklus hidup peluncuran instance.
pattern.jsonGanti teksitalicsdengan nama grup Penskalaan Otomatis Anda.{ "source": [ "aws.autoscaling" ], "detail-type": [ "EC2 Instance-launch Lifecycle Action" ], "detail": { "AutoScalingGroupName": [ "my-asg" ] } }Jika perintah berjalan dengan sukses, EventBridge merespons dengan ARN aturan. Perhatikan ARN ini. Anda harus memasukkannya di langkah 4.
Untuk membuat aturan yang cocok untuk acara lain, ubah pola acara. Untuk informasi selengkapnya, lihat Gunakan EventBridge untuk menangani peristiwa Auto Scaling.
-
Untuk menentukan fungsi Lambda yang akan digunakan sebagai target aturan, gunakan perintah put-
target berikut. aws events put-targets --rulemy-rule--targets Id=1,Arn=arn:aws:lambda:region:123456789012:function:my-functionPada perintah sebelumnya,
my-ruleadalah nama yang Anda tentukan untuk aturan pada langkah 2, dan nilai untukArnparameter adalah ARN dari fungsi yang Anda buat pada langkah 1. -
Untuk menambahkan izin yang memungkinkan aturan untuk memanggil fungsi Lambda Anda, gunakan perintah add-izin Lambda berikut.
Perintah ini mempercayai EventBridge layanan principal ( events.amazonaws.com) dan cakupan izin ke aturan yang ditentukan.aws lambda add-permission --function-namemy-function--statement-idmy-unique-id\ --action 'lambda:InvokeFunction' --principal events.amazonaws.com --source-arn arn:aws:events:region:123456789012:rule/my-ruleDalam perintah sebelumnya:
-
my-functionadalah nama fungsi Lambda yang Anda ingin aturan digunakan sebagai target. -
my-unique-idadalah pengidentifikasi unik yang Anda tetapkan untuk menggambarkan pernyataan dalam kebijakan fungsi Lambda. -
source-arnadalah ARN EventBridge aturan.
Jika perintah berjalan dengan berhasil, Anda menerima output yang mirip dengan berikut ini.
{ "Statement": "{\"Sid\":\"my-unique-id\", \"Effect\":\"Allow\", \"Principal\":{\"Service\":\"events.amazonaws.com\"}, \"Action\":\"lambda:InvokeFunction\", \"Resource\":\"arn:aws:lambda:us-west-2:123456789012:function:my-function\", \"Condition\": {\"ArnLike\": {\"AWS:SourceArn\": \"arn:aws:events:us-west-2:123456789012:rule/my-rule\"}}}" }Nilai
Statementadalah versi string JSON dari pernyataan yang ditambahkan ke kebijakan fungsi Lambda. -
-
Setelah Anda mengikuti petunjuk ini, lanjutkan ke Tambahkan kait siklus hidup ke grup Penskalaan Otomatis Anda sebagai langkah berikutnya.
Terima notifikasi menggunakan Amazon SNS
Anda dapat menggunakan Amazon SNS untuk mengatur target notifikasi (topik SNS) untuk menerima pemberitahuan saat tindakan siklus hidup terjadi. Amazon SNS kemudian mengirimkan notifikasi ke penerima yang berlangganan. Sampai langganan dikonfirmasi, tidak ada pemberitahuan yang dipublikasikan ke topik yang dikirim ke penerima.
Untuk mengatur menyiapkan notifikasi menggunakan Amazon SNS
-
Buat topik Amazon SNS dengan menggunakan konsol Amazon SNS
atau perintah cre ate-topic berikut. Pastikan topik berada di Wilayah yang sama dengan grup Penskalaan Otomatis yang Anda gunakan. Untuk informasi lebih lanjut, lihat Memulai dengan Amazon SNS di Panduan Developer Amazon Simple Notification Service. aws sns create-topic --namemy-sns-topic -
Perhatikan topik Nama Sumber Daya Amazon (ARN), misalnya,
arn:aws:sns:. Anda membutuhkannya untuk membuat kait siklus hidup.region:123456789012:my-sns-topic -
Buat peran layanan IAM untuk memberikan akses Amazon EC2 Auto Scaling ke target notifikasi Amazon SNS Anda.
Untuk memberikan akses Amazon EC2 Auto Scaling ke topik SNS Anda
Buka konsol IAM di https://console.aws.amazon.com/iam/
. -
Pada panel navigasi di sebelah kiri, pilih Peran.
-
Pilih Buat peran.
-
Untuk Pilih entitas tepercaya, pilih AWS layanan.
-
Untuk kasus penggunaan Anda, di bawah Kasus penggunaan untuk AWS layanan lain, pilih Penskalaan Otomatis EC2 lalu Akses Pem beritahuan Penskalaan Otomatis EC2.
-
Pilih Berikutnya dua kali untuk membuka halaman Nama, ulasan, dan buat.
-
Untuk Nama peran, masukkan nama untuk peran (misalnya,
my-notification-role) dan pilih Buat peran. -
Pada halaman Peran, pilih peran yang baru Anda buat untuk membuka Ringkasan yang baru. Catat peran AR N. Misalnya,
arn:aws:iam::. Anda membutuhkannya untuk membuat kait siklus hidup.123456789012:role/my-notification-role
-
Setelah Anda mengikuti petunjuk ini, lanjutkan ke Tambahkan kait siklus hidup (AWS CLI) sebagai langkah berikutnya.
Menerima pemberitahuan menggunakan Amazon SQS
Anda dapat menggunakan Amazon SQS untuk mengatur target notifikasi untuk menerima pesan saat tindakan siklus hidup terjadi. Konsumen antrian kemudian harus melakukan polling antrian SQS untuk bertindak berdasarkan notifikasi ini.
penting
Antrean FIFO tidak kompatibel dengan hook siklus aktif.
Untuk menyiapkan notifikasi menggunakan Amazon SQS
-
Buat antrian Amazon SQS dengan menggunakan konsol Amazon SQS.
Pastikan antrian berada di Wilayah yang sama dengan grup Auto Scaling yang Anda gunakan. Untuk informasi lebih lanjut, lihat Memulai dengan Amazon SQS di Panduan Pengembang Amazon Simple Queue Service. -
Perhatikan antrian ARN, misalnya,
arn:aws:sqs:. Anda membutuhkannya untuk membuat kait siklus hidup.us-west-2:123456789012:my-sqs-queue -
Buat peran layanan IAM untuk memberikan akses Amazon EC2 Auto Scaling ke target notifikasi Amazon SQS Anda.
Untuk memberikan akses Amazon EC2 Auto Scaling ke antrian SQS Anda
Buka konsol IAM di https://console.aws.amazon.com/iam/
. -
Pada panel navigasi di sebelah kiri, pilih Peran.
-
Pilih Buat peran.
-
Untuk Pilih entitas tepercaya, pilih AWS layanan.
-
Untuk kasus penggunaan Anda, di bawah Kasus penggunaan untuk AWS layanan lain, pilih Penskalaan Otomatis EC2 lalu Akses Pem beritahuan Penskalaan Otomatis EC2.
-
Pilih Berikutnya dua kali untuk membuka halaman Nama, ulasan, dan buat.
-
Untuk Nama peran, masukkan nama untuk peran (misalnya,
my-notification-role) dan pilih Buat peran. -
Pada halaman Peran, pilih peran yang baru Anda buat untuk membuka Ringkasan yang baru. Catat peran AR N. Misalnya,
arn:aws:iam::. Anda membutuhkannya untuk membuat kait siklus hidup.123456789012:role/my-notification-role
-
Setelah Anda mengikuti petunjuk ini, lanjutkan ke Tambahkan kait siklus hidup (AWS CLI) sebagai langkah berikutnya.
Rute notifikasi ke AWS Lambda langsung
Anda dapat menggunakan fungsi Lambda sebagai target notifikasi saat tindakan siklus hidup terjadi.
Untuk merutekan notifikasi ke AWS Lambda langsung
Buka halaman Fungsi
di konsol Lambda. -
Pilih fungsi Lambda yang Anda inginkan.
Jika Anda ingin membuat fungsi Lambda baru, lihat Buat fungsi Lambda
-
Pilih tab Konfigurasi dan kemudian Izin.
-
Gulir ke bawah ke Resource-based kebijakan, lalu pilih Tambahkan izin. Kebijakan berbasis sumber daya digunakan untuk memberikan izin untuk memanggil fungsi Anda ke prinsipal yang ditentukan dalam kebijakan. Dalam hal ini, prinsipalnya adalah peran terkait layanan Amazon EC2 Auto Scaling yang terkait dengan grup Auto Scaling.
-
Di bagian pernyataan kebijakan, konfigurasikan izin Anda:
-
Pilih Akun AWS.
-
Untuk Principal, masukkan ARN dari peran tertaut layanan panggilan, misalnya,.
arn:aws:iam::<aws-account-id>:role/aws-service-role/autoscaling.amazonaws.com/AWSServiceRoleForAutoScaling -
Untuk T ind akan, pilih lambda: InvokeFunction.
-
Untuk ID Per nyataan, masukkan ID pernyataan unik, seperti
AllowInvokeByAutoScaling. -
Pilih Simpan.
-
-
Setelah Anda mengikuti petunjuk ini, lanjutkan ke Tambahkan kait siklus hidup (AWS CLI) sebagai langkah berikutnya.
Contoh pesan notifikasi
Bagian ini memberikan contoh pemberitahuan untuk Amazon SNS, Amazon SQS, dan. AWS Lambda
Saat instance dalam keadaan tunggu, pesan dipublikasikan ke Amazon SNS, Amazon SQS, dan target AWS Lambda notifikasi.
Pesan ini mencakup informasi berikut:
-
Origin— Tempat dari mana instance EC2 berasal. -
Destination— Tempat di mana instance EC2 akan pergi. -
LifecycleActionToken— Token tindakan siklus aktif. -
AccountId- Akun AWS ID. -
AutoScalingGroupName— Nama grup Auto Scaling. -
LifecycleHookName— Nama hook siklus aktif. -
EC2InstanceId— ID instance EC2. -
LifecycleTransition— Jenis hook siklus aktif. -
NotificationMetadata— Metadata notifikasi.
Berikut ini adalah contoh pesan pemberitahuan.
Service: AWS Auto Scaling
Time: 2021-01-19T00:36:26.533Z
RequestId: 18b2ec17-3e9b-4c15-8024-ff2e8ce8786a
Origin: EC2
Destination: AutoScalingGroup
LifecycleActionToken: 71514b9d-6a40-4b26-8523-05e7ee35fa40
AccountId: 123456789012
AutoScalingGroupName: my-asg
LifecycleHookName: my-hook
EC2InstanceId: i-0598c7d356eba48d7
LifecycleTransition: autoscaling:EC2_INSTANCE_LAUNCHING
NotificationMetadata: hook message metadata
Contoh pesan notifikasi uji
Saat pertama kali menambahkan hook siklus hidup, pesan notifikasi pengujian dipublikasikan ke target notifikasi. Berikut ini adalah contoh pesan notifikasi pengujian.
Service: AWS Auto Scaling
Time: 2021-01-19T00:35:52.359Z
RequestId: 18b2ec17-3e9b-4c15-8024-ff2e8ce8786a
Event: autoscaling:TEST_NOTIFICATION
AccountId: 123456789012
AutoScalingGroupName: my-asg
AutoScalingGroupARN: arn:aws:autoscaling:us-west-2:123456789012:autoScalingGroup:042cba90-ad2f-431c-9b4d-6d9055bcc9fb:autoScalingGroupName/my-asg
catatan
Untuk contoh acara yang dikirimkan dari Amazon EC2 Auto Scaling ke EventBridge, lihatReferensi acara Amazon EC2 Auto Scaling.