Pilih mode yang tepat untuk streaming - Amazon Kinesis Data Streams

Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.

Pilih mode yang tepat untuk streaming

Topik berikut menjelaskan cara memilih mode terbaik untuk aplikasi Anda dan cara beralih antar mode, jika diperlukan.

Apa saja mode yang berbeda dalam Kinesis Data Streams?

Mode menentukan bagaimana kapasitas aliran data dikelola dan bagaimana Anda dikenakan biaya untuk penggunaan aliran data Anda. Di Amazon Kinesis Data Streams, Anda dapat memilih Standar Sesuai Permintaan, Keuntungan Sesuai Permintaan, dan disediakan sebagai mode untuk aliran data Anda.

  • Standar On-Demand - Aliran data dengan mode on-demand tidak memerlukan perencanaan kapasitas dan secara otomatis menskalakan untuk menangani gigabyte throughput tulis dan baca per menit. Dengan mode on-demand, Kinesis Data Streams secara otomatis mengelola pecahan untuk menyediakan throughput yang diperlukan.

  • On-Demand Advantage - Mode tingkat akun yang memungkinkan lebih banyak kemampuan dan menyediakan struktur harga yang lebih sederhana untuk aliran sesuai permintaan. Dalam mode ini, Anda dapat secara proaktif menghangatkan kapasitas throughput tulis aliran kapan saja. Untuk penetapan harga, tidak ada lagi biaya tingkat per aliran tetap, dan konsumsi data, pengambilan data, dan penggunaan retensi yang diperpanjang di semua aliran sesuai permintaan setidaknya 60% lebih rendah daripada Standar Sesuai Permintaan.

  • Disediakan - Untuk aliran data dengan mode yang disediakan, Anda harus menentukan jumlah pecahan untuk aliran data. Kapasitas total aliran data adalah jumlah dari kapasitas pecahannya. Anda dapat menambah atau mengurangi jumlah pecahan dalam aliran data, sesuai kebutuhan.

Anda dapat menggunakan Kinesis Data PutRecords APIs Streams dan untuk menulis PutRecord data ke dalam aliran data Anda dalam mode apa pun. Untuk mengambil data, ketiga mode mendukung konsumen default yang menggunakan GetRecords API dan konsumen Enhanced Fan-Out (EFO) yang menggunakan API. SubscribeToShard

Semua kemampuan Kinesis Data Streams, termasuk mode retensi, enkripsi, metrik pemantauan, dan lainnya, didukung untuk mode sesuai permintaan dan yang disediakan. Kinesis Data Streams memberikan daya tahan dan ketersediaan yang tinggi baik dalam mode kapasitas sesuai permintaan maupun yang disediakan.

Fitur mode Standar sesuai permintaan dan kasus penggunaan

Aliran data dalam mode on-demand tidak memerlukan perencanaan kapasitas dan secara otomatis menskalakan untuk menangani gigabyte throughput tulis dan baca per menit. Mode on-demand menyederhanakan pengambilan dan penyimpanan volume data yang besar pada latensi rendah karena menghilangkan penyediaan dan pengelolaan server, penyimpanan, atau throughput. Anda dapat menelan miliaran catatan per hari tanpa biaya operasional.

Mode on-demand sangat ideal untuk memenuhi kebutuhan lalu lintas aplikasi yang sangat bervariasi dan tidak dapat diprediksi. Anda tidak lagi harus menyediakan beban kerja ini untuk kapasitas puncak, yang dapat menghasilkan biaya yang lebih tinggi karena pemanfaatan yang rendah. Mode on-demand cocok untuk beban kerja dengan pola lalu lintas yang tidak dapat diprediksi dan sangat bervariasi.

Dengan mode kapasitas sesuai permintaan, Anda membayar per GB data yang ditulis dan dibaca dari aliran data Anda. Anda tidak perlu menentukan berapa banyak throughput baca dan tulis yang Anda harapkan untuk dilakukan aplikasi Anda. Kinesis Data Streams langsung mengakomodasi beban kerja Anda saat mereka naik atau turun. Lihat informasi yang lebih lengkap di struktur harga Amazon Kinesis Data Streams.

