Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.
Mode penskalaan poller peristiwa Apache Kafka di Lambda
Anda dapat memilih antara dua mode penskalaan poller peristiwa untuk Amazon MSK dan pemetaan sumber peristiwa Apache Kafka yang dikelola sendiri:
On-demand mode (default)
Ketika Anda awalnya membuat sumber peristiwa Kafka, Lambda mengalokasikan sejumlah poller peristiwa default untuk memproses semua partisi dalam topik Kafka. Lambda secara otomatis menaikkan atau menurunkan jumlah event poller 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 peristiwa dari topik. Proses penskalaan otomatis untuk menambahkan atau menghapus poller peristiwa ini terjadi dalam waktu tiga menit setelah evaluasi.
Jika fungsi Lambda target Anda dibatasi, Lambda mengurangi jumlah poller peristiwa. Tindakan ini mengurangi beban kerja pada fungsi dengan mengurangi jumlah pesan yang dapat diambil dan dikirim oleh pemilih 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 peristiwa yang disediakan. Poller peristiwa yang disediakan ini didedikasikan untuk pemetaan sumber peristiwa Anda, dan dapat menangani lonjakan pesan yang tidak terduga melalui penskalaan otomatis responsif. Sebaiknya gunakan 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 peristiwa dapat menangani hingga 5 throughput atau hingga 5 MB/sec pemanggilan bersamaan. Misalnya, jika sumber peristiwa menghasilkan payload rata-rata 1 MB dan durasi rata-rata fungsi Anda adalah 1 detik, satu poller peristiwa 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 10 MB/sec 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 event pollers (MinimumPollers) adalah antara 1 dan 200, inklusif. Kisaran nilai yang diterima untuk jumlah maksimum event pollers (MaximumPollers) adalah antara 1 dan 2.000, inklusif. MaximumPollersharus lebih besar dari atau sama denganMinimumPollers. Selain itu, untuk mempertahankan pemrosesan yang teratur di dalam partisi, Lambda MaximumPollers membatasi jumlah partisi dalam topik.
Untuk detail selengkapnya tentang memilih nilai yang sesuai untuk poller peristiwa minimum dan maksimum, lihatPraktik terbaik.
Anda dapat mengonfigurasi mode yang disediakan untuk pemetaan sumber peristiwa Kafka menggunakan konsol atau API Lambda.
Untuk mengkonfigurasi 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 Pem icu.
-
Pilih pemetaan sumber peristiwa yang ingin Anda konfigurasikan untuk mode yang disediakan, lalu pilih Edit.
-
Di bawah Mode yang disediakan, pilih Konfigurasi.
-
Untuk poller peristiwa minimum, masukkan nilai antara 1 dan 200. Jika Anda tidak menentukan nilai, Lambda memilih nilai default 1.
-
Untuk Poller peristiwa maksimum, masukkan nilai antara 1 dan 2.000. Nilai ini harus lebih besar dari atau sama dengan nilai Anda untuk pol ler peristiwa Minimum. Jika Anda tidak menentukan nilai, Lambda memilih nilai default 200.
-
-
Pilih Simpan.
Anda dapat mengonfigurasi mode yang disediakan secara terprogram menggunakan ProvisionedPollerConfig objek di. EventSourceMappingConfiguration Misalnya, perintah UpdateEventSourceMapping CLI berikut mengonfigurasi 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 peristiwa.
Untuk menonaktifkan mode yang disediakan dan kembali ke mode default (sesuai permintaan), Anda dapat menggunakan perintah UpdateEventSourceMapping CLI berikut:
aws lambda update-event-source-mapping \ --uuid a1b2c3d4-5678-90ab-cdef-EXAMPLE11111 \ --provisioned-poller-config '{}'
Penanganan kesalahan tingkat lanjut dan fitur kinerja
Untuk pemetaan sumber peristiwa Kafka dengan mode disediakan diaktifkan, Anda dapat mengonfigurasi fitur tambahan untuk meningkatkan penanganan kesalahan dan kinerja:
-
Konfigurasi coba ulang — Kontrol cara Lambda menangani catatan yang gagal dengan upaya coba ulang maksimum, batas usia rekaman, pemisahan batch, dan respons batch parsional.
-
Tujuan Kafka pada kegagalan — Mengirim catatan gagal ke topik Kafka untuk diproses atau dianalisis nanti.
Praktik dan pertimbangan terbaik saat menggunakan mode yang disediakan
Konfigurasi optimal dari event poller minimum dan maksimum untuk pemetaan sumber peristiwa tergantung pada persyaratan kinerja aplikasi Anda. Kami menyarankan Anda memulai dengan poller peristiwa minimum default untuk membuat profil kinerja dasar. Sesuaikan konfigurasi Anda berdasarkan pola pemrosesan pesan yang diamati dan profil kinerja yang Anda inginkan.
Untuk beban kerja dengan lalu lintas yang tajam dan kebutuhan kinerja yang ketat, tingkatkan poller peristiwa minimum untuk menangani lonjakan pesan yang tiba-tiba. Untuk menentukan poller peristiwa minimum yang diperlukan, pertimbangkan pesan beban kerja Anda per detik dan ukuran payload rata-rata, dan gunakan kapasitas throughput dari satu poller peristiwa (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 peristiwa 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.
Pengoptimalan Biaya untuk mode Penyediaan
Harga mode yang disediakan
Mode yang disediakan dikenakan biaya berdasarkan poller peristiwa minimum yang disediakan, dan poller peristiwa yang digunakan selama penskalaan otomatis. Biaya dihitung menggunakan unit penagihan yang disebut Event Poller Unit (EPU). Anda membayar untuk jumlah dan durasi EPU yang digunakan, diukur dalam Event-Poller-Unit-hours.
Anda dapat menggunakan mode Penyediaan dengan satu ESM untuk aplikasi yang sensitif terhadap kinerja atau Anda dapat mengelompokkan beberapa ESM dalam VPC yang sama untuk berbagi kapasitas dan biaya EPU. Bagian berikut menjelaskan dua kemampuan yang membantu Anda mengoptimalkan biaya mode yang disediakan. Untuk detail harga, lihat Harga AWS Lambda.
Peningkatan Pemanfaatan EPU
Setiap EPU mendukung hingga 20 kapasitas MB/s throughput untuk polling peristiwa dan mendukung default 10 poller peristiwa. Saat Anda membuat mode Penyediaan untuk Kafka ESM dengan menyetel poller minimum dan maksimum, mode ini menggunakan nomor poller minimum untuk menyediakan EPU berdasarkan default dari 10 poller peristiwa per EPU. Namun, setiap poller peristiwa dapat secara independen menskalakan untuk mendukung hingga 5 MB/s kapasitas throughput, yang mungkin memerlukan kepadatan poller peristiwa yang lebih rendah pada EPU tertentu dan dapat memicu penskalaan EPU. Jumlah poller peristiwa yang dialokasikan pada EPU tergantung pada kapasitas komputasi yang dikonsumsi oleh setiap poller peristiwa. Pendekatan pemanfaatan EPU yang ditingkatkan ini memungkinkan pemilih peristiwa dengan persyaratan throughput yang bervariasi untuk menggunakan kapasitas EPU secara efektif, mengurangi biaya untuk semua ESM.
Pengelompokan ESM
Untuk mengoptimalkan biaya mode yang disediakan lebih lanjut, Anda dapat mengelompokkan beberapa ESM Kafka untuk berbagi kapasitas EPU. Dengan pengelompokan ESM dan Pemanfaatan EPU yang ditingkatkan, Anda dapat mengurangi biaya mode Penyediaan hingga 90% untuk beban kerja throughput rendah dibandingkan dengan menjalankan dalam mode ESM tunggal. Semua ESM yang membutuhkan kapasitas kurang dari 1 EPU mendapat manfaat dari pengelompokan ESM. ESM semacam itu biasanya memerlukan beberapa event poller minimum untuk mendukung kebutuhan throughput mereka. Dengan kemampuan ini, Anda dapat mengadopsi mode Penyediaan untuk semua beban kerja Kafka Anda, dan memanfaatkan fitur seperti validasi skema, pemfilteran Avro/Protobuf peristiwa, pemanggilan latensi rendah, dan penanganan kesalahan yang disempurnakan yang hanya tersedia dalam mode Penyediaan.
Saat Anda mengonfigurasi PollerGroupName parameter dengan nilai yang sama untuk beberapa ESM dalam Amazon VPC yang sama, ESM tersebut berbagi sumber daya EPU alih-alih masing-masing memerlukan kapasitas EPU khusus. Anda dapat mengelompokkan hingga 100 ESM per grup poller, dan agregat poller maksimum di semua ESM di satu grup tidak boleh lebih dari 2000.
Untuk mengkonfigurasi pengelompokan ESM (konsol)
Buka halaman Fungsi
di konsol Lambda. Pilih fungsi Anda.
Pilih Konfigur asi, lalu pilih Pem icu.
Saat membuat pemetaan sumber peristiwa Kafka baru, atau mengedit yang sudah ada, pilih Konfigurasi di bawah mode Penye diaan.
Untuk poller peristiwa minimum, masukkan nilai antara 1 dan 200.
Untuk Poller peristiwa maksimum, masukkan nilai antara 1 dan 2.000.
Untuk nama grup Poller, masukkan pengidentifikasi untuk grup. Gunakan nama yang sama untuk ESM lain yang ingin Anda kelompokkan bersama.
Pilih Simpan.
Untuk mengkonfigurasi pengelompokan ESM (AWS CLI)
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 yang berbeda, 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 — Kelompokkan ESM 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 ESM dengan throughput tinggi dan pola lalu lintas yang runcing, karena ini dapat menyebabkan pertikaian sumber daya.
Radius ledakan — Pertimbangkan dampaknya jika infrastruktur bersama mengalami masalah. Semua ESM dalam grup yang sama dipengaruhi oleh keterbatasan sumber daya bersama. Untuk beban kerja kritis misi, Anda mungkin ingin menggunakan grup terpisah atau ESM khusus.
Contoh pengoptimalan biaya
Pertimbangkan skenario di mana Anda memiliki 10 ESM, masing-masing dikonfigurasi dengan 1 poller peristiwa dan throughput di bawah 2: MB/s
Tanpa pengelompokan:
Setiap ESM membutuhkan EPU sendiri
Total EPU yang dibutuhkan: 10
Biaya per EPU: $0. 185/hour di AS Timur (Virginia Utara)
Biaya EPU bulanan (720 jam): 10 × 720 × $0.185 = $1.332
Dengan pengelompokan:
Semua 10 ESM berbagi kapasitas EPU
10 pemilih acara cocok dalam 1 EPU (dengan 10 poller baru per dukungan EPU)
Total EPU yang dibutuhkan: 1
Biaya EPU bulanan (720 jam): 1 × 720 × $0,185 = $133,20
Penghematan biaya: 90% (penghematan $1.198,80 per bulan)