Umum

T: Apa itu Amazon Kinesis Data Streams?

Amazon Kinesis Data Streams memungkinkan Anda membuat aplikasi kustom Anda sendiri yang memproses atau menganalisis data streaming untuk kebutuhan khusus. Anda dapat terus menambahkan berbagai jenis data seperti clickstream, log aplikasi, dan media sosial ke Amazon Kinesis data stream dari ratusan ribu sumber. Dalam hitungan detik, data akan tersedia untuk Amazon Kinesis Applications Anda untuk dibaca dan diproses dari stream tersebut.

T: Apa yang dikelola oleh Amazon Kinesis Data Streams untuk saya?

Amazon Kinesis Data Streams mengelola infrastruktur, penyimpanan, jaringan, dan konfigurasi yang diperlukan untuk melakukan streaming data pada tingkat throughput data Anda. Anda tidak perlu khawatir dengan penyediaan, penerapan, perawatan yang dijalankan pada perangkat keras, perangkat lunak, atau layanan lain untuk streaming data Anda. Selain itu, Amazon Kinesis Data Streams secara serentak menggandakan data pada tiga availability zone, yang memberikan ketersediaan dan ketahanan data yang tinggi.

T: Apa yang dapat dilakukan dengan Amazon Kinesis Data Streams?

Amazon Kinesis Data Streams bermanfaat untuk secara cepat memindahkan data dari penghasil data dan kemudian secara berkelanjutan memproses data tersebut, baik mengubah data tersebut sebelum mengeluarkan ke penyimpanan data, menjalankan metrik dan analisis secara real-time, atau mendapatkan data stream yang lebih kompleks untuk pemrosesan lebih lanjut. Berikut adalah skenario umum untuk menggunakan Amazon Kinesis Data Streams:

  • Masukan umpan balik data dan log yang dipercepat: Daripada menunggu untuk mengelompokkan data tersebut, Anda dapat membuat penghasil data Anda menggerakkan data ke Amazon Kinesis data stream sesaat setelah data tersebut dihasilkan, yang mencegah kehilangan data jika terjadi kegagalan pada penghasil data. Misalnya, log sistem dan aplikasi secara berkelanjutan dapat ditambahkan ke data stream dan tersedia untuk pemrosesan dalam hitungan detik.
  • Pelaporan dan metrik secara real time: Anda dapat mengekstrak metrik dan mengeluarkan laporan dari data Amazon Kinesis data stream secara real time. Misalnya, Amazon Kinesis Application dapat bekerja pada metrik dan pelaporan log sistem dan aplikasi saat data mengalir masuk, daripada menunggu menerima batch data.
  • Analisis data secara real time: Dengan Amazon Kinesis Data Streams, Anda dapat menjalankan analisis data streaming secara real time. Misalnya, Anda dapat menambahkan clickstream ke Amazon Kinesis data stream Anda dan membuat Amazon Kinesis Application menjalankan analisis secara real time, yang memungkinkan Anda mendapat pengetahuan tentang data pada skala menit, bukan berjam-jam atau berhari-hari.
  • Pemrosesan stream kompleks: Anda dapat membuat Directed Acyclic Graphs (DAG) Amazon Kinesis Applications dan data streams. Dalam skenario ini, satu atau beberapa Amazon Kinesis Applications dapat menambahkan data ke Amazon Kinesis data stream lain untuk pemrosesan lebih lanjut, yang memungkinkan tahap pemrosesan stream yang berkelanjutan.

T: Bagaimana cara menggunakan Amazon Kinesis Data Streams?

Setelah Anda mendaftar ke Amazon Web Services, Anda dapat mulai menggunakan Amazon Kinesis Data Streams dengan:

T: Batasan apa saja yang ada pada Amazon Kinesis Data Streams?

Throughput Amazon Kinesis data stream dirancang untuk menskalakan tanpa batas melalui peningkatan jumlah shard dalam data stream. Namun, ada batasan tertentu yang perlu Anda ingat saat menggunakan Amazon Kinesis Data Streams:

  • Secara default, Catatan stream dapat diakses hingga 24 jam dari waktu catatan tersebut ditambahkan ke stream. Anda dapat meningkatkan batas ini hingga 7 hari dengan mengaktifkan retensi data yang diperpanjang atau hingga 365 hari dengan mengaktifkan retensi data jangka panjang.
  • Ukuran maksimum blob data (muatan data sebelum pengkodean Base64) dalam satu catatan adalah 1 megabyte (MB).
  • Masing-masing shard dapat mendukung hingga 1000 catatan PUT per detik.

Untuk informasi selengkapnya tentang batas tingkat API lainnya, lihat Batas Amazon Kinesis Data Streams.

T: Bagaimana Amazon Kinesis Data Streams berbeda dari Amazon SQS?

Amazon Kinesis Data Streams memungkinkan pemrosesan big data streaming secara real time. Layanan ini memberikan pengurutan catatan, serta kemampuan untuk membaca dan/atau membalas catatan dengan urutan yang sama ke berbagai Amazon Kinesis Applications. Amazon Kinesis Client Library (KCL) mengirimkan semua rekaman untuk kunci partisi yang ditentukan ke prosesor rekaman yang sama, sehingga memudahkan untuk membangun berbagai aplikasi yang membaca dari Amazon Kinesis data stream yang sama (misalnya, untuk melakukan perhitungan, agregasi, dan pemfilteran).

Amazon Simple Queue Service (Amazon SQS) menawarkan antrean yang andal, mudah diskalakan, dan dengan host untuk menyimpan pesan saat dikirimkan antarkomputer. Amazon SQS memungkinkan Anda memindahkan data dengan mudah antarkomponen aplikasi yang didistibusikan dan membantu Anda membangun aplikasi yang pesannya diproses secara terpisah (dengan semantik ack/fail tingkat pesan), seperti alur kerja otomatis.

T: Kapan sebaiknya saya menggunakan Amazon Kinesis Data Streams, dan kapan sebaiknya saya menggunakan Amazon SQS?

Kami menyarankan Amazon Kinesis Data Streams untuk kasus penggunaan dengan persyaratan yang serupa dengan di bawah ini:

  • Perutean catatan terkait ke prosesor catatan yang sama (seperti pada MapReduce streaming). Misalnya, penghitungan dan agregasi lebih sederhana apabila semua catatan untuk kunci yang ditentukan dirutekan ke prosesor catatan yang sama.
  • Pengurutan catatan. Misalnya, Anda ingin mentransfer data log dari host aplikasi ke host pemrosesan/pengarsipan sementara mempertahankan urutan pernyataan log.
  • Kemampuan berbagai aplikasi untuk memakai stream yang sama secara bersamaan. Misalnya, Anda memiliki satu aplikasi yang memperbarui dasbor secara real time dan aplikasi lain yang mengarsip data ke Amazon Redshift. Anda menginginkan kedua aplikasi untuk memakai data dari stream yang sama secara bersamaan dan terpisah.
  • Kemampuan untuk memakai catatan dengan urutan yang sama beberapa jam kemudian. Misalnya, Anda memiliki aplikasi penagihan dan aplikasi audit yang berjalan beberapa jam setelah aplikasi penagihan. Karena Amazon Kinesis Data Streams menyimpan data hingga 365 hari, Anda dapat menjalankan aplikasi audit hingga 365 hari setelah aplikasi penagihan.

Kami merekomendasikan Amazon SQS untuk kasus penggunaan dengan persyaratan yang serupa dengan di bawah ini:

  • Semantik perpesanan (seperti ack/fail tingkat pesan) dan waktu henti visibilitas. Misalnya, Anda memiliki antrean item kerja dan ingin melacak keberhasilan penyelesaian masing-masing item secara terpisah. Amazon SQS melacak ack/fail, sehingga aplikasi tidak perlu mempertahankan titik pemeriksaan/kursor yang persisten. Amazon SQS akan menghapus pesan yang ack dan mengirimkan kembali pesan yang gagal setelah waktu henti visibilitas dikonfigurasi.
  • Penundaan pesan tunggal. Misalnya, Anda memiliki antrean tugas dan perlu menjadwalkan tugas tunggal dengan penundaan. Dengan Amazon SQS, Anda dapat mengonfigurasikan pesan tunggal agar memiliki penundaan hingga 15 menit.
  • Peningkatan konkurensi/throughput secara dinamis pada waktu baca. Misalnya, Anda memiliki antrean kerja dan ingin menambahkan lebih banyak pembaca sampai kumpulan kerja dihapus. Dengan Amazon Kinesis Data Streams, Anda dapat menaikkan skala ke jumlah shard yang mencukupi (namun perlu diperhatikan, bahwa Anda perlu menyediakan shard yang cukup terlebih dahulu).
  • Mendorong kemampuan Amazon SQS untuk menskalakan secara transparan. Misalnya, Anda melakukan bufer permintaan dan memuat perubahan sebagai akibat dari lonjakan muatan yang kadang terjadi atau pertumbuhan bisnis Anda yang alami. Dikarenakan setiap permintaan yang dibufer dapat diproses secara terpisah, Amazon SQS dapat menskalakan secara transparan untuk menangani muatan tanpa instruksi penyediaan apa pun dari Anda.

