導入
工場のセンサーが1秒ごとに送ってくる温度、アプリから絶え間なく届くクリックログ——「あとでまとめて」ではなく「今この瞬間」処理したいデータがあります。
説明
絶え間なく流れ込んでくるデータをストリーミングデータと呼び、それを受け止めて処理するのが Amazon Kinesis です。用途別にいくつかの種類があります。
| サービス | 役割 |
|---|---|
| Kinesis Data Streams | 流れてくるデータをリアルタイムに受け取り、複数のアプリから同時に処理できるようにする |
| Kinesis Data Firehose | 受け取ったデータを、S3・Redshift・OpenSearchなどへそのまま流し込む(配信に特化。ほぼ設定だけで使える) |
| Kinesis Video Streams | 動画のストリームを取り込み、分析や再生に使えるようにする |
| Amazon MSK(Managed Streaming for Apache Kafka) | オープンソースのApache KafkaをAWSがマネージドで提供するもの。既存のKafka資産を活かしたいときに |
flowchart LR
Dev["IoTセンサー / アプリのログ"] --> KDS["Kinesis Data Streams"]
KDS --> L["Lambda(リアルタイム処理・異常検知)"]
KDS --> KDF["Kinesis Data Firehose"]
KDF --> S3x["S3 / Redshift / OpenSearch"]
バッチ処理(1日1回まとめて処理)との違いを意識しましょう。「毎晩集計すればよい」ならS3+Glueで十分ですが、「不正利用をその場で検知したい」「ダッシュボードを秒単位で更新したい」ならKinesisの出番です。
読んでみよう
「リアルタイムに流れるデータ=Kinesis」「とにかくS3などへ流し込むだけ=Firehose」「Kafkaをそのまま使いたい=MSK」。試験ではキーワード「リアルタイム」「ストリーミング」が出たらKinesisを疑います。