

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
<a name="kafka-scaling-modes"></a>

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)](#kafka-default-mode)
+ [Mode yang disediakan](#kafka-provisioned-mode)

## Mode sesuai permintaan (default)
<a name="kafka-default-mode"></a>

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](invocation-eventsourcemapping.md#invocation-eventsourcemapping-provisioned-mode) 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
<a name="kafka-provisioned-mode"></a>

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](https://aws.amazon.com/lambda/pricing/).

**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. `MaximumPollers`harus lebih besar dari atau sama dengan`MinimumPollers`. 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, lihat[Praktik terbaik](#kafka-provisioned-mode-bp).

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)**

1. Buka [halaman Fungsi](https://console.aws.amazon.com/lambda/home#/functions) di konsol Lambda.

1. Pilih fungsi dengan pemetaan sumber peristiwa yang ingin Anda konfigurasikan untuk mode yang disediakan.

1. Pilih **Konfigurasi**, lalu pilih **Pemicu.**

1. **Pilih pemetaan sumber peristiwa yang ingin Anda konfigurasikan untuk mode yang disediakan, lalu pilih Edit.**

1. **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.

1. Pilih **Simpan**.

Anda dapat mengonfigurasi mode yang disediakan secara terprogram menggunakan objek di. [ProvisionedPollerConfig[ EventSourceMappingConfiguration](https://docs.aws.amazon.com/lambda/latest/api/API_EventSourceMappingConfiguration.html)](https://docs.aws.amazon.com/lambda/latest/api/API_ProvisionedPollerConfig.html) Misalnya, perintah [UpdateEventSourceMapping](https://docs.aws.amazon.com/lambda/latest/api/API_UpdateEventSourceMapping.html)CLI 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](monitoring-metrics-types.md#event-source-mapping-metrics).

Untuk menonaktifkan mode yang disediakan dan kembali ke mode default (sesuai permintaan), Anda dapat menggunakan perintah CLI [UpdateEventSourceMapping](https://docs.aws.amazon.com/lambda/latest/api/API_UpdateEventSourceMapping.html)berikut:

```
aws lambda update-event-source-mapping \
    --uuid a1b2c3d4-5678-90ab-cdef-EXAMPLE11111 \
    --provisioned-poller-config '{}'
```

## Fitur penanganan kesalahan dan kinerja tingkat lanjut
<a name="services-kafka-advanced-features"></a>

Untuk pemetaan sumber peristiwa Kafka dengan mode yang disediakan diaktifkan, Anda dapat mengonfigurasi fitur tambahan untuk meningkatkan penanganan dan kinerja kesalahan:
+ [Konfigurasi coba lagi](kafka-retry-configurations.md) — Kontrol cara Lambda menangani catatan yang gagal dengan upaya coba ulang maksimum, batas usia rekaman, pemisahan batch, dan respons batch sebagian.
+ [Tujuan kegagalan Kafka](kafka-on-failure-destination.md) — Kirim catatan yang gagal ke topik Kafka untuk diproses atau dianalisis nanti.

## Praktik dan pertimbangan terbaik saat menggunakan mode yang disediakan
<a name="kafka-provisioned-mode-bp"></a>

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
<a name="kafka-cost-optimization"></a>

### Harga mode yang disediakan
<a name="kafka-provisioned-pricing"></a>

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](https://aws.amazon.com/lambda/pricing/).

### Peningkatan Pemanfaatan EPU
<a name="kafka-enhanced-epu-utilization"></a>

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
<a name="kafka-esm-grouping-cost"></a>

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)
<a name="kafka-esm-grouping-console-cost"></a>

1. Buka [halaman Fungsi](https://console.aws.amazon.com/lambda/home#/functions) di konsol Lambda.

1. Pilih fungsi Anda.

1. Pilih **Konfigurasi**, lalu pilih **Pemicu.**

1. Saat membuat pemetaan sumber peristiwa Kafka baru, atau mengedit yang sudah ada, pilih **Konfigurasi di bawah Mode** yang **disediakan**.

1. Untuk **poller acara Minimum**, masukkan nilai antara 1 dan 200.

1. Untuk **poller acara Maksimum**, masukkan nilai antara 1 dan 2.000.

1. Untuk **nama grup Poller**, masukkan pengenal untuk grup. Gunakan nama yang sama untuk orang lain yang ingin ESMs Anda kelompokkan bersama.

1. Pilih **Simpan**.

#### Untuk mengkonfigurasi pengelompokan ESM (CLI AWS )
<a name="kafka-esm-grouping-cli-cost"></a>

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
<a name="kafka-grouping-strategy-considerations"></a>
+ **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
<a name="kafka-cost-optimization-example"></a>

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)