T: Apakah Amazon Kinesis Data Streams mendukung pendaftaran skema?

Ya, klien Amazon Kinesis Data Streams dapat menggunakan Registri Skema AWS Glue, fitur nirserver AWS Glue, baik melalui Kinesis Producer Library (KPL) dan Kinesis Client Libraries (KCL) atau melalui API Registri Skema AWS Glue di AWS Java SDK. Registri Skema tersedia tanpa biaya tambahan. Kunjungi dokumentasi pengguna Registri Skema untuk memulai dan mempelajari lebih lanjut.

Konsep inti

T: Apa yang dimaksud dengan shard?

Shard adalah unit throughput dasar pada Amazon Kinesis data stream. Satu shard menyediakan kapasitas input data sebesar 1 MB/dtk dan output data sebesar 2 MB/dtk. Satu shard dapat mendukung hingga 1000 catatan PUT per detik. Anda perlu menentukan jumlah shard yang diperlukan pada saat membuat data stream. Misalnya, Anda dapat membuat data stream dengan dua shard. Data stream ini memiliki throughput input data sebesar 2 MB/dtk dan output data sebesar 4 MB/dtk, dan memungkinkan hingga 2000 catatan PUT per detik. Anda dapat memantau metrik tingkat shard di Amazon Kinesis Data Streams dan menambahkan atau menghapus shard dari data stream Anda secara dinamis saat throughput data Anda berubah dengan melakukan resharding pada data stream.

T: Apa yang dimaksud dengan catatan?

Catatan adalah unit data dalam Amazon Kinesis data stream. Catatan terdiri dari nomor urutan, kunci partisi, dan blob data. Blob data adalah data yang menjadi perhatian yang ditambahkan oleh penghasil data Anda ke data stream. Ukuran blob data maksimum (muatan data sebelum pengkodean Base64) adalah 1 megabyte (MB).

T: Apa yang dimaksud dengan kunci partisi?

Kunci partisi digunakan untuk memisahkan dan merutekan catatan ke shard data stream yang berbeda. Kunci partisi ditentukan oleh penghasil data Anda pada saat menambahkan data ke Amazon Kinesis data stream. Misalnya, anggaplah Anda memiliki data stream dengan dua shard (shard 1 dan shard 2). Anda dapat mengonfigurasi penghasil data Anda untuk menggunakan dua kunci partisi (kunci A dan kunci B) sehingga semua catatan dengan kunci A ditambahkan ke shard 1 dan semua catatan dengan kunci B ditambahkan ke shard 2.

T: Apa yang dimaksud dengan nomor urutan?

Nomor urutan adalah pengidentifikasi unik untuk masing-masing catatan. Nomor urutan ditetapkan oleh Amazon Kinesis pada saat penghasil data mamanggil operasi PutRecord atau PutRecords untuk menambahkan data ke Amazon Kinesis data stream. Nomor urutan untuk kunci partisi yang sama umumnya meningkat seiring waktu; semakin lama periode waktu antara permintaan PutRecord atau PutRecords, maka semakin besar nomor urutannya.

Membuat data streams

T: Bagaimana cara membuat Amazon Kinesis data stream?

Setelah Anda mendaftar ke Amazon Web Services, Anda dapat membuat Amazon Kinesis data stream baik melalui operasi Amazon Kinesis Management Console atau CreateStream.

T: Bagaimana cara menentukan throughput Amazon Kinesis data stream saya?

Throughput Amazon Kinesis data stream ditentukan oleh jumlah shard dalam data stream. Ikuti langkah-langkah di bawah ini untuk memperkirakan jumlah shard awal yang diperlukan oleh data stream Anda. Perlu diperhatikan bahwa Anda dapat menyesuaikan jumlah shard secara dinamis dalam data stream Anda melalui resharding.

  1. Perkirakan ukuran catatan rata-rata yang dibuat ke data stream dalam kilobyte (KB), yang dibulatkan hingga mendekati 1 KB. (average_data_size_in_KB)
  2. Perkirakan jumlah catatan yang dibuat ke data stream per detik. (number_of_records_per_second)
  3. Tentukan jumlah Amazon Kinesis Applications yang memakai data secara bersamaan dan secara terpisah dari data stream. (number_of_consumers)
  4. Hitung bandwidth tulis yang masuk dalam KB (incoming_write_bandwidth_in_KB), yaitu sama dengan average_data_size_in_KB dikali number_of_records_per_seconds.
  5. Hitung bandwidth baca yang keluar dalam KB (outgoing_read_bandwidth_in_KB), yaitu sama dengan incoming_write_bandwidth_in_KB dikali number_of_consumers.

Selanjutnya Anda dapat menghitung jumlah shard (number_of_shards) yang diperlukan oleh data stream Anda menggunakan rumus berikut:

number_of_shards = maks (incoming_write_bandwidth_in_KB/1000, outgoing_read_bandwidth_in_KB/2000)

T: Berapa throughput minimum yang dapat saya minta untuk Amazon Kinesis data stream saya?

Throughput Amazon Kinesis data stream menskalakan menurut unit shard. Satu shard tunggal adalah throughput data stream terkecil, yang menyediakan input data sebesar 1 MB/dtk dan output data sebesar 2 MB/dtk.

T: Berapa throughput maksimum yang dapat saya minta untuk Amazon Kinesis data stream saya?

Throughput Amazon Kinesis data stream dirancang untuk menskalakan tanpa batas. Kuota shard secara default adalah 500 shard per stream untuk Wilayah AWS berikut: AS Timur (Virginia Utara), AS Barat (Oregon), dan Eropa (Irlandia). Untuk semua Wilayah AWS lainnya, kuota shard secara default adalah 200 shard per stream. Anda dapat meminta penambahan kuota shard menggunakan AWS konsol Service Quotas.

T: Bagaimana ukuran catatan memengaruhi throughput Amazon Kinesis data stream saya?

Shard memberikan kecepatan data input 1 MB/dtk dan mendukung hingga 1000 catatan PUT per detik. Sehingga, jika ukuran catatan kurang dari 1 KB, kecepatan input data yang sebenarnya akan kurang dari 1 MB/dtk, yang dibatasi oleh jumlah catatan PUT maksimum per detik.

Menambahkan data ke Kinesis data streams

T: Bagaimana cara menambahkan data ke Amazon Kinesis data stream saya?

Anda dapat menambahkan data ke Amazon Kinesis data stream melalui operasi PutRecord dan PutRecords, Amazon Kinesis Producer Library (KPL), atau Amazon Kinesis Agent.

T: Apa perbedaan antara PutRecord dan PutRecords?

Operasi PutRecord memungkinkan catatan data tunggal dalam panggilan API dan operasi PutRecords memungkinkan berbagai catatan data dalam panggilan API. Untuk informasi selengkapnya tentang operasi PutRecord dan PutRecords, lihat PutRecord dan PutRecords.

T: Apa itu Amazon Kinesis Producer Library (KPL)?

Amazon Kinesis Producer Library (KPL) mudah digunakan dan merupakan pustaka yang sangat dapat dikonfigurasi yang membantu Anda meletakkan data ke Amazon Kinesis data stream. KPL memberikan antarmuka yang sederhana, asinkronis, dan andal yang memungkinkan Anda mencapai throughput penghasil yang tinggi dengan cepat dengan sumber daya klien minimal.

T: Bahasa pemrograman atau platform apa yang dapat saya gunakan untuk mengakses API Amazon Kinesis?

API Amazon Kinesis tersedia di SDK Amazon Web Services. Untuk melihat daftar bahasa pemrograman atau platform untuk SDK Amazon Web Services, lihat Alat untuk Amazon Web Services.

T: Amazon Kinesis Producer Library (KPL) tersedia dalam bahasa pemrograman apa saja?

