Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.
Mode penskalaan poller acara Apache Kafka di Lambda
Anda dapat memilih antara dua mode penskalaan poller acara untuk Amazon MSK dan pemetaan sumber acara Apache Kafka yang dikelola sendiri:
Mode sesuai permintaan (default)
Saat Anda awalnya membuat sumber acara Kafka, Lambda mengalokasikan sejumlah poller acara default untuk memproses semua partisi dalam topik Kafka. Lambda secara otomatis menaikkan atau menurunkan jumlah poller acara berdasarkan pemuatan pesan.
Dalam interval satu menit, Lambda mengevaluasi lag offset dari semua partisi dalam topik. Jika offset lag terlalu tinggi, partisi menerima pesan lebih cepat daripada Lambda dapat memprosesnya. Jika perlu, Lambda menambahkan atau menghapus poller acara dari topik. Proses penskalaan otomatis untuk menambah atau menghapus poller peristiwa ini terjadi dalam waktu tiga menit setelah evaluasi.
Jika fungsi Lambda target Anda dibatasi, Lambda mengurangi jumlah poller acara. Tindakan ini mengurangi beban kerja pada fungsi dengan mengurangi jumlah pesan yang dapat diambil dan dikirim oleh poller peristiwa ke fungsi.
Mode yang disediakan
Untuk beban kerja di mana Anda perlu menyempurnakan throughput pemetaan sumber peristiwa, Anda dapat menggunakan mode yang disediakan. Dalam mode yang disediakan, Anda menentukan batas minimum dan maksimum untuk jumlah poller acara yang disediakan. Poller acara yang disediakan ini didedikasikan untuk pemetaan sumber acara Anda, dan dapat menangani lonjakan pesan yang tidak terduga melalui penskalaan otomatis responsif. Kami menyarankan Anda menggunakan mode yang disediakan untuk beban kerja Kafka yang memiliki persyaratan kinerja yang ketat.
Di Lambda, poller peristiwa adalah unit komputasi dengan kemampuan throughput yang bervariasi menurut jenis sumber peristiwa. Untuk Amazon MSK dan Apache Kafka yang dikelola sendiri, setiap poller acara dapat menangani hingga 5 throughput atau hingga 5 MB/sec pemanggilan bersamaan. Misalnya, jika sumber acara Anda menghasilkan payload rata-rata 1 MB dan durasi rata-rata fungsi Anda adalah 1 detik, satu poller acara Kafka dapat mendukung 5 MB/sec throughput dan 5 pemanggilan Lambda bersamaan (dengan asumsi tidak ada transformasi payload). Untuk Amazon SQS, setiap poller peristiwa dapat menangani hingga 1 throughput atau hingga MB/sec 10 pemanggilan bersamaan. Menggunakan mode yang disediakan menimbulkan biaya tambahan berdasarkan penggunaan poller acara Anda. Untuk detail harganya, lihat Harga AWS Lambda
catatan
Saat menggunakan mode yang disediakan, Anda tidak perlu membuat titik akhir AWS PrivateLink VPC atau memberikan izin terkait sebagai bagian dari konfigurasi jaringan Anda.
Dalam mode yang disediakan, kisaran nilai yang diterima untuk jumlah minimum poller acara (MinimumPollers) adalah antara 1 dan 200, inklusif. Kisaran nilai yang diterima untuk jumlah maksimum poller acara (MaximumPollers) adalah antara 1 dan 2.000, inklusif. MaximumPollersharus lebih besar dari atau sama denganMinimumPollers. Selain itu, untuk mempertahankan pemrosesan yang teratur dalam partisi, Lambda membatasi MaximumPollers jumlah partisi dalam topik.
Untuk detail selengkapnya tentang memilih nilai yang sesuai untuk poller acara minimum dan maksimum, lihatPraktik terbaik.
Anda dapat mengonfigurasi mode yang disediakan untuk pemetaan sumber acara Kafka menggunakan konsol atau API Lambda.
Untuk mengonfigurasi mode yang disediakan untuk pemetaan sumber peristiwa yang ada (konsol)
-
Buka halaman Fungsi
di konsol Lambda. -
Pilih fungsi dengan pemetaan sumber peristiwa yang ingin Anda konfigurasikan untuk mode yang disediakan.
-
Pilih Konfigurasi, lalu pilih Pemicu.
-
Pilih pemetaan sumber peristiwa yang ingin Anda konfigurasikan untuk mode yang disediakan, lalu pilih Edit.
-
Di bawah Mode yang disediakan, pilih Konfigurasi.
-
Untuk poller acara Minimum, masukkan nilai antara 1 dan 200. Jika Anda tidak menentukan nilai, Lambda memilih nilai default 1.
-
Untuk poller acara Maksimum, masukkan nilai antara 1 dan 2.000. Nilai ini harus lebih besar dari atau sama dengan nilai Anda untuk poller acara Minimum. Jika Anda tidak menentukan nilai, Lambda memilih nilai default 200.
-
-
Pilih Simpan.
Anda dapat mengonfigurasi mode yang disediakan secara terprogram menggunakan objek di. ProvisionedPollerConfig EventSourceMappingConfiguration Misalnya, perintah UpdateEventSourceMappingCLI berikut mengkonfigurasi MinimumPollers nilai 5, dan MaximumPollers nilai 100.
aws lambda update-event-source-mapping \ --uuid a1b2c3d4-5678-90ab-cdef-EXAMPLE11111 \ --provisioned-poller-config '{"MinimumPollers": 5, "MaximumPollers": 100}'
Setelah mengonfigurasi mode yang disediakan, Anda dapat mengamati penggunaan poller peristiwa untuk beban kerja Anda dengan memantau metrik. ProvisionedPollers Untuk informasi selengkapnya, lihat Metrik pemetaan sumber acara.
Untuk menonaktifkan mode yang disediakan dan kembali ke mode default (sesuai permintaan), Anda dapat menggunakan perintah CLI UpdateEventSourceMappingberikut:
aws lambda update-event-source-mapping \ --uuid a1b2c3d4-5678-90ab-cdef-EXAMPLE11111 \ --provisioned-poller-config '{}'
Fitur penanganan kesalahan dan kinerja tingkat lanjut
Untuk pemetaan sumber peristiwa Kafka dengan mode yang disediakan diaktifkan, Anda dapat mengonfigurasi fitur tambahan untuk meningkatkan penanganan dan kinerja kesalahan:
-
Konfigurasi coba lagi — Kontrol cara Lambda menangani catatan yang gagal dengan upaya coba ulang maksimum, batas usia rekaman, pemisahan batch, dan respons batch sebagian.
-
Tujuan kegagalan Kafka — Kirim catatan yang gagal ke topik Kafka untuk diproses atau dianalisis nanti.
Praktik dan pertimbangan terbaik saat menggunakan mode yang disediakan
Konfigurasi optimal poller peristiwa minimum dan maksimum untuk pemetaan sumber acara Anda bergantung pada persyaratan kinerja aplikasi Anda. Kami menyarankan Anda memulai dengan poller acara minimum default untuk mendasarkan profil kinerja. Sesuaikan konfigurasi Anda berdasarkan pola pemrosesan pesan yang diamati dan profil kinerja yang Anda inginkan.
Untuk beban kerja dengan lalu lintas runcing dan kebutuhan kinerja yang ketat, tingkatkan poller acara minimum untuk menangani lonjakan pesan yang tiba-tiba. Untuk menentukan poller peristiwa minimum yang diperlukan, pertimbangkan pesan beban kerja Anda per detik dan ukuran muatan rata-rata, dan gunakan kapasitas throughput dari poller peristiwa tunggal (hingga 5 MBps) sebagai referensi.
Untuk mempertahankan pemrosesan yang teratur dalam partisi, Lambda membatasi poller peristiwa maksimum ke jumlah partisi dalam topik. Selain itu, poller peristiwa maksimum yang dapat diskalakan oleh pemetaan sumber acara Anda bergantung pada pengaturan konkurensi fungsi.
Saat mengaktifkan mode yang disediakan, perbarui pengaturan jaringan Anda untuk menghapus titik akhir AWS PrivateLink VPC dan izin terkait.
Optimalisasi Biaya untuk mode Provisioned
Harga mode yang disediakan
Mode yang disediakan dibebankan berdasarkan poller peristiwa minimum yang disediakan, dan poller acara dikonsumsi selama penskalaan otomatis. Biaya dihitung menggunakan unit penagihan yang disebut Event Poller Unit (EPU). Anda membayar untuk jumlah dan durasi yang EPUs digunakan, diukur dalam Event-Poller-Unit-hours. Anda dapat menggunakan mode Provisioned dengan satu ESM untuk aplikasi yang peka terhadap kinerja atau Anda dapat mengelompokkan beberapa dalam VPC yang sama untuk ESMs berbagi kapasitas dan biaya EPU. Kami akan mendalami dua kemampuan yang membantu Anda mengoptimalkan biaya mode Provisioned Anda. Untuk detail harga, lihat harga AWS Lambda
Peningkatan Pemanfaatan EPU
Setiap EPU mendukung kapasitas MB/s throughput hingga 20 untuk polling acara dan mendukung default 10 poller acara. Saat Anda membuat mode Provisioned untuk Kafka ESM dengan menyetel poller minimum dan maksimum, mode ini menggunakan nomor poller minimum untuk penyediaan EPUs berdasarkan default 10 poller acara per EPU. Namun, setiap poller acara dapat menskalakan secara independen untuk mendukung hingga 5 MB/s kapasitas throughput, yang mungkin memerlukan kepadatan poller peristiwa yang lebih rendah pada EPU tertentu dan dapat memicu penskalaan. EPUs Jumlah poller acara yang dialokasikan pada EPU tergantung pada kapasitas komputasi yang dikonsumsi oleh masing-masing poller acara. Pendekatan pemanfaatan EPU yang ditingkatkan ini memungkinkan poller acara dengan berbagai persyaratan throughput untuk memanfaatkan kapasitas EPU secara efektif, mengurangi biaya untuk semua. ESMs
Pengelompokan ESM
Untuk mengoptimalkan biaya mode Provisioned Anda lebih lanjut, Anda dapat mengelompokkan beberapa Kafka ESMs untuk berbagi kapasitas EPU. Dengan pengelompokan ESM dan Pemanfaatan EPU yang ditingkatkan, Anda dapat mengurangi biaya mode Provisioned hingga 90% untuk beban kerja throughput rendah dibandingkan dengan berjalan dalam mode ESM tunggal. Semua ESMs yang membutuhkan kurang dari 1 kapasitas EPU akan mendapat manfaat dari pengelompokan ESM. Seperti ESMs biasanya membutuhkan beberapa poller acara minimum untuk mendukung kebutuhan throughput mereka. Kemampuan ini akan memungkinkan Anda untuk mengadopsi mode Provisioned untuk semua beban kerja Kafka Anda, dan mendapatkan manfaat dari fitur seperti validasi skema, pemfilteran Avro/Protobuf peristiwa, pemanggilan latensi rendah, dan penanganan kesalahan yang ditingkatkan yang hanya tersedia dalam mode Provisioned.
Saat Anda mengonfigurasi PollerGroupName parameter dengan nilai yang sama untuk beberapa ESMs dalam VPC Amazon yang sama, parameter tersebut ESMs berbagi sumber daya EPU alih-alih masing-masing memerlukan kapasitas EPU khusus. Anda dapat mengelompokkan hingga 100 ESMs per grup poller dan agregat poller maksimum ESMs di semua kelompok tidak boleh melebihi 2000.
Untuk mengkonfigurasi pengelompokan ESM (konsol)
Buka halaman Fungsi
di konsol Lambda. Pilih fungsi Anda.
Pilih Konfigurasi, lalu pilih Pemicu.
Saat membuat pemetaan sumber peristiwa Kafka baru, atau mengedit yang sudah ada, pilih Konfigurasi di bawah Mode yang disediakan.
Untuk poller acara Minimum, masukkan nilai antara 1 dan 200.
Untuk poller acara Maksimum, masukkan nilai antara 1 dan 2.000.
Untuk nama grup Poller, masukkan pengenal untuk grup. Gunakan nama yang sama untuk orang lain yang ingin ESMs Anda kelompokkan bersama.
Pilih Simpan.
Untuk mengkonfigurasi pengelompokan ESM (CLI AWS )
Contoh berikut membuat ESM dengan grup poller bernama: production-app-group
aws lambda create-event-source-mapping \ --function-name myFunction1 \ --event-source-arn arn:aws:kafka:us-east-1:123456789012:cluster/MyCluster/abcd1234 \ --topics topic1 \ --starting-position LATEST \ --provisioned-poller-config '{ "MinimumPollers": 1, "MaximumPollers": 10, "PollerGroupName": "production-app-group" }'
Untuk menambahkan ESM lain ke grup yang sama (berbagi kapasitas EPU), gunakan yang sama: PollerGroupName
aws lambda create-event-source-mapping \ --function-name myFunction2 \ --event-source-arn arn:aws:kafka:us-east-1:123456789012:cluster/MyCluster/abcd1234 \ --topics topic2 \ --starting-position LATEST \ --provisioned-poller-config '{ "MinimumPollers": 1, "MaximumPollers": 10, "PollerGroupName": "production-app-group" }'
catatan
Anda dapat memperbarui PollerGroupName untuk memindahkan ESM ke grup lain, atau menghapus ESM dari grup dengan meneruskan string kosong (“”) untuk: PollerGroupName
# Move ESM to a different group aws lambda update-event-source-mapping \ --uuid a1b2c3d4-5678-90ab-cdef-EXAMPLE11111 \ --provisioned-poller-config '{ "MinimumPollers": 1, "MaximumPollers": 10, "PollerGroupName": "new-group-name" }' # Remove ESM from group (use dedicated resources) aws lambda update-event-source-mapping \ --uuid a1b2c3d4-5678-90ab-cdef-EXAMPLE11111 \ --provisioned-poller-config '{ "MinimumPollers": 1, "MaximumPollers": 10, "PollerGroupName": "" }'
Pertimbangan strategi pengelompokan
Batas aplikasi — Grup ESMs yang termasuk dalam aplikasi atau layanan yang sama untuk alokasi dan manajemen biaya yang lebih baik. Pertimbangkan untuk menggunakan konvensi penamaan seperti
app-name-environment(misalnya,order-processor-prod).Pola lalu lintas — Hindari pengelompokan ESMs dengan throughput tinggi dan pola lalu lintas runcing, karena ini dapat menyebabkan perselisihan sumber daya.
Radius ledakan — Pertimbangkan dampaknya jika infrastruktur bersama mengalami masalah. Semua ESMs dalam grup yang sama dipengaruhi oleh keterbatasan sumber daya bersama. Untuk beban kerja mission-critical, Anda mungkin ingin menggunakan grup terpisah atau khusus. ESMs
Contoh optimasi biaya
Pertimbangkan skenario di mana Anda memiliki 10 ESMs, masing-masing dikonfigurasi dengan 1 poller peristiwa dan throughput di bawah 2 MB/s:
Tanpa pengelompokan:
Setiap ESM membutuhkan EPU-nya sendiri
Total EPUs yang dibutuhkan: 10
Biaya per EPU: $0.185/jam di AS Timur (Virginia N.)
Biaya EPU bulanan (720 jam): 10 × 720 × $0,185 = $1,332
Dengan pengelompokan:
Semua 10 ESMs berbagi kapasitas EPU
10 poller acara cocok dalam 1 EPU (dengan 10 poller baru per dukungan EPU)
Total EPUs yang dibutuhkan: 1
Biaya EPU bulanan (720 jam): 1 × 720 × $0.185 = $133.20
Penghematan biaya: 90% (penghematan $1,198.80 per bulan)