リアルタイムデータストリーミング - Amazon Kinesis で実現する即時データ処理

Kinesis Data Streams と Data Firehose を組み合わせたリアルタイムデータパイプラインの設計パターンを解説。シャード設計、バッファリング、Lambda 変換、S3 / Redshift / OpenSearch への配信を紹介します。

リアルタイムデータストリーミングの重要性

IoT デバイスからのセンサーデータ、Web アプリケーションのクリックストリーム、金融取引のトランザクションログなど、現代のビジネスでは大量のデータがリアルタイムに生成されています。これらのデータを即座に処理 / 分析することで、異常検知、リアルタイムダッシュボード、パーソナライズされたレコメンデーションなどの価値を創出できます。Amazon Kinesis は、ストリーミングデータをリアルタイムに収集 / 処理 / 分析するフルマネージドサービスです。オンプレミスで同等のストリーミング基盤を構築するには Apache Kafka クラスターの運用が一般的ですが、ブローカーの管理やパーティションのリバランスなどの運用タスクが発生します。Kinesis はこれらの運用の作業をサービス側が引き受けるので、データストリーミングのビジネスロジックに集中しやすくなります。

Kinesis ファミリーの構成

Amazon Kinesis に関わるストリーミングの主なサービスは次の 4 つで、現在 Kinesis の名を持つのは Data Streams と Video Streams です。Kinesis Data Streams はカスタムアプリケーションによるリアルタイム処理の基盤で、シャード単位でスループットを制御します。Amazon Data Firehose (旧 Kinesis Data Firehose) はストリーミングデータを S3、Redshift、OpenSearch などの宛先に自動配信するデリバリーサービスです。Amazon Managed Service for Apache Flink (旧 Kinesis Data Analytics) は Apache Flink でストリーミングデータをリアルタイムに分析します (SQL アプリケーション版は 2026 年 1 月に廃止)。Kinesis Video Streams は動画ストリームの取り込みと処理に特化しています。 Kinesis Data Streams のオンデマンドストリームを CLI で作成する例: aws kinesis create-stream --stream-name click-stream --stream-mode-details StreamMode=ON_DEMAND でストリームを作成し、Lambda のイベントソースマッピングを設定: aws lambda create-event-source-mapping --function-name process-clicks --event-source-arn arn:aws:kinesis:ap-northeast-1:123456789012:stream/click-stream --starting-position LATEST --batch-size 100 --parallelization-factor 2 で並列処理を有効化します。

Lambda との統合によるサーバーレスストリーム処理

Kinesis Data Streams と Lambda の統合は、サーバーレスなリアルタイムデータ処理の代表的なパターンです。 Lambda は Kinesis のシャードからレコードを自動的にポーリングし、バッチ単位で処理関数を呼び出します。 Enhanced Fan-Out を使えば、コンシューマーごとに専用のスループット (シャードあたり 2 MB/秒) が確保され、複数のコンシューマーが互いに影響を与えずに並列処理できます。 Lambda のイベントソースマッピングでは、バッチサイズ、バッチウィンドウ、並列化係数などを細かく制御でき、処理のレイテンシとスループットを最適化できます。エラー発生時のリトライ、デッドレターキューへの転送、ビスプリット (bisect) によるバッチ分割など、エラーハンドリングの機能も標準で提供されます。オンプレミスの Kafka + コンシューマーアプリケーションでは、これらの機能を自前で実装する必要があり、開発と運用の負荷が増えます。

スケーラビリティとコスト効率

Kinesis Data Streams はシャード単位でスケールし、各シャードは書き込み 1 MB/秒、読み取り 2 MB/秒のスループットを提供します。オンデマンドモードでは、トラフィックに応じてシャード数が自動的に調整されます。Amazon Data Firehose は従量課金です。最小料金やセットアップ費用は発生しません。データの圧縮と変換を Firehose 内で実行できます。データ保持期間は標準で 24 時間、最大 365 日まで延長でき、再処理やリプレイのユースケースにも対応します。

代表的なユースケースと適用判断

リアルタイムストリーミングが価値を発揮するのは、データが発生した瞬間に近いタイミングで処理 / 判断する必要がある場面です。アクセス状況やシステムの状態を即座に可視化するリアルタイム監視、不正な取引をその場で検知する仕組み、利用者の行動に即応するレコメンドなどが典型例です。一方、日次のレポート作成や、まとめて集計すれば十分な処理には、バッチ処理のほうがシンプルで経済的です。求められる即時性が、ストリーミングを使うべきかの判断基準になります。リアルタイム性が本当に必要かを見極め、必要な部分にだけストリーミングを適用することが、過剰な複雑さを避ける設計につながります。

まとめ - リアルタイムストリーミング基盤の選択

Amazon Kinesis は、リアルタイムデータストリーミングのフルマネージド基盤として、収集から処理、分析、配信までを扱えます。オンデマンドモードによる自動スケーリングと従量課金により、小規模な PoC から大規模な本番ワークロードまで対応できます。リアルタイムデータ処理基盤の構築を検討する組織にとって、Kinesis は候補の 1 つです。

参考資料 (AWS 公式)

本ページの一次情報は AWS 公式サイトと公式ドキュメントです。最新の仕様と料金は次の公式ページで確認できます。

本ページと公式ドキュメントの記述が食い違う場合は、公式ドキュメントを正としてください。

共有する