Inti Amazon Kinesis Producer Library (KPL) dibuat dengan C++ module dan dapat digabungkan untuk bekerja pada platform apa saja dengan C++ compiler saat ini. Pustaka saat ini tersedia dalam antarmuka Java. Kami berharap dapat menambahkan dukungan untuk bahasa pemrograman lainnya.

T: Apa itu Amazon Kinesis Agent?

Amazon Kinesis Agent adalah aplikasi Java bawaan yang menawarkan cara mudah untuk mengumpulkan dan mengirimkan data ke Amazon Kinesis data stream Anda. Anda dapat menginstal agen ini di lingkungan server berbasis Linux seperti server web, server log, dan server database. Agen ini memantau file tertentu dan mengirim data ke data stream Anda. Untuk informasi selengkapnya, lihat Menulis dengan Agents.

T: Platform apa yang didukung oleh Amazon Kinesis Agent?

Amazon Kinesis Agent saat ini mendukung Amazon Linux atau Red Hat Enterprise Linux.

T: Di mana saya bisa mendapatkan Amazon Kinesis Agent?

Anda dapat mengunduh dan menginstal Amazon Kinesis Agent menggunakan perintah dan tautan berikut:

Di Amazon Linux: sudo yum install –y aws-kinesis-agent

Di Red Hat Enterprise Linux: sudo yum install –y https://s3.amazonaws.com/streaming-data-agent/aws-kinesis-agent-latest.amzn1.noarch.rpm

Dari GitHub: awlabs/amazon-kinesis-agent

T: Bagaimana cara menggunakan Amazon Kinesis Agent?

Setelah menginstal Amazon Kinesis Agent di server, Anda mengonfigurasikan untuk memantau file tertentu pada cakram dan kemudian terus mengirimkan data baru ke Amazon Kinesis data stream Anda. Untuk informasi selengkapnya, lihat Menulis dengan Agents.

T: Apa yang terjadi jika batas kapasitas Amazon Kinesis data stream berlebih pada saat penghasil data menambahkan data ke data stream?

Batas kapasitas Amazon Kinesis data stream ditentukan oleh jumlah shard dalam data stream. Batas tersebut dapat berlebih baik oleh throughput data atau jumlah catatan PUT. Sementara batas kapasitas berlebih, panggilan letakkan data akan ditolak kecuali ProvisionedThroughputExceeded. Jika ini terjadi karena kenaikan sementara pada laju data input pada data stream, percobaan ulang oleh penghasil data akhirnya akan menyelesaikan permintaan. Jika ini terjadi karena kenaikan yang berlangsung lama pada laju data input pada data stream, sebaiknya Anda menaikkan jumlah shard dalam data stream untuk memberikan kapasitas yang cukup bagi panggilan letakkan data agar berhasil dengan konsisten. Dalam kedua kasus, metrik Amazon CloudWatch memungkinkan Anda mempelajari tentang perubahan laju data input pada data stream dan terjadinya pengecualian ProvisionedThroughputExceeded.

T: Data apa yang dihitung terhadap throughput data Amazon Kinesis data stream selama panggilan PutRecord atau PutRecords?

Blob data, kunci partisi, dan nama data stream Anda adalah parameter yang diperlukan pada panggilan PutRecord atau PutRecords. Ukuran blob data Anda (sebelum pengkodean Base64) dan kunci partisi akan dihitung terhadap throughput data Amazon Kinesis data stream Anda, yang ditentukan oleh jumlah shard dalam data stream.

Retensi data jangka panjang dan Diperpanjang

T. Bagaimana cara saya memilih periode retensi untuk stream?

Secara default periode retensi 24 jam mencakup skenario di mana kelambatan intermiten dalam pemrosesan memerlukan pengejaran secara real-time. Retensi 7 hari memungkinkan Anda memproses ulang data hingga 7 hari untuk mengatasi potensi kehilangan data hilir. Retensi data jangka panjang yang lebih dari 7 hari dan hingga 365 hari memungkinkan Anda memproses ulang data lama untuk kasus penggunaan seperti pengujian kembali algoritme, pengisian ulang penyimpanan data, dan pengauditan.

T. Dapatkah saya menggunakan KDS API yang ada untuk membaca data yang lebih lama dari 7 hari?

Ya. Anda dapat menggunakan API getShardIterator, GetRecords, dan SubscribeToShard yang sama untuk membaca data yang disimpan selama lebih dari 7 hari. Konsumen dapat memindahkan iterator ke lokasi yang diinginkan di stream, mengambil peta shard (termasuk terbuka dan tertutup), dan membaca catatan.

T: Bagaimana cara kerja penagihan untuk retensi data yang diperpanjang?

Setelah Anda mengaktifkan retensi data yang diperpanjang hingga 7 hari, Anda akan dikenai tarif tambahan pada setiap jam shard yang ditimbulkan oleh data stream Anda.

T: Bagaimana cara kerja penagihan untuk retensi data jangka panjang?

Untuk data yang lebih lama dari 7 hari, Anda membayar tarif rendah GB-bulan yang diukur per byte data yang disimpan. Anda terkena biaya retensi data yang diperpanjang untuk retensi 7 hari pertama. Tidak ada pembulatan muatan atau penyimpanan minimum untuk retensi data jangka panjang. Jika Anda mengaktifkan enkripsi sisi server, tambahan 41 byte muatan enkripsi ditambahkan ke setiap muatan pelanggan untuk pengukuran penyimpanan data jangka panjang.

T: Bagaimana cara kerja penagihan untuk pengambilan data jangka panjang?

Untuk data yang lebih lama dari 7 hari, Anda membayar tarif rendah per GB yang diukur per byte data yang diambil oleh konsumen standar menggunakan GetRecords API. Tidak ada pembulatan muatan atau pengiriman minimum. Tidak ada biaya pengambilan untuk data yang disimpan kurang dari 7 hari.

Fan-out yang ditingkatkan

T: Apa itu fan-out yang ditingkatkan?

Fan-out yang ditingkatkan adalah fitur opsional untuk pelanggan Kinesis Data Streams yang memberikan pipa throughput yang logis sebesar 2 MB/dtk antara pelanggan dan shard. Ini memungkinkan pelanggan menskalakan jumlah konsumen yang membaca dari data stream secara paralel, sementara tetap mempertahankan kinerja yang tinggi.

T: Bagaimana cara pelanggan menggunakan fan-out yang ditingkatkan?

Pelanggan harus terlebih dahulu mendaftarkan diri dengan layanan Kinesis Data Streams. Secara default, registrasi pelanggan mengaktifkan fan-out yang ditingkatkan. Jika Anda menggunakan KCL, KCL versi 2.x memperhatikan untuk mendaftarkan pelanggan Anda secara otomatis, dan menggunakan nama aplikasi KCL seperti nama pelanggan tersebut. Setelah didaftarkan, semua pelanggan yang terdaftar akan memiliki pipa throughput fan-out yang ditingkatkan dan logis yang diberikan untuk mereka. Selanjutnya, pelanggan menggunakan API HTTP/2 SubscribeToShard untuk mengambil data dalam pipa throughput ini. API HTTP/1 GetRecords saat ini tidak mendukung fan-out yang ditingkatkan, sehingga Anda perlu memutakhirkan ke KCL 2.x, atau sebagai alternatif daftarkan pelanggan Anda dan minta mereka untuk memanggil API SubscribeToShard.

T: Bagaimana fan-out yang ditingkatkan digunakan oleh pelanggan?

Pelanggan menggunakan fan-out yang ditingkatkan dengan mengambil data dengan API SubscribeToShard. Nama pelanggan yang terdaftar digunakan dalam API SubscribeToShard, yang menyebabkan penggunaan manfaat fan-out yang ditingkatkan tersedia bagi pelanggan yang terdaftar.

T: Kapan sebaiknya saya menggunakan fan-out yang ditingkatkan?
Anda sebaiknya menggunakan fan-out yang ditingkatkan jika Anda memiliki, ingin memiliki, banyak pelanggan yang mengambil data dari stream secara paralel, atau jika Anda memiliki setidaknya satu pelanggan yang mewajibkan penggunaan API SubscribeToShard untuk menyediakan kecepatan pengiriman data sub-200mdtk antara penghasil dan pelanggan.

T: Apakah saya dapat memiliki pelanggan yang menggunakan fan-out yang ditingkatkan, dan lainnya tidak?

Ya, Anda dapat memiliki berbagai pelanggan yang menggunakan fan-out yang ditingkatkan dan lainnya tidak menggunakan fan-out yang ditingkatkan pada waktu yang bersamaan. Penggunaan fan-out yang ditingkatkan tidak memengaruhi batas shard pada penggunaan GetRecords tradisional.

