Skenario 2: Data hampir waktu nyata untuk tim keamanan
Perusahaan ABC2Badge menyediakan sensor dan lencana untuk acara korporasi atau acara berskala besar seperti AWS re:Invent
Dalam acara mendatang, karena tingginya volume peserta, ABC2Badge telah diminta oleh tim keamanan acara ini untuk mengumpulkan data untuk area kampus yang paling terkonsentrasi setiap 15 menit. Data ini akan memberi tim keamanan cukup waktu untuk bereaksi dan mengerahkan personel keamanan secara proporsional ke area yang terkonsentrasi. Mengingat kebutuhan baru dari tim keamanan ini dan kurangnya pengalaman membangun solusi pengaliran, untuk memproses data secara hampir waktu nyata, ABC2Badge mencari solusi yang sederhana namun terukur dan dapat diandalkan.
Solusi gudang data mereka saat ini adalah Amazon Redshift

Solusi baru menggunakan Amazon Kinesis Data Firehose
Amazon Kinesis Data Firehose
Amazon Kinesis Data Firehose
Kinesis Data Firehose memungkinkan analitik hampir waktu nyata dengan alat Kecerdasan Bisnis (BI) yang ada dan dasbor yang Anda gunakan saat ini. Ini adalah layanan nirserver terkelola penuh yang secara otomatis diskalakan agar sesuai dengan throughput data Anda dan tidak memerlukan administrasi terus-menerus. Kinesis Data Firehose dapat melakukan batch, kompresi, dan enkripsi data sebelum memuatnya, sehingga meminimalkan jumlah penyimpanan yang digunakan di tujuan dan meningkatkan keamanan. Layanan ini juga dapat mentransformasikan data sumber menggunakan AWS Lambda dan mengirimkan data yang ditransformasi ke tujuan. Anda mengonfigurasi produsen data Anda untuk mengirim data ke Kinesis Data Firehose, yang akan mengirimkan data secara otomatis ke tujuan yang telah Anda tetapkan.
Mengirim data ke aliran pengiriman Firehose
Untuk mengirim data ke aliran pengiriman Anda, ada beberapa opsi. AWS menawarkan SDK untuk banyak bahasa pemrograman populer, yang masing-masing menyediakan API untuk Amazon Kinesis Data Firehose
Menggunakan agen Amazon Kinesis
Agen Amazon Kinesis adalah aplikasi perangkat lunak mandiri yang terus memantau serangkaian file log agar data baru dikirim ke aliran pengiriman. Agen ini secara otomatis menangani rotasi file, melakukan checkpointing, mencoba kembali jika ada kegagalan, dan mengirimkan metrik Amazon CloudWatch untuk memantau dan mengatasi masalah aliran pengiriman. Konfigurasi tambahan, seperti pra-pemrosesan data, pemantauan sejumlah direktori file, dan penulisan ke sejumlah aliran pengiriman, dapat diterapkan pada agen ini.
Agen ini dapat diinstal pada server berbasis Linux atau Windows seperti server web, server log, dan server basis data. Setelah agen ini terinstal, Anda cukup menentukan file log yang akan dipantau dan aliran pengiriman yang akan dikirimkan. Agen ini akan mengirim data baru ke aliran pengiriman secara tahan lama dan andal.
Menggunakan API dengan SDK AWS dan layanan AWS sebagai sumber
API Kinesis Data Firehose menawarkan dua operasi untuk mengirim data ke aliran pengiriman Anda. PutRecord
mengirimkan satu catatan data dalam satu panggilan. PutRecordBatch
dapat mengirim sejumlah catatan data dalam satu panggilan, dan dapat mencapai throughput yang lebih tinggi per produsen. Dalam setiap metode, Anda harus menentukan nama aliran pengiriman dan catatan data, atau array catatan data, ketika menggunakan metode ini. Untuk informasi selengkapnya dan kode sampel untuk operasi API Kinesis Data Firehose, lihat Menulis ke Aliran Pengiriman Firehose Menggunakan SDK AWS.
Kinesis Data Firehose juga berjalan dengan Kinesis Data Streams, CloudWatch Logs, CloudWatch Events, Amazon Simple Notification Service
Memproses data sebelum pengiriman ke tujuan
Dalam beberapa skenario, Anda sebaiknya mentransformasikan atau meningkatkan data pengaliran Anda sebelum dikirim ke tujuannya. Misalnya, produsen data mungkin mengirim teks yang tidak terstruktur di setiap catatan data, dan Anda perlu mentransformasikannya menjadi JSON sebelum mengirimkannya ke OpenSearch Service
Kinesis Data Firehose memiliki kemampuan konversi format data bawaan. Menggunakan kemampuan ini, Anda dapat dengan mudah mengonversi aliran data JSON Anda ke format file Apache Parquet atau Apache ORC.
Aliran transformasi data
Untuk memungkinkantransformasi data pengaliran, Kinesis Data Firehose menggunakan fungsi Lambda yang Anda buat untuk mentransformasikan data Anda. Kinesis Data Firehose melakukan buffer terhadap data yang masuk menjadi ukuran buffer tertentu untuk fungsi, lalu memanggil fungsi Lambda yang ditentukan secara asinkron. Data yang ditransformasi dikirim dari Lambda ke Kinesis Data Firehose, dan Kinesis Data Firehose mengirimkan data ke tujuan.
Konversi format data
Anda juga dapat mengaktifkan konversi format data Kinesis Data Firehose, yang akan mengonversi aliran data JSON Anda ke Apache Parquet atau Apache ORC. Fitur ini hanya dapat mengonversi JSON ke Apache Parquet atau Apache ORC. Jika Anda memiliki data yang ada di CSV, Anda dapat mentransformasikan data tersebut melalui fungsi Lambda ke JSON, lalu menerapkan konversi format data.
Pengiriman data
Sebagai aliran pengiriman hampir waktu nyata, Kinesis Data Firehose melakukan buffer terhadap data yang masuk. Setelah ambang batas buffering aliran pengiriman tercapai, data Anda dikirimkan ke tujuan yang telah Anda konfigurasi. Ada beberapa perbedaan dalam bagaimana Kinesis Data Firehose memberikan data ke setiap tujuan, yang ditinjau dalam laporan ini di bagian berikut.
Amazon S3
Amazon S3
Pengiriman data ke Amazon S3
Untuk pengiriman data ke Amazon S3, Kinesis Data Firehose menggabungkan sejumlah catatan masuk berdasarkan konfigurasi buffering aliran pengiriman Anda, lalu mengirimkannya ke Amazon S3 sebagai objek S3. Frekuensi pengiriman data ke S3 ditentukan oleh ukuran buffer (1 MB sampai 128 MB) atau interval buffer (60 detik sampai 900 detik) di S3, mana yang tercapai lebih dulu.
Pengiriman data ke bucket S3 Anda mungkin gagal karena berbagai alasan. Misalnya, bucket mungkin sudah tidak ada lagi, atau AWS Identity and Access Management
Amazon Redshift
Amazon Redshift
Pengiriman data ke Amazon Redshift
Untuk pengiriman data ke Amazon Redshift, Kinesis Data Firehose pertama kali mengirimkan data masuk ke bucket S3 Anda dalam format yang dijelaskan sebelumnya. Kinesis Data Firehose kemudian mengeluarkan perintah COPY Amazon Redshift untuk memuat data dari bucket S3 ke klaster Amazon Redshift Anda.
Frekuensi operasi COPY
data dari S3 ke Amazon Redshift ditentukan berdasarkan seberapa cepat klaster Amazon Redshift Anda dapat menyelesaikan perintah COPY
. Untuk tujuan Amazon Redshift, Anda dapat menentukan durasi percobaan ulang (0-7200 detik) saat membuat aliran pengiriman untuk menangani kegagalan pengiriman data. Kinesis Data Firehose mencoba ulang selama durasi waktu yang ditentukan dan melewati batch objek S3 tersebut jika tidak berhasil. Informasi objek yang dilewati dikirimkan ke bucket S3 Anda sebagai file manifes dalam folder “errors/”, yang dapat Anda gunakan untuk backfill manual.
Berikut ini adalah diagram arsitektur aliran data Kinesis Data Firehose ke Amazon Redshift. Meskipun aliran data ini unik untuk Amazon Redshift, Kinesis Data Firehose mengikuti pola serupa untuk target tujuan lainnya.