Aliran data dalam mode on-demand mengakomodasi hingga dua kali lipat throughput penulisan puncak yang diamati dalam 30 hari sebelumnya. Saat throughput penulisan aliran data Anda mencapai puncak baru, Kinesis Data Streams menskalakan kapasitas aliran data secara otomatis. Misalnya, jika aliran data Anda memiliki throughput tulis yang bervariasi antara 10 MB/s dan 40 MB/s, then Kinesis Data Streams ensures that you can easily burst to double your previous peak throughput, or 80 MB/s. If the same data stream sustains a new peak throughput of 50 MB/s, Kinesis Data Streams ensures that there is enough capacity to ingest 100 MB/s throughput tulis. Namun, pelambatan tulis dapat terjadi jika lalu lintas Anda meningkat menjadi lebih dari dua kali lipat puncak sebelumnya dalam durasi 15 menit. Anda perlu mencoba kembali permintaan yang dibatasi ini.

Kapasitas baca agregat dari aliran data dengan mode on-demand meningkat secara proporsional terhadap throughput penulisan. Ini membantu memastikan bahwa aplikasi konsumen selalu memiliki throughput baca yang memadai untuk memproses data yang masuk secara real time. Anda mendapatkan setidaknya dua kali throughput tulis dibandingkan dengan membaca data menggunakan GetRecords API. Kami menyarankan Anda menggunakan satu aplikasi konsumen dengan GetRecord API, sehingga memiliki cukup ruang untuk mengejar ketinggalan ketika aplikasi perlu pulih dari waktu henti. Disarankan agar Anda menggunakan kemampuan Enhanced Fan-Out dari Kinesis Data Streams untuk skenario yang memerlukan penambahan lebih dari satu aplikasi konsumen. Enhanced Fan-Out mendukung penambahan hingga 20 aplikasi konsumen ke aliran data menggunakan SubscribeToShard API, dengan setiap aplikasi konsumen memiliki throughput khusus.

Menangani pengecualian throughput baca dan tulis

Dengan mode on-demand (sama seperti dengan mode kapasitas yang disediakan), Anda harus menentukan kunci partisi dengan setiap catatan untuk menulis data ke dalam aliran data Anda. Kinesis Data Streams menggunakan kunci partisi Anda untuk mendistribusikan data di seluruh pecahan. Kinesis Data Streams memantau lalu lintas untuk setiap pecahan. Ketika lalu lintas yang masuk melebihi 500 KB/s per pecahan, itu membagi pecahan dalam waktu 15 menit. Nilai kunci hash shard induk didistribusikan kembali secara merata di seluruh pecahan anak.

Jika lalu lintas masuk Anda melebihi dua kali puncak sebelumnya, Anda dapat mengalami pengecualian baca atau tulis selama sekitar 15 menit, bahkan ketika data Anda didistribusikan secara merata di seluruh pecahan. Kami menyarankan Anda mencoba kembali semua permintaan tersebut sehingga semua catatan disimpan dengan benar di Kinesis Data Streams.

Anda mungkin mengalami pengecualian baca dan tulis jika Anda menggunakan kunci partisi yang mengarah ke distribusi data yang tidak merata, dan catatan yang ditetapkan ke pecahan tertentu melebihi batasnya. Dengan mode on-demand, aliran data secara otomatis beradaptasi untuk menangani pola distribusi data yang tidak merata kecuali kunci partisi tunggal melebihi 1 MB/s throughput pecahan dan 1000 record per detik batas.

Dalam mode on-demand, Kinesis Data Streams membagi pecahan secara merata saat mendeteksi peningkatan lalu lintas. Namun, itu tidak mendeteksi dan mengisolasi kunci hash yang mendorong bagian yang lebih tinggi dari lalu lintas masuk ke pecahan tertentu. Jika Anda menggunakan kunci partisi yang sangat tidak rata, Anda dapat terus menerima pengecualian tulis. Untuk kasus penggunaan seperti itu, kami menyarankan Anda menggunakan mode kapasitas yang disediakan yang mendukung pemisahan pecahan granular.