T: Apakah terdapat batas pada jumlah pelanggan yang menggunakan fan-out yang ditingkatkan pada stream tertentu?

Terdapat batas default sebanyak 20 pelanggan yang menggunakan fan-out yang ditingkatkan per stream data. Perlu diingat bahwa Anda dapat memiliki lebih dari 20 pelanggan total yang membaca dari stream dengan memiliki 20 pelanggan yang menggunakan fan-out yang ditingkatkan dan pelanggan lain yang tidak menggunakan fan-out yang ditingkatkan pada waktu yang bersamaan.

T: Bagaimana cara pelanggan mendaftar untuk menggunakan fan-out yang ditingkatkan dan API HTTP/2 SubscribeToShard?

Kami menyarankan Anda menggunakan KCL 2.x, yang akan secara otomatis mendaftarkan pelanggan Anda dan menggunakan fan-out yang ditingkatkan dan API HTTP/2 SubscribeToShard. Jika tidak, Anda dapat secara manual mendaftarkan pelanggan yang menggunakan API RegisterStreamConsumer dan kemudian Anda dapat menggunakan API SubscribeToShard dengan nama pelanggan yang Anda daftarkan.

T: Apakah terdapat biaya yang terkait dengan penggunaan fan-out yang ditingkatkan?

Ya, terdapat biaya per jam sesuai permintaan untuk setiap kombinasi shard dalam stream dan pelanggan (jam pelanggan-shard) yang terdaftar menggunakan fan-out yang ditingkatkan, selain biaya pengambilan data untuk setiap GB yang diambil. Lihat halaman harga Kinesis Data Streams untuk detail selengkapnya.

T: Bagaimana jam pelanggan-shard dihitung?

Jam pelanggan-shard dihitung dengan mengalikan jumlah pelanggan stream yang terdaftar dengan jumlah shard dalam stream. Misalnya, jika biaya jam pelanggan-shard sebesar 0,015 USD, untuk 10 data stream shard, pelanggan yang menggunakan fan-out yang ditingkatkan ini akan dapat membaca dari 10 shard, dan karenanya biaya jam pelanggan-shard yang dikenakan sebesar 0,15 USD per jam (1 pelanggan x 10 shard x 0,015 USD per jam pelanggan-shard). Jika terdapat dua pelanggan yang terdaftar untuk fan-out yang ditingkatkan secara bersamaan, biaya jam pelanggan-shard sebesar 0,30 USD per jam (2 pelanggan x 10 shard x 0,015 USD).

T: Apakah penagihan jam pelanggan-shard untuk fan-out yang ditingkatkan secara otomatis melakukan prorata jika saya menghentikan atau memulai pelanggan dalam satu jam tersebut?

Ya, Anda hanya akan membayar untuk bagian jam yang diprorata pelanggan terdaftar untuk menggunakan fan-out yang ditingkatkan.

T: Bagaimana cara kerja penagihan untuk pengambilan data fan-out yang ditingkatkan?

Anda membayar murah per laju GB yang dihitung per byte data yang diambil oleh pelanggan yang menggunakan fan-out yang ditingkatkan. Tidak ada pembulatan muatan atau pengiriman minimum. Tidak ada biaya tambahan untuk pengambilan data jangka panjang untuk konsumen fan-out yang ditingkatkan.

T: Apakah saya perlu mengganti produser atau data stream saya untuk menggunakan fan-out yang ditingkatkan?

Tidak, fan-out yang ditingkatkan dapat diaktifkan tanpa memengaruhi penghasil data atau data stream.

Membaca dan memproses data dari Kinesis data streams

T: Apa itu Amazon Kinesis Application?

Amazon Kinesis Application adalah konsumen data yang membaca dan memproses data dari Amazon Kinesis data stream. Anda dapat membangun aplikasi baik dengan Amazon Kinesis Data Analytics, Amazon Kinesis API, atau Amazon Kinesis Client Library (KCL).

T: Apa itu Amazon Kinesis Client Library (KCL)?

Amazon Kinesis Client Library (KCL) untuk Java | Python | Ruby | Node.js | .NET adalah pustaka bawaan yang membantu Anda membangun Amazon Kinesis Applications dengan mudah untuk membaca dan memproses data dari Amazon Kinesis data stream.

KCL menangani masalah kompleks seperti menyesuaikan dengan perubahan volume data stream, menyeimbangkan muatan streaming data, mengoordinasikan layanan yang didistribusikan, dan memproses data dengan toleransi terhadap kegagalan. KCL memungkinkan Anda berfokus pada logika bisnis pada saat membuat aplikasi. KCL 2.x mendukung API HTTP/1 GetRecords dan HTTP/2 SubscribeToShard dengan fan-out yang ditingkatkan untuk mengambil data dari stream. KCL 1.x tidak mendukung API SubscribeToShard atau fan-out yang ditingkatkan.

T: Bagaimana cara memutakhirkan dari KCL 1.x ke 2.x untuk menggunakan SubscribeToShard dan fan-out yang ditingkatkan?

Kunjungi dokumentasi pengguna Kinesis Data Streams untuk mempelajari cara memutakhirkan dari KCL 1.x ke KCL 2.x.

T: Apa itu API SubscribeToShard?

API SubscribeToShard adalah API dengan kinerja tinggi yang mendorong data dari shard ke pelanggan pada koneksi yang persisten tanpa siklus permintaan dari klien. API SubscribeToShard menggunakan protokol HTTP/2 untuk mengirimkan data ke pelanggan yang terdaftar kapan pun data baru masuk ke shard, biasanya dalam 70mdtk, yang menawarkan ~65% pengiriman yang lebih cepat dibandingkan dengan API GetRecords. Pelanggan akan menikmati pengiriman cepat bahkan pada saat berbagai pelanggan yang terdaftar membaca dari shard yang sama.

T: Apakah saya dapat menggunakan SubscribeToShard tanpa menggunakan fan-out yang ditingkatkan?

Tidak, SubscribeToShard mengharuskan penggunaan fan-out yang ditingkatkan, artinya Anda juga perlu mendaftarkan pelanggan Anda dengan layanan Kinesis Data Streams sebelum Anda dapat menggunakan SubscribeToShard.

T: Berapa lama koneksi persisten SubscribeToShard berlangsung?

Koneksi persisten dapat berlangsung hingga 5 menit.

T: Apakah Kinesis Client Library (KCL) mendukung SubscribeToShard?

Ya, versi KCL 2.x menggunakan SubscribeToShard dan fan-out yang ditingkatkan untuk mengambil data dengan kinerja tinggi dari Kinesis data stream.

T: Apakah terdapat biaya yang terkait dengan penggunaan SubscribeToShard?

Tidak, tidak terdapat biaya tambahan terkait dengan SubscribeToShard, tetapi Anda harus menggunakan SubscribeToShard dengan fan-out yang ditingkatkan yang memiliki biaya per jam tambahan untuk setiap kombinasi pelanggan-shard dan per GB data yag dikirimkan dengan fan-out yang ditingkatkan.

T: Apakah saya perlu menggunakan fan-out yang ditingkatkan jika saya ingin menggunakan SubscribeToShard?

Ya, untuk menggunakan SubscribeToShard Anda perlu mendaftarkan pelanggan Anda, dan registrasi tersebut mengaktifkan fan-out yang ditingkatkan. Secara default, pelanggan Anda akan menggunakan fan-out yang ditingkatkan secara otomatis apabila data diambil melalui SubscribeToShard.

T: Apa itu Amazon Kinesis Connector Library?

Amazon Kinesis Connector Library adalah pustaka bawaan yang membantu Anda mengintegrasikan Amazon Kinesis Data Streams dengan layanan AWS lain dan alat dari pihak ketiga secara mudah. Amazon Kinesis Client Library (KCL) untuk Java | Python | Ruby | Node.js | diperlukan .NET untuk menggunakan Amazon Kinesis Connector Library. Versi pustaka saat ini memberikan konektor ke Amazon DynamoDB, Amazon Redshift, Amazon S3, dan Elasticsearch. Pustaka ini juga mencakup konektor sampel pada masing-masing tipe, ditambah dengan Apache Ant yang membuat file untuk menjalankan sampel tersebut.

T: Apa itu Amazon Kinesis Storm Spout?