Aliran data dari Kinesis Data Firehose ke Amazon Redshift
Amazon OpenSearch Service (OpenSearch Service)
OpenSearch Service
Pengiriman data ke OpenSearch Service
Untuk pengiriman data ke OpenSearch Service, Kinesis Data Firehose melakukan buffer terhadap data masuk berdasarkan konfigurasi buffering dari aliran pengiriman Anda, lalu menghasilkan permintaan OpenSearch massal untuk mengindeks sejumlah catatan ke klaster OpenSearch Anda. Frekuensi pengiriman data ke OpenSearch Service ditentukan oleh nilai ukuran buffer (1 MB sampai 100 MB) dan interval buffer (60 detik sampai 900 detik) di OpenSearch, mana yang tercapai lebih dulu.
Untuk tujuan OpenSearch Service, Anda dapat menentukan durasi percobaan ulang (0-7200 detik) saat membuat aliran pengiriman. Kinesis Data Firehose mencoba ulang selama durasi waktu yang ditentukan, lalu melewati permintaan indeks tersebut. Dokumen yang dilewati dikirim ke bucket S3 Anda di folder elasticsearch_failed/
, yang dapat Anda gunakan untuk backfill manual.
Amazon Kinesis Data Firehose dapat merotasi indeks OpenSearch Service Anda berdasarkan durasi waktu. Tergantung pada opsi rotasi yang Anda pilih (NoRotation
, OneHour
, OneDay
, OneWeek
, atau OneMonth
), Kinesis Data Firehose menambahkan sebagian dari stempel waktu kedatangan Waktu Universal Terkoordinasi (UTC) ke nama indeks yang Anda tentukan.
Titik akhir HTTP kustom atau penyedia layanan pihak ketiga yang didukung
Kinesis Data Firehose dapat mengirim data baik ke titik akhir HTTP Kustom atau penyedia pihak ketiga yang didukung seperti Datadog, Dynatrace, LogicMonitor, MongoDB, New Relic, Splunk, dan Sumo Logic.
Titik akhir HTTP kustom atau penyedia layanan pihak ketiga yang didukung
Agar Kinesis Data Firehose berhasil mengirimkan data ke titik akhir HTTP kustom, titik akhir ini harus menerima permintaan dan mengirim respons menggunakan format permintaan dan respons Kinesis Data Firehose tertentu.
Saat mengirimkan data ke titik akhir HTTP yang dimiliki oleh penyedia layanan pihak ketiga yang didukung, Anda dapat menggunakan layanan AWS Lambda terintegrasi untuk membuat fungsi guna mentransformasikan catatan masuk ke format yang sesuai dengan format yang diharapkan oleh integrasi penyedia layanan.
Untuk frekuensi pengiriman data, setiap penyedia layanan memiliki ukuran buffer yang direkomendasikan. Hubungi penyedia layanan Anda untuk informasi lebih lanjut tentang ukuran buffer yang direkomendasikan. Untuk penanganan kegagalan pengiriman data, Kinesis Data Firehose membuat koneksi dengan titik akhir HTTP terlebih dahulu dengan menunggu respons dari tujuan. Kinesis Data Firehose terus membuat koneksi, sampai durasi percobaan ulang berakhir. Setelah itu, Kinesis Data Firehose menganggapnya sebagai kegagalan pengiriman data dan mencadangkan data ke bucket S3 Anda.
Ringkasan
Kinesis Data Firehose dapat terus-menerus mengirimkan data pengaliran Anda ke tujuan yang didukung. Layanan ini adalah solusi terkelola penuh, sehingga membutuhkan sedikit atau tidak ada pengembangan. Untuk Perusahaan ABC2Badge, menggunakan Kinesis Data Firehose adalah pilihan alami. Mereka sudah menggunakan Amazon Redshift sebagai solusi gudang data mereka. Karena sumber data mereka terus menulis ke log transaksi, mereka dapat memanfaatkan Amazon Kinesis Agent untuk melakukan pengaliran data tersebut tanpa menulis kode tambahan apa pun. Sekarang perusahaan ABC2Badge telah membuat aliran catatan sensor dan menerima catatan ini melalui Kinesis Data Firehose. Mereka dapat menggunakan hal ini sebagai dasar untuk kasus penggunaan tim keamanan.