導入
これまでのデータストアは「溜まったデータをどう検索・分析するか」でした。最後に、IoTセンサーやアプリのクリックストリームのように絶え間なく流れ込んでくるデータをリアルタイムに処理する設計を見ておきましょう。
説明
Amazon Kinesis は、大量のストリーミングデータをリアルタイムに取り込み・処理するサービス群です。
flowchart LR
SRC["センサー / アプリログ / クリックストリーム"] --> KDS["Kinesis Data Streams<br/>リアルタイム取り込み"]
KDS --> CONSUMER["独自アプリ/Lambdaで<br/>リアルタイム処理"]
SRC --> KDF["Kinesis Data Firehose<br/>取り込み+自動配信"]
KDF --> S3["S3 / Redshift / OpenSearch"]
| サービス | 役割 | 特徴 |
|---|---|---|
| Kinesis Data Streams | リアルタイムのカスタム処理 | 複数の消費者が独立して同じストリームを読める、処理ロジックを自分で書く |
| Kinesis Data Firehose | 取り込みと配信の自動化 | 変換して自動でS3/Redshift/OpenSearchへ配信、サーバーレスで運用不要 |
| Amazon MSK(Managed Streaming for Apache Kafka) | Kafka互換のフルマネージドストリーミング基盤 | 既存のKafkaエコシステム(コンシューマ資産)をそのまま活かしたい場合 |
- 「自前のロジックでリアルタイムに複雑な処理をしたい、複数のアプリが同じストリームを別々に読みたい」→ Kinesis Data Streams
- 「ログをそのままS3やRedshiftに流し込みたいだけで、処理コードを書きたくない」→ Kinesis Data Firehose
- 「オンプレで既にKafkaを使っており、その資産・ノウハウを引き継ぎたい」→ Amazon MSK
KinesisとMSKはどちらもストリーミング基盤ですが、**「AWSネイティブで手軽に始めたいならKinesis」「Kafka互換・既存のKafka資産を活かしたいならMSK」**という住み分けです。
読んでみよう
「Kafkaを使っている」という一言が問題文にあれば、選択肢の中にMSKがあるかをまず探しましょう。逆に、Kafkaへの言及がなくAWSネイティブに完結させたいなら、Kinesis Data Streams(自前処理)かFirehose(配信の自動化)かを、処理ロジックを自分で書きたいかどうかで切り分けます。ここまでで、コンピューティング・メッセージング・データストアという新規設計の主要な部品が揃いました。次章では、既存ソリューションの継続的な改善に視点を移します。