Amazon Kinesis Storm Spout adalah pustaka bawaan yang membantu Anda mengintegrasikan Amazon Kinesis Data Streams dengan Apache Storm secara mudah. Versi Amazon Kinesis Storm Spout saat ini mengambil data dari Amazon Kinesis data stream dan mengeluarkannya sebagai tuple. Anda akan menambahkan spout ke topologi Storm Anda untuk mendorong Amazon Kinesis Data Streams sebagai layanan balasan, penyimpanan, dan penangkap stream yang andal dan fleksibel.

T: Amazon Kinesis Client Library (KCL), Amazon Kinesis Connector Library, dan Amazon Kinesis Storm Spout tersedia dalam bahasa pemrograman apa saja?

Amazon Kinesis Client Library (KCL) saat ini tersedia dalam Java, Python, Ruby, Node.js, dan .NET. Amazon Kinesis Connector Library dan Amazon Kinesis Storm Spout saat ini tersedia dalam Java. Kami berharap dapat menambahkan dukungan untuk bahasa pemrograman lainnya.

T: Apakah saya harus menggunakan Amazon Kinesis Client Library (KCL) untuk Amazon Kinesis Application saya?

Tidak, Anda juga dapat menggunakan API Amazon Kinesis untuk membuat Amazon Kinesis Application. Namun, kami menyarankan untuk menggunakan Amazon Kinesis Client Library (KCL) untuk Java | Python | Ruby | Node.js | .NET jika berlaku karena layanan ini menjalankan tugas berat dengan pemrosesan streaming yang didistribusikan, membuatnya lebih produktif untuk mengembangkan aplikasi.

T: Bagaimana Amazon Kinesis Client Library (KCL) berinteraksi dengan Amazon Kinesis Application?

Amazon Kinesis Client Library (KCL) untuk Java | Python | Ruby | Node.js | .NET berperan sebagai perantara antara Amazon Kinesis Data Streams dan Amazon Kinesis Application Anda. KCL menggunakan antarmuka IRecordProcessor untuk berkomunikasi dengan aplikasi Anda. Aplikasi Anda menerapkan antarmuka ini, dan KCL memanggil kode aplikasi dengan menggunakan metode dalam antamuka ini.

Untuk informasi selengkapnya tentang pembuatan aplikasi dengan KCL, lihat Mengembangkan Aplikasi Pelanggan untuk Amazon Kinesis Menggunakan Amazon Kinesis Client Library.

T: Apa itu pekerja dan prosesor catatan yang dihasilkan dengan Amazon Kinesis Client Library (KCL)?

Amazon Kinesis Application dapat memiliki berbagai instans aplikasi dan pekerja adalah unit pemrosesan yang memetakan ke masing-masing instans aplikasi. Prosesor catatan adalah unit pemrosesan yang memproses data dari shard Amazon Kinesis data stream. Satu pekerja memetakan ke satu atau beberapa prosesor catatan. Satu prosesor catatan memetakan ke satu shard dan memproses catatan dari shard tersebut.

Pada awalnya, aplikasi memanggil Amazon Kinesis Client Library (KCL) untuk Java | Python | Ruby | Node.js | .NET untuk menginisiasi pekerja. Panggilan ini memberikan KCL informasi konfigurasi aplikasi, seperti nama data stream dan kredensial AWS. Panggilan ini juga melalui referensi ke implementasi IRecordProcessorFactory. KCL menggunakan perusahaan ini untuk membuat prosesor catatan baru jika diperlukan untuk memproses data dari data stream. KCL berkomunikasi dengan prosesor catatan ini menggunakan antarmuka IRecordProcessor.

T: Bagaimana cara Amazon Kinesis Client Library (KCL) tetap melacak catatan data yang diproses oleh Amazon Kinesis Application?

Amazon Kinesis Client Library (KCL) untuk Java | Python | Ruby | Node.js | .NET secara otomatis membuat tabel Amazon DynamoDB untuk setiap Amazon Kinesis Application untuk melacak dan mempertahankan informasi kondisi seperti aktivitas resharding dan titik pemeriksaan nomor urutan. Tabel DynamoDB memiliki nama yang sama dengan aplikasi sehingga Anda perlu memastikan bahwa nama aplikasi Anda tidak bertentangan dengan tabel DynamoDB yang ada pada akun yang sama di dalam wilayah yang sama.

Semua pekerja yang terkait dengan nama aplikasi yang sama dianggap bekerja bersama pada Amazon Kinesis data stream yang sama. Jika Anda menjalankan instans tambahan pada kode aplikasi yang sama, tetapi dengan nama aplikasi berbeda, KCL memperlakukan instans kedua sebagai aplikasi yang seluruhnya terpisah juga beroperasi pada data stream yang sama.

Perlu diperhatikan bahwa akun Anda akan dikenai biaya untuk biaya yang terkait dengan tabel Amazon DynamoDB selain biaya yang terkait dengan Amazon Kinesis Data Streams.

Untuk informasi selengkapnya tentang bagaimana KCL melacak kondisi aplikasi, lihat Melacak kondisi Amazon Kinesis Application.

T: Bagaimana cara menaikkan skala kapasitas pemrosesan Amazon Kinesis Application saya secara otomatis menggunakan Amazon Kinesis Client Library (KCL)?

Anda dapat membuat berbagai instans Amazon Kinesis Application Anda dan membuat instans aplikasi ini berjalan pada serangkaian instans Amazon EC2 yang merupakan bagian dari grup Auto Scaling. Saat permintaan pemrosesan naik, instans Amazon EC2 yang menjalankan instans aplikasi Anda akan secara otomatis diinstansiasi. Amazon Kinesis Client Library (KCL) untuk Java | Python | Ruby | Node.js | .NET akan menghasilkan pekerja untuk instans baru ini dan secara otomatis memindahkan prosesor catatan dari instans yang ada yang kelebihan muatan ke instans baru ini.

T: Mengapa panggilan GetRecords mengembalikan hasil kosong sementara terdapat data dalam Amazon Kinesis data stream saya?

Satu alasan yang memungkinkan adalah tidak terdapat catatan pada posisi yang ditentukan oleh iterator shard saat ini. Hal ini dapat terjadi bahkan jika Anda menggunakan TRIM_HORIZON sebagai tipe iterator shard. Amazon Kinesis data stream merepresentasikan streaming data berkelanjutan. Anda sebaiknya memanggil operasi GetRecords dalam loop dan catatan akan dikembalikan ketika iterator shard berlanjut ke posisi di mana catatan disimpan.

T: Apa itu ApproximateArrivalTimestamp yang dikembalikan dalam operasi GetRecords?

Masing-masing catatan mencakup nilai yang disebut ApproximateArrivalTimestamp. Nilai ini diatur ketika catatan berhasil diterima dan disimpan oleh Amazon Kinesis. Timestamp ini memiliki presisi milidetik dan tidak ada jaminan mengenai akurasi timestamp. Misalnya, catatan dalam shard atau pada data stream mungkin memiliki timestamp yang rusak.

T: Apa yang terjadi jika batas kapasitas Amazon Kinesis data stream terlampaui pada saat Amazon Kinesis Application membaca data dari data stream?

Batas kapasitas Amazon Kinesis data stream ditentukan oleh jumlah shard dalam data stream. Batas tersebut dapat terlampaui baik oleh throughput data atau jumlah panggilan baca data. Ketika batas kapasitas terlampaui, panggilan baca data akan ditolak dengan pengecualian ProvisionedThroughputExceeded. Jika ini terjadi karena kenaikan sementara pada laju data output pada data stream, percobaan ulang oleh Amazon Kinesis Application akhirnya akan membuat penyelesaian permintaan. Jika ini terjadi karena kenaikan yang berlangsung lama pada laju data output pada data stream, sebaiknya Anda menaikkan jumlah shard dalam data stream untuk memberikan kapasitas yang cukup bagi panggilan baca data agar berhasil dengan konsisten. Dalam kedua kasus, metrik Amazon CloudWatch memungkinkan Anda mempelajari tentang perubahan laju data output pada data stream dan terjadinya pengecualian ProvisionedThroughputExceeded.

Mengelola Kinesis data streams

T: Bagaimana cara mengubah throughput Amazon Kinesis data stream saya?

Ada dua cara untuk mengubah throughput data stream Anda. Anda dapat menggunakan API UpdateShardCount atau AWS Management Console untuk menskalakan jumlah shard dalam data stream, atau Anda dapat mengubah throughput Amazon Kinesis data stream dengan menyesuaikan jumlah shard dalam data stream (resharding).

T: Berapa lama waktu yang diperlukan untuk mengubah throughput Amazon Kinesis data stream saya dengan UpdateShardCount atau AWS Management Console?

Permintaan penskalaan yang umum mungkin memerlukan waktu beberapa menit untuk selesai. Permintaan penskalaan yang lebih besar akan memerlukan waktu yang lebih lama dari permintaan penskalaan yang lebih kecil.

T: Batasan apa yang dimiliki UpdateShardCount?

Untuk informasi tentang batasan UpdateShardCount, baca Referensi API Layanan Amazon Kinesis Data Streams.

T: Apakah Amazon Kinesis Data Streams tetap tersedia jika saya mengubah throughput Amazon Kinesis data stream menggunakan UpdateShardCount atau melalui resharding?

Ya. Anda dapat terus menambahkan data ke dan mambaca data dari Amazon Kinesis data stream Anda saat Anda menggunakan UpdateShardCount atau melakukan resharding untuk mengubah throughput data stream.

T: Apa itu resharding?

Resharding adalah proses yang digunakan untuk menskalakan data stream Anda menggunakan serangkaian pembagian atau penggabungan shard. Dalam pembagian shard, shard tunggal dibagi menjadi dua shard, yang menaikkan throughput data stream. Dalam penggabungan shard, dua shard digabungkan menjadi shard tunggal, yang menurunkan throughput data stream. Untuk informasi selengkapnya, baca Melakukan Resharding Data Stream di panduan pengembang Amazon Kinesis Data Streams.

T: Seberapa sering dan seberapa lama waktu yang diperlukan untuk mengubah throughput Amazon Kinesis data stream saya dengan melakukan resharding?

Operasi resharding seperti pembagian shard atau penggabungan shard memerlukan waktu beberapa detik. Anda hanya dapat melakukan satu operasi resharding dalam satu waktu. Sehingga, untuk Amazon Kinesis data stream dengan hanya satu shard, akan memerlukan waktu beberapa detik untuk menggandakan throughput dengan membagi satu shard. Untuk data stream dengan 1000 shard, akan memerlukan waktu 30.000 detik (8,3 jam) untuk menggandakan throughput dengan membagi 1000 shard. Kami menyarankan untuk menaikkan throughput data stream Anda sebelumnya jika throughput tambahan diperlukan.

T: Bagaimana cara mengubah periode retensi data Amazon Kinesis data stream saya?

Amazon Kinesis menyimpan data Anda selama 24 jam secara default. Anda dapat meningkatkan periode retensi data hingga 7 hari dengan mengaktifkan retensi data yang diperpanjang atau hingga 365 dengan mengaktifkan retensi data jangka panjang menggunakan konsol, CLI, atau panggilan API.

Untuk informasi selengkapnya tentang mengubah periode retensi data, lihat Mengubah Periode Retensi Data.

T: Apakah ada API baru untuk lebih membantu membaca data lama?

Ya. Ada peningkatan API untuk ListShards, GetRecords, dan SubscribeToShard API. Anda dapat menggunakan opsi pemfilteran baru dengan parameter Stempel Waktu yang tersedia di ListShards API untuk secara efisien mengambil peta shard dan meningkatkan kinerja membaca data lama. Filter Stempel Waktu ListShards memungkinkan aplikasi untuk menemukan dan menghitung shard dari titik waktu yang Anda inginkan untuk memproses ulang data dan menghilangkan kebutuhan untuk memulai di trim horizon. GetRecords dan SubscribeToShards memiliki bidang baru - ChildShards sebagai tanggapan yang memungkinkan Anda menemukan shard turunan dengan cepat saat aplikasi selesai membaca data dari shard yang tertutup, daripada harus melintasi peta shard lagi. Penemuan shard yang cepat membuat efisien penggunaan dari mengonsumsi sumber daya komputasi aplikasi untuk segala ukuran stream, terlepas dari periode retensi data.

T: Kapan saya menggunakan peningkatan API? 

Anda harus mempertimbangkan peningkatan API ini jika Anda berencana untuk menyimpan data lebih lama dan menskalakan kapasitas stream Anda secara teratur. Operasi penskalaan stream menutup shard yang ada dan membuka shard turunan baru. Data di semua shard buka dan tutup disimpan sampai akhir periode retensi. Jadi jumlah total shard meningkat secara linier dengan periode retensi yang lebih lama dan beberapa operasi penskalaan. Peningkatan di peta shard ini mengharuskan Anda menggunakan ListShards dengan filter Stempel Waktu dan bidang ChildShards di GetRecords, dan SubscribeToShard API untuk penemuan shard yang efisien untuk pengambilan data. Anda perlu meningkatkan KCL Anda ke versi terbaru 1.x untuk konsumen standar dan 2.x untuk konsumen EFO untuk fitur ini.

T: Bagaimana cara saya memantau operasi dan kinerja Amazon Kinesis data stream?

Amazon Kinesis Data Streams Management Console menampilkan metrik operasional dan kinerja utama seperti throughput input data dan output Amazon Kinesis data streams Anda. Amazon Kinesis Data Streams juga berintegrasi dengan Amazon CloudWatch sehingga Anda dapat mengumpulkan, melihat, dan menganalisis metrik CloudWatch untuk data stream dan shard Anda dalam data stream tersebut. Untuk informasi selengkapnya tentang metrik Amazon Kinesis Data Streams, lihat Memantau Amazon Kinesis Data Streams dengan Amazon CloudWatch.

Perlu diperhatikan bahwa semua metrik tingkat stream bebas biaya. Semua metrik tingkat shard yang diaktifkan dikenai biaya sesuai Harga Amazon CloudWatch.

T: Bagaimana cara mengelola dan mengontrol akses ke Amazon Kinesis data stream saya?

Amazon Kinesis Data Streams berintegrasi dengan AWS Identity and Access Management (IAM), suatu layanan yang memungkinkan Anda untuk secara aman mengontrol akses ke layanan AWS dan sumber daya ke pengguna Anda. Misalnya, Anda dapat membuat kebijakan yang hanya memungkinkan pengguna atau grup tertentu menambahkan data ke Amazon Kinesis data stream Anda. Untuk informasi selengkapnya tentang manajemen akses dan kontrol data stream Anda, lihat Mengontrol Akses ke Sumber Daya Amazon Kinesis Data Streams Menggunakan IAM.

T: Bagaimana cara melakukan log panggilan API yang dibuat untuk Amazon Kinesis data stream saya untuk analisis keamanan dan pemecahan masalah operasional?

Amazon Kinesis berintegrasi dengan Amazon CloudTrail, suatu layanan yang mencatat panggilan API AWS untuk akun Anda dan mengirim file log untuk Anda. Untuk informasi selengkapnya tentang logging panggilan API dan daftar operasi API Amazon Kinesis yang didukung, lihat Logging panggilan API Amazon Kinesis Menggunakan Amazon CloudTrail.

T: Bagaimana cara mengelola Amazon Kinesis data streams dan biaya yang terkait dengan data stream ini secara efektif?

Amazon Kinesis Data Streams memungkinkan Anda menandai Amazon Kinesis data streams untuk memudahkan manajemen sumber daya dan biaya. Tag adalah label yang ditentukan oleh pengguna yang dinyatakan sebagai pasangan nilai kunci yang membantu mengatur sumber daya AWS. Misalnya, Anda dapat menandai data stream Anda menurut pusat biaya sehingga Anda dapat mengelompokkan dan melacak biaya Amazon Kinesis Data Streams berdasarkan pusat biaya. Untuk informasi selengkapnya tentang tagging Amazon Kinesis Data Streams, lihat Tagging Amazon Kinesis Data Streams Anda.

T: Bagaimana cara menguraikan seperti apa saya menggunakan batas shard saya?

Anda dapat memahami bagaimana Anda menggunakan batas shard akun Anda menggunakan API DescribeLimits. API DescribeLimits akan mengembalikan batas shard dan jumlah shard terbuka dalam akun Anda. Jika Anda perlu menaikkan batas shard Anda, silakan minta kenaikan batas.

Keamanan

T: Pada saat saya menggunakan Kinesis Data Streams, seberapa aman data saya?

Kinesis aman secara default. Hanya pemilik akun dan data stream yang memiliki akses ke sumber daya Kinesis yang mereka buat. Kinesis mendukung autentikasi pengguna untuk mengontrol akses ke data. Anda dapat menggunakan kebijakan IAM AWS untuk secara selektif memberi izin pada pengguna atau grup pengguna. Anda dapat secara aman meletakkan dan mendapatkan data Anda dari Kinesis melalui titik akhir SSL menggunakan protokol HTTPS. Jika Anda memerlukan keamanan tambahan, Anda dapat menggunakan enkripsi sisi server dengan kunci utama AWS KMS untuk mengenkripsi data yang disimpan dalam aliran data Anda. AWS KMS memungkinkan Anda menggunakan kunci utama KMS yang dibuat oleh AWS untuk enkripsi, atau jika ingin, Anda dapat membawa kunci utama Anda ke AWS KMS. Terakhir, Anda dapat menggunakan pustaka enkripsi untuk mengenkripsi data pada sisi klien sebelum meletakkan data ke Kinesis.

T: Apakah saya dapat mengakses API Kinesis Data Streams secara pribadi dari Amazon Virtual Private Cloud (VPC) tanpa menggunakan IP publik?

Ya, Anda dapat mengakses API Kinesis Data Streams secara pribadi dari Amazon Virtual Private Cloud (VPC) dengan membuat Titik Akhir VPC. Dengan Titik Akhir VPC, perutean di antara API VPC dan Kinesis Data Streams ditangani oleh jaringan AWS tanpa perlu gateway Internet, gateway NAT, atau koneksi VPN. Generasi VPC Endpoints terbaru yang digunakan oleh Kinesis Data Streams didukung oleh AWS PrivateLink, teknologi yang memungkinkan konektivitas privat antara layanan AWS yang menggunakan Antarmuka jaringan Elastis (ENI) dengan IP privat pada VPC Anda. Untuk mempelajari selengkapnya tentang PrivateLink, kunjungi dokumentasi PrivateLink.

Enkripsi

T: Apakah saya dapat mengenkripsi data yang saya letakkan di Kinesis data stream?

Ya, dan terdapat dua opsi untuk mengenkripsi data yang Anda letakkan ke Kinesis data stream. Anda dapat menggunakan enkripsi sisi server, yang merupakan fitur terkelola sepenuhnya yang secara otomatis mengenkripsi dan mendekripsi data saat Anda meletakkan dan mendapatkannya dari data stream. Atau Anda dapat menulis data terenkripsi ke data stream dengan mengenkripsi dan mendekripsi pada sisi klien.

T: Mengapa saya harus menggunakan enkripsi sisi server alih-alih enkripsi sisi klien?

Pelanggan sering memilih enkripsi sisi server dibandingkan enkripsi sisi klien untuk salah satu alasan berikut ini:

  • Sulit untuk memberlakukan enkripsi sisi klien
  • Mereka lebih menginginkan lapisan keamanan kedua dibandingkan dengan enkripsi sisi klien
  • Sulit menerapkan skema manajemen kunci sisi klien

T: Apa itu enkripsi sisi server?

Enkripsi sisi server untuk Kinesis Data Streams secara otomatis mengenkripsi data menggunakan kunci AWS KMS yang ditentukan pengguna sebelum ditulis ke lapisan penyimpanan aliran data, dan mendekripsi data setelah diambil dari penyimpanan. Enkripsi membuat penulisan menjadi tidak mungkin dan muatan serta kunci partisi tidak dapat dibaca kecuali pengguna yang menulis atau membaca dari aliran data memiliki izin untuk menggunakan kunci yang dipilih untuk enkripsi pada aliran data. Sehingga, enkripsi sisi server dapat memudahkan pemenuhan persyaratan keamanan internal dan persyaratan kepatuhan yang mengatur data Anda.

Dengan enkripsi sisi server, aplikasi sisi klien Anda (produsen dan konsumen) tidak perlu mengetahui enkripsi, tidak perlu mengelola kunci KMS atau operasi kriptografi, dan data Anda dienkripsi saat diam dan bergerak di dalam layanan Kinesis Data Streams. Semua kunci KMS yang digunakan oleh fitur enkripsi sisi server disediakan oleh AWS KMS. AWS KMS memudahkan penggunaan kunci KMS yang dikelola AWS untuk Kinesis (metode enkripsi “satu klik”), kunci yang dikelola pelanggan AWS KMS Anda sendiri, atau kunci KMS yang Anda impor untuk enkripsi.

T: Apakah ada panduan untuk memulai enkripsi sisi server?

Ya, ada panduan memulai di dokumentasi pengguna.

T: Apakah enkripsi sisi server mengintervensi bagaimana aplikasi saya berinteraksi dengan Kinesis Data Streams?

Mungkin. Hal ini bergantung pada kunci yang Anda gunakan untuk enkripsi dan izin yang mengatur akses ke kunci tersebut.

  • Jika Anda menggunakan kunci KMS yang dikelola AWS untuk Kinesis (alias kunci = aws/kinesis), aplikasi Anda tidak akan terpengaruh dengan mengaktifkan atau menonaktifkan enkripsi dengan kunci ini.
  • Jika Anda menggunakan kunci KMS yang berbeda, seperti kunci AWS KMS kustom atau yang Anda impor ke layanan AWS KMS, serta jika produsen dan konsumen aliran data Anda tidak memiliki izin untuk menggunakan kunci KMS yang digunakan untuk enkripsi, maka PUT Anda dan permintaan GET akan gagal. Sebelum Anda dapat menggunakan enkripsi sisi server, Anda harus mengonfigurasi kebijakan kunci AWS KMS untuk mengizinkan enkripsi dan dekripsi pesan. Untuk contoh dan informasi selengkapnya tentang izin AWS KMS, lihat Izin API AWS KMS: Tindakan dan Referensi Sumber Daya di Panduan Pengembang AWS Key Management Service atau panduan izin di dokumentasi pengguna enkripsi sisi server Kinesis Data Streams.

T: Apakah ada biaya tambahan terkait dengan penggunaan enkripsi sisi server?

Ya, namun jika Anda menggunakan kunci KMS yang dikelola AWS untuk Kinesis dan tidak melebihi biaya penggunaan API KMS tingkat gratis, maka penggunaan enkripsi sisi server Anda gratis. Berikut ini menjelaskan biaya menurut sumber daya:

Kunci:

  • Kunci KMS yang dikelola AWS untuk Kinesis (alias = “aws/kinesis”) adalah gratis.
  • Kunci KMS yang dikelola pelanggan dikenakan biaya kunci KMS. Pelajari selengkapnya.

Penggunaan API KMS:

  • Biaya penggunaan API berlaku untuk setiap kunci KMS, termasuk kunci kustom. Kinesis Data Streams memanggil KMS kurang lebih setiap 5 menit pada saat merotasi kunci data. Dalam 30 hari satu bulan, total biaya panggilan API KMS yang diinisiasi oleh Kinesis data stream semestinya kurang dari beberapa dolar. Perlu diperhatikan bahwa biaya ini menskalakan dengan jumlah kredensial pengguna yang Anda gunakan pada penghasil dan pelanggan data Anda karena masing-masing kredensial penggunan memerlukan panggilan API yang unik ke AWS KMS. Ketika Anda menggunakan peran IAM untuk autentikasi, setiap panggilan peran yang diasumsikan akan menghasilkan kredensial pengguna yang unik dan Anda perlu melakukan cache kredensial pengguna yang dikembalikan oleh panggilan peran yang diasumsikan untuk menghemat biaya KMS.

T: Wilayah AWS mana yang menawarkan enkripsi sisi server untuk Kinesis Data Streams?

Enkripsi sisi server Kinesis Data Streams tersedia di wilayah AWS GovCloud dan semua wilayah publik kecuali wilayah Tiongkok (Beijing).

T: Bagaimana cara memulai, memperbarui, atau menghapus enkripsi sisi server dari data stream?

Semua operasi ini dapat diselesaikan menggunakan AWS management console atau menggunakan AWS SDK. Untuk mempelajari selengkapnya, baca panduan memulai enkripsi sisi server Kinesis Data Streams.

T: Algoritme enkripsi apa yang digunakan untuk enkripsi sisi server?

Kinesis Data Streams menggunakan algoritme AES-GCM 256 untuk enkripsi.

T: Jika saya mengenkripsi data stream yang telah memiliki data yang tertulis, baik dalam teks biasa atau ciphertext, apakah semua data di data stream akan dienkripsi jika saya memperbarui enkripsi?

Tidak, hanya data baru yang tertulis dalam data stream yang akan dienkripsi (atau dibiarkan terdekripsi) oleh aplikasi enkripsi baru.

T: Apa yang dienkripsi oleh enkripsi sisi server untuk Kinesis Data Streams?

Enkripsi sisi server mengenkripsi muatan pesan bersama dengan kunci partisi, yang ditentukan oleh aplikasi penghasil data stream.

T: Apakah enkripsi sisi server adalah fitur khusus shard atau fitur khusus stream?

Enkripsi sisi server adalah fitur khusus pengaliran.

T: Apakah saya dapat mengubah kunci KMS yang digunakan untuk mengenkripsi aliran data tertentu?

Ya, menggunakan konsol manajemen AWS atau AWS SDK, Anda dapat memilih kunci KMS baru untuk diterapkan ke aliran data tertentu.

T: Apakah Anda dapat menjelaskan kepada saya tentang siklus masa aktif enkripsi data saya sejak saat saya mengirimnya ke Kinesis Data Stream dengan enkripsi sisi server diaktifkan, dan saat saya mengambilnya?

Berikut ini akan menjelaskan kepada Anda cara Kinesis Data Streams menggunakan kunci KMS untuk mengenkripsi pesan sebelum disimpan di jalur PUT, dan untuk mendekripsinya setelah diambil di jalur GET. Kinesis dan AWS KMS menjalankan tindakan berikut (termasuk dekripsi) ketika Anda memanggil putRecord(s) atau getRecords pada aliran data dengan enkripsi sisi server yang diaktifkan.

  1. Data dikirim dari aplikasi penghasil Kinesis pelanggan (klien) ke Kinesis menggunakan SSL melalui HTTPS.
  2. Data diterima oleh Kinesis, disimpan di RAM, dan enkripsi diterapkan ke muatan dan kunci partisi catatan.
  3. Kinesis meminta bahan kunci input plaintext (IKM), dan salinan IKM dienkripsi dengan menggunakan kunci KMS yang dipilih pelanggan.
  4. AWS KMS membuat sebuah IKM, mengenkripsinya dengan menggunakan kunci KMS, dan mengirimkan IKM plaintext dan IKM terenkripsi ke Kinesis.
  5. Kinesis menggunakan IKM plaintext untuk memperoleh kunci data yang unik per catatan.
  6. Kinesis mengenkripsi muatan dan kunci utama dan menghapus kunci plaintext dari memori.
  7. Kinesis menambahkan IKM terenkripsi ke data terenkripsi.
  8. IKM plaintext tersebut dicache dalam memori untuk digunakan kembali sampai kedaluwarsa setelah 5 menit.
  9. Kinesis mengirimkan pesan terenkripsi ke penyimpanan backend di mana disimpan pada kondisi yang tidak digunakan dan daat diambil oleh panggilan getRecords.

Kinesis dan AWS KMS melakukan tindakan berikut (termasuk dekripsi) saat Anda memanggil getRecords.

  1. Pada saat panggilan getRecords dilakukan, bagian depan Kinesis mengambil catatan terenkripsi dari layanan backend.
  2. Kinesis membuat permintaan ke KMS menggunakan token yang dihasilkan oleh permintaan pelanggan. AWS KMS yang mengautorisasi.
  3. Kinesis mendekripsi IKM terenkripsi yang disimpan dengan catatan.
  4. Kinesis membuat ulang kunci data per catatan dari IKM terdekripsi.
  5. Jika diautorisasi, Kinesis mendekripsi muatan dan menghapus kunci data plaintext dari memori.
  6. Kinesis mengirimkan muatan melalui SSL dan HTTPS ke pelanggan Kinesis (klien) yang meminta catatan.

Harga dan penagihan

T: Apakah Amazon Kinesis Data Streams tersedia di AWS Tingkat Gratis?

Tidak. Amazon Kinesis Data Streams saat ini tidak tersedia di AWS Tingkat Gratis. AWS Tingkat Gratis adalah program yang memungkinan uji coba gratis untuk sekelompok layanan AWS. Untuk detail selengkapnya tentang AWS Tingkat Gratis, baca AWS Tingkat Gratis.

T: Berapa harga Amazon Kinesis Data Streams?

Amazon Kinesis Data Streams menggunakan harga sederhana bayar sesuai pemakaian. Tidak ada biaya awal atau biaya minimum, dan Anda hanya membayar sumber daya yang Anda gunakan. Biaya Amazon Kinesis Data Streams memiliki dua dimensi inti dan tiga dimensi opsional:

  • Biaya Shard Per Jam ditentukan oleh jumlah shard dalam Amazon Kinesis data stream Anda.
  • Biaya Unit Muatan PUT ditentukan oleh jumlah unit muatan 25 KB yang ditambahkan oleh penghasil data ke stream Anda.

Opsional:

  • Retensi data diperpanjang adalah biaya opsional yang ditentukan oleh jumlah jam shard yang dibebankan oleh data stream Anda. Ketika retensi data diperpanjang diaktifkan, Anda membayar tarif retensi yang diperpanjang untuk setiap shard dalam stream Anda.
  • Retensi data jangka panjang adalah biaya opsional dengan dua dimensi biaya: penyimpanan data jangka panjang dan pengambilan data jangka panjang. Penyimpanan data jangka panjang mencerminkan jumlah data GB-bulan yang disimpan untuk periode lebih dari 7 hari dan hingga 365 hari. Pengambilan data jangka panjang mencerminkan jumlah GB data yang diambil yang telah disimpan selama lebih dari 7 hari.
  • Fan-out yang ditingkatkan adalah biaya opsional dengan dua dimensi biaya: jam pelanggan-shard dan pengambilan data. Jam pelanggan-shard mencerminkan jumlah shard pada stream dikali jumlah pelanggan yang menggunakan fan-out yang ditingkatkan. Pengambilan data ditentukan oleh jumlah GB yang dikirim ke pelanggan yang menggunakan fan-out yang ditingkatkan. 

Untuk informasi selengkapnya tentang biaya Amazon Kinesis Data Streams, lihat Biaya Amazon Kinesis Data Streams.

T: Apakah biaya Unit Muatan PUT saya berubah dengan menggunakan operasi PutRecords melainkan operasi PutRecord?

Biaya Unit Muatan PUT dihitung berdasarkan jumlah unit muatan 25 KB yang ditambahkan ke Amazon Kinesis data stream Anda. Biaya Unit Muatan PUT konsisten apabila menggunakan operasi PutRecords atau operasi PutRecord.

T: Apakah saya dikenai biaya untuk shard dalam kondisi "TUTUP"?

Shard bisa saja dalam kondisi "TUTUP" setelah resharding. Anda tidak akan dikenai biaya untuk shard dalam kondisi "TUTUP".

T: Selain biaya Amazon Kinesis Data Streams, apakah ada biaya lain yang mungkin dibebankan ke penggunaan Amazon Kinesis Data Streams saya?

Jika Anda menggunakan Amazon EC2 untuk menjalankan Amazon Kinesis Applications, Anda akan dikenai biaya untuk sumber daya Amazon EC2 selain biaya Amazon Kinesis Data Streams.

Amazon Kinesis Client Library (KCL) menggunakan tabel Amazon DynamoDB untuk melacak informasi kondisi pemrosesan catatan. Jika Anda menggunakan KCL untuk Amazon Kinesis Applications, Anda akan dikenai biaya untuk sumber daya Amazon DynamoDB selain biaya Amazon Kinesis Data Streams.

Jika Anda mengaktifkan Metrik Tingkat Shard yang Ditingkatkan, Anda akan dikenai biaya untuk biaya Amazon CloudWatch yang terkait dengan metrik tingkat shard yang diaktifkan selain biaya Amazon Kinesis Data Streams.

Perlu diperhatikan bahwa yang disebutkan di atas adalah tiga kasus yang umum, tetapi tidak menyeluruh.

Perjanjian Tingkat Layanan (SLA)

T: Apa yang dijamin oleh SLA Amazon Kinesis Data Streams?

SLA Amazon Kinesis Data Streams kami menjamin Persentase Aktif Bulanan setidaknya 99,9% untuk Amazon Kinesis Data Streams.

T: Bagaimana saya tahu apakah saya memenuhi syarat untuk SLA Service Credit?

Anda berhak mendapatkan kredit SLA untuk Amazon Kinesis Data Streams di bawah SLA Amazon Kinesis Data Streams jika lebih dari satu Availability Zone tempat Anda menjalankan tugas, di wilayah yang sama memiliki Persentase Aktif Bulanan kurang dari 99,9% selama siklus penagihan bulanan.

Untuk detail selengkapnya tentang syarat dan ketentuan SLA, serta detail tentang cara mengirimkan klaim, silakan baca halaman detail SLA Amazon Kinesis Data Streams.

Pelajari selengkapnya tentang harga Amazon Kinesis Data Streams

Kunjungi halaman harga
Siap untuk memulai?
Daftar
Punya pertanyaan lainnya?
Hubungi kami