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.
  • Ukuran blob data maksimum (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 membuat 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 membuat 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 selama 7 hari, Anda dapat menjalankan aplikasi audit hingga 7 hari setelah aplikasi penagihan.

Kami menyarankan 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. Karena masing-masing permintaan yang dibufer dapat diproses secara terpisah, Amazon SQS dapat menskalakan secara transparan untuk menangani muatan tanpa instruksi penyediaan apa pun dari Anda.

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 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 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 dengan tanpa batas. Secara default, masing-masing akun dapat menyediakan 10 shard per wilayah. Anda dapat menggunakan formulir Amazon Kinesis Data Streams Limits untuk meminta lebih dari 10 shard dalam satu wilayah.

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, baca 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 mengetahui daftar bahasa pemrograman dan 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, baca 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, baca 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.

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 sebesar 5 pelanggan yang menggunakan fan-out yang ditingkatkan per data stream. Jika Anda memerlukan lebih banyak dari 5, silakan kirimkan permintaan kenaikan batas melalui AWS support. Perlu diingat bahwa Anda dapat memiliki lebih dari 5 pelanggan total yang membaca dari stream dengan memiliki 5 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 terdapat penggabungan muatan atau pengiriman minimum.

T: Apakah saya perlu mengganti prosedur 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 membuat 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 membuat 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, baca 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, baca 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 hingga 24 jam secara default. Anda dapat meningkatkan periode retensi data hingga 7 hari dengan mengaktifkan retensi data yang diperpanjang.

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

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

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, baca 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, baca 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, baca 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, baca 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 data stream Anda. AWS KMS memungkinkan Anda menggunakan kunci utama KMS yang dihasilkan 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 Titik Akhir VPC terbaru yang digunakan oleh Kinesis Data Streams didukung oleh AWS PrivateLink, teknologi yang memungkinkan konektivitas pribadi di antara layanan AWS yang menggunakan Elastic Network Interfaces (ENI) dengan IP pribadi 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 di Kinesis data stream. Anda dapat menggunakan enkripsi sisi server, yaitu fitur yang dikelola sepenuhnya yang secara otomatis mengenkripsi dan mendekripsi data saat Anda meletakkan dan mendapatkan data ini dari data stream. Atau Anda dapat membuat 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 utama AWS KMS (CMK) yang ditentukan oleh pengguna sebelum dituliskan ke lapisan penyimpanan data stream, dan mendekripsi data tersebut setelah diambil dari penyimpanan. Enkripsi membuat penulisan tidak memungkinkan dan muatan serta kunci partisi tidak dapat dibaca kecuali pengguna yang menulis atau membaca dari data stream memiliki izin untuk menggunakan kunci yang dipilih untuk enkripsi pada data stream. Sehingga, enkripsi sisi server dapat memudahkan memenuhi persyaratan keamanan internal dan persyaratan kepatuhan yang mengatur data Anda.

Dengan enkripsi sisi server aplikasi sisi klien (penghasil dan pelanggan) Anda tidak perlu mengingat-ingat enkripsi, mereka tidak perlu mengelola CMK atau operasi kriptografis, dan data Anda dienkripsi pada saat tidak digunakan dan terus bergerak dalam layanan Kinesis Data Streams. Semua CMK yang digunakan dengan fitur enkripsi sisi server disediakan oleh AWS KMS. AWS KMS memudahkan untuk menggunakan CMK yang dikelola AWS untuk Kinesis(metode enkripsi “satu klik”), CMK yang dihasilkan oleh AWS milik Anda, atau CMK yang Anda impor untuk enkripsi.

T: Apakah ada panduan 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 CMK yang dikelola oleh AWS untuk Kinesis (alias kunci = aws/kinesis) aplikasi Anda tidak akan terpengaruh oleh pengaktifan atau penonaktifan enkripsi dengan kunci ini.
  • Jika Anda menggunakan kunci utama yang berbeda, seperti kunci utama AWS KMS kustom atau kunci utama yang Anda impor ke layanan AWS KMS, dan jika penghasil atau pelanggan data stream Anda tidak memiliki izin untuk menggunakan CMK AWS KMS yang digunakan untuk enkripsi, permintaan PUT dan GET Anda akan gagal. Sebelum Anda dapat menggunakan enkripsi sisi server, Anda harus mengonfigurasikan 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, tetapi jika Anda menggunakan CMK yang dikelola oleh AWS untuk Kinesis dan tidak melebihi biaya penggunaan API tingkat gratis KMS, maka penggunaan enkripsi sisi server Anda gratis. Berikut ini menjelaskan biaya menurut sumber daya:

Kunci:

  • CMK yang dikelola oleh AWS untuk Kinesis (alias = “aws/kinesis”) adalah gratis.
  • Kunci KMS yang dihasilkan oleh pengguna tergantung pada biaya kunci KMS. Pelajari selengkapnya.

Penggunaan API KMS:

  • Biaya penggunaan API berlaku untuk setiap CMK, termasuk CMK 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 stream.

T: Apakah saya dapat mengubah CMK yang digunakan untuk mengenkripsi data stream khusus?

Ya, dengan menggunakan AWS management console atau AWS SDK Anda dapat memilih kunci utama baru untuk diterapkan pada data stream khusus.

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 bagaimana Kinesis Data Streams menggunakan CMK AWS KMS untuk mengenkripsi pesan sebelum disimpan di jalur PUT, dan untuk mendekripsinya setelah diambil dalam jalur GET. Kinesis dan AWS KMS menjalankan tindakan berikut (termasuk dekripsi) saat Anda memanggil putRecord(s) atau getRecords pada data stream dengan enkripsi sisi server 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 plaintext input keying material (IKM) dan salinan IKM dienkripsi menggunakan kunci utama KMS yang pilihan pelanggan.
  4. AWS KMS membuat IKM, mengenkripsinya menggunakan kunci utama, dan mengirim IKM plaintext dan IKM terenkripsi ke Kinesis.
  5. Kinesis menggunakan IKM plaintext untuk memperoleh kunci utama 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 laju retensi yang diperpanjang untuk setiap shard pada stream Anda.
  • 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 ditingkatkan 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.

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