Fitur mode Advantage On-Demand dan kasus penggunaan

On-Demand Advantage adalah pengaturan tingkat akun yang membuka lebih banyak kemampuan dan menyediakan struktur harga yang berbeda untuk semua aliran sesuai permintaan di Wilayah. Dalam mode ini, aliran sesuai permintaan mempertahankan fungsionalitasnya dan terus menskalakan kapasitas secara otomatis berdasarkan penggunaan data aktual. Jika Anda ingin secara proaktif menghangatkan kapasitas throughput tulis aliran, Anda dapat mengonfigurasi throughput hangat. Misalnya, jika aliran data Anda memiliki throughput tulis antara 10 MB/s dan 40 MB/s, you can expect it to handle up to 80MB/s of instant throughput increases without throttling. However, if you forecast an upcoming event to peak around 200MB/s of traffic, you can configure the stream with a warm throughput of 200MB/s untuk memastikan bahwa kapasitas tersedia saat throughput data tiba. Menggunakan throughput hangat tidak dikenakan biaya tambahan.

Manfaat lain dari mode On-Demand Advantage adalah bahwa aliran on-demand bertransisi ke struktur harga yang lebih sederhana. Dengan mode diaktifkan, akun tidak akan lagi melihat biaya tetap per aliran, dan Anda hanya akan berurusan dengan penyerapan data, pengambilan data, dan biaya retensi tambahan opsional. Setiap dimensi harga juga memiliki diskon yang signifikan dibandingkan dengan dimensi yang sesuai dalam Standar On-Demand. Lihat informasi yang lebih lengkap di struktur harga Amazon Kinesis Data Streams.

Pengambilan data fan-out yang disempurnakan juga tidak memiliki premi harga dibandingkan dengan pengambilan data standar dalam mode ini. Selain itu, dengan mode On-Demand Advantage, Anda dapat mendaftarkan hingga 50 konsumen per streaming untuk menggunakan fan-out yang ditingkatkan. Mengaktifkan On-Demand Advantage mengikat akun ke setidaknya 25 MiB/s of data ingest and 25MiB/s pengambilan data di semua aliran sesuai permintaan. Untuk akun yang memenuhi persyaratan penggunaan minimum, konsol Kinesis Data Streams memiliki pemeriksaan untuk melihat apakah pola penggunaan akun Anda cocok untuk menggunakan mode Advantage Sesuai Permintaan.

Jika penggunaan data akun Anda di bawah persyaratan, Anda akan dikenakan selisihnya sebagai kekurangan, tetapi masih akan memiliki tarif diskon yang sama. Mengaktifkan On-Demand Advantage juga memiliki periode minimum 24 jam sebelum Anda dapat menonaktifkan mode. Secara keseluruhan, On-Demand Advantage adalah cara terbaik untuk melakukan streaming dengan Kinesis Data Streams jika Anda memiliki penggunaan throughput yang konsisten mendekati atau di atas komitmen minimum, membutuhkan banyak konsumen penggemar, atau beroperasi dengan ratusan aliran data.

Fitur mode yang disediakan dan kasus penggunaan

Dengan mode yang disediakan, setelah Anda membuat aliran data, Anda dapat menskalakan kapasitas pecahan secara dinamis ke atas atau ke bawah menggunakan atau API. Konsol Manajemen AWS UpdateShardCount Anda dapat melakukan pembaruan saat ada produsen Kinesis Data Streams atau aplikasi konsumen yang menulis atau membaca data dari aliran.

Mode yang disediakan cocok untuk lalu lintas yang dapat diprediksi dengan persyaratan kapasitas yang mudah diprediksi. Anda dapat menggunakan mode yang disediakan jika Anda ingin kontrol halus atas bagaimana data didistribusikan di seluruh pecahan.

Dengan mode yang disediakan, Anda harus menentukan jumlah pecahan untuk aliran data. Untuk menentukan ukuran aliran data dengan mode yang disediakan, Anda memerlukan nilai input berikut:

  • Ukuran rata-rata catatan data yang ditulis ke aliran dalam kilobyte (KB), dibulatkan ke 1 KB (average_data_size_in_KB) terdekat.

  • Jumlah catatan data yang ditulis dan dibaca dari aliran per detik (records_per_second).

  • Jumlah konsumen, yaitu aplikasi Kinesis Data Streams yang mengkonsumsi data secara bersamaan dan independen dari stream (). number_of_consumers

  • Bandwidth tulis masuk dalam KB (incoming_write_bandwidth_in_KB), yang sama dengan average_data_size_in_KB dikalikan dengan. records_per_second

  • Bandwidth baca keluar dalam KB (outgoing_read_bandwidth_in_KB), yang sama dengan incoming_write_bandwidth_in_KB dikalikan dengan. number_of_consumers

Anda dapat menghitung jumlah pecahan (number_of_shards) yang dibutuhkan aliran Anda dengan menggunakan nilai input dalam rumus berikut.

number_of_shards = ceiling(max(incoming_write_bandwidth_in_KiB/1024, outgoing_read_bandwidth_in_KiB/2048))

Anda mungkin masih mengalami pengecualian throughput baca dan tulis dalam mode yang disediakan jika Anda tidak mengonfigurasi aliran data untuk menangani throughput puncak Anda. Dalam hal ini, Anda harus menskalakan aliran data Anda secara manual untuk mengakomodasi lalu lintas data Anda.

Anda mungkin juga mengalami pengecualian baca dan tulis jika Anda menggunakan kunci partisi yang mengarah ke distribusi data yang tidak merata dan catatan yang ditetapkan ke pecahan melebihi batasnya. Untuk mengatasi masalah ini dalam mode yang disediakan, identifikasi pecahan tersebut dan pisahkan secara manual untuk mengakomodasi lalu lintas Anda dengan lebih baik. Untuk informasi selengkapnya, lihat Menyusun Ulang Stream.

Beralih antar mode

Untuk setiap aliran data di AndaAkun AWS, Anda dapat beralih antara mode sesuai permintaan dan yang disediakan dua kali dalam 24 jam. Beralih antar mode tidak menyebabkan gangguan pada aplikasi Anda yang menggunakan aliran data ini. Anda dapat terus menulis dan membaca dari aliran data ini. Saat Anda beralih antar mode, baik dari on-demand ke provisioned atau dari provisioned ke on-demand, status stream diatur ke Update. Anda harus menunggu status aliran data untuk masuk ke Aktif sebelum Anda dapat mengubah propertinya lagi.

Saat Anda beralih dari mode kapasitas yang disediakan ke mode sesuai permintaan, aliran data Anda pada awalnya mempertahankan jumlah pecahan apa pun yang dimilikinya sebelum transisi, dan mulai saat ini, Kinesis Data Streams memantau lalu lintas data Anda dan menskalakan jumlah pecahan aliran data sesuai permintaan ini tergantung pada throughput penulisan Anda. Saat Anda beralih dari mode on-demand ke provisioned, aliran data Anda pada awalnya juga mempertahankan jumlah pecahan apa pun yang dimilikinya sebelum transisi, tetapi mulai saat ini, Anda bertanggung jawab untuk memantau dan menyesuaikan jumlah pecahan aliran data ini untuk mengakomodasi throughput tulis Anda dengan benar.

Anda dapat beralih dari mode On-Demand Standard ke On-Demand Advantage dengan mengaktifkan pengaturan level akun. Saat diaktifkan, akun berkomitmen untuk setidaknya 25 MiB/s of data ingest and 25MiB/s penggunaan pengambilan data di semua aliran sesuai permintaan di Wilayah. Setelah diaktifkan, Anda harus menunggu setidaknya 24 jam sebelum Anda dapat menonaktifkan On-Demand Advantage, tetapi Anda dapat meminta perubahan kapan saja. Jika Anda ingin beralih dari On-Demand Advantage ke On-Demand Standard, Anda harus terlebih dahulu menghapus throughput hangat yang dikonfigurasi dengan aliran permintaan.