Amazon Kinesisとは|Data Streams・Firehoseの仕組みと料金・実装・採用判断を解説
Amazon Kinesis(アマゾン キネシス)は、絶え間なく流れ込むデータを発生した端から収集し、処理・配信するためのAWSのストリーミングサービス群です。Webのクリックログ、IoT機器のセンサー値、アプリのイベントといった「止まらないデータ」を、まとめて夜間バッチで扱うのではなく、秒単位で受け取って次の処理へ渡す用途に向きます。この記事では、Kinesis を構成する4つのサービスの役割分担、中核である Kinesis Data Streams のシャードと容量モード、料金体系、Lambda を使った処理の実装、そして Apache Kafka や SQS と比べていつ Kinesis を選ぶかまでを、実装者の目線で整理します。
目次
まとめ:Kinesisはリアルタイムデータを流し込む4つのサービス群
先に全体像を示します。Amazon Kinesis は単一の製品ではなく、役割の異なる4サービスの総称です。柱となるのは、生のデータストリームを保持して複数の処理系へ配る Kinesis Data Streams、収集したデータを S3 や Redshift などへ届ける Amazon Data Firehose(旧 Kinesis Data Firehose)、ストリームに対して集計や変換をかける Amazon Managed Service for Apache Flink(旧 Kinesis Data Analytics)、そして映像を扱う Kinesis Video Streams の4つです。
迷ったときの起点はシンプルです。データを一度受けて自分で書いた複数の処理へ配りたいなら Data Streams、S3 やデータレイクへ届けるだけでよいなら Firehose、流れる途中で集計・加工したいなら Managed Service for Apache Flink を選びます。まずは Firehose で S3 へ流し、要件が固まってから Data Streams と処理系を足していく、という段階的な組み方が現実的でしょう。
Amazon Kinesisの基本|4サービスの役割と使い分け
Kinesis を理解する近道は、4サービスを「どこを担うか」で並べて見ることです。まとめて夜間に処理するバッチとの違いも、ここで押さえておきます。
Kinesisを構成する4つの主要サービスの役割分担と使い分け
Kinesis Data Streams は、送られたデータを一定期間ためて、複数のコンシューマー(読み手)へ同じデータを配れる「土管」です。順序保証とリプレイ(再読込)ができ、自作の処理を複数ぶら下げたいときの基盤になります。Amazon Data Firehose は、集めたデータを S3・Amazon Redshift・Splunk・Snowflake といった宛先へ届けることに特化したフルマネージド配信で、コードもシャード管理も不要です。Amazon Managed Service for Apache Flink は、流れるデータに対して時間窓での集計や結合をかけるストリーム処理エンジンにあたります。Kinesis Video Streams は監視カメラや車載映像などの動画取り込み専用です。データ分析基盤の構築と5層アーキテクチャの解説で言えば、Kinesis は「収集」層を担う部品として位置づけられます。
サービス名の変更点|FirehoseなどAWSの現行サービス名称
調べる際に混乱しやすいのが名称です。Kinesis Data Firehose は2024年2月に「Amazon Data Firehose」へ改称されました。API・エンドポイント・IAM ポリシー・CloudWatch メトリクスに変更はなく、名前だけが変わっています。同様に Kinesis Data Analytics for Apache Flink は「Amazon Managed Service for Apache Flink」へ改称済みです。古い記事やドキュメントでは旧名で書かれている点に注意してください。本記事では現行名を基本に、必要な箇所で旧名を併記します。
Kinesis Data Streamsの仕組み|シャード・容量モード・保持
中核の Data Streams は、シャードという単位と、それをどう確保するかの容量モードを押さえれば設計できます。
Kinesis Data Streamsのシャードと拡張ファンアウト
シャードはストリームの処理能力の単位です。プロビジョンドモードでは、1シャードあたり書き込みが 1MB/秒 または 1,000レコード/秒、読み取りが 2MB/秒(共有)という上限を持ちます。書き込み量が増えればシャード数を増やして帯域を確保する設計です。読み取り側で複数の処理が同じストリームを取り合うと 2MB/秒 を分け合って遅くなるため、コンシューマーごとに専用の 2MB/秒 を割り当てる拡張ファンアウト(Enhanced Fan-Out)が用意されています。対応コンシューマー数は2025年11月に最大50へ拡大し、多数の処理系へ低遅延で配る構成が組みやすくなりました。
オンデマンドとプロビジョンドという2つの容量モードの選び方の基準
容量の確保方法は選べます。プロビジョンドモードはシャード数を運用者が決めて固定する方式で、負荷が読めていて費用を積み上げ計算したい場合に向きます。一方のオンデマンドモードは、スループットに応じてシャードを自動で増減させ、容量計画を裏側へ任せる方式です。オンデマンドには従来の Standard に加え、2025年11月にデータ料金を抑えた Advantage が加わりました。負荷の山谷が読めない立ち上げ期はオンデマンドで始め、定常負荷が見えたらプロビジョンドへ寄せて単価を下げる、という進め方が費用面で堅実です。
Kinesisのデータ保持期間|標準24時間から最大365日
ストリームに入ったデータは一定期間ためられ、その間はコンシューマーが何度でも読み直せます。保持は標準で24時間、延長設定で最大7日、長期保持を有効にすると最大365日までのばせます。障害でコンシューマーが止まっても、保持期間内なら復旧後に取りこぼしを読み直せるのがリプレイの利点です。ただし保持を延ばすほどストレージ課金が増えるため、再処理の要件と費用を見比べて期間を決めます。
Amazon Kinesisの料金|Data Streams容量モード別のコスト
Kinesis の費用は、選んだサービスと容量モードで組み立てが変わります。Data Streams を中心に、どこに課金が乗るかを分解します。
Kinesis Data Streamsのモード別単価と課金要素
プロビジョンドモードは、シャード時間で課金する方式です。単価は約0.015ドル/シャード時(us-east-1・2026年時点)が目安で、確保したシャード数に稼働時間を掛けた分が基本料金になります。オンデマンド Standard は、取り込み約0.08ドル/GB・取得約0.04ドル/GB に、ストリーム時間あたり約0.040ドル/時 が加わる構成です。2025年11月に加わったオンデマンド Advantage は、取り込み約0.032ドル/GB・取得約0.016ドル/GB とデータ単価を約60%抑え、ストリーム固定料金をなくしています。
| モード | 取込/GB | 取得/GB | 固定料金 |
|---|---|---|---|
| プロビジョンド | — | — | 約0.015ドル/シャード時 |
| オンデマンドStandard | 約0.08ドル | 約0.04ドル | 約0.040ドル/ストリーム時 |
| オンデマンドAdvantage | 約0.032ドル | 約0.016ドル | なし |
いずれも us-east-1・2026年時点の目安で、プロビジョンドは別途 PUT ペイロード課金が加わります。
これに加え、延長・長期保持、拡張ファンアウトのコンシューマー時間とデータ取得は個別課金です。まずは小さくオンデマンドで動かし、実測トラフィックから月額を見積もってモードを選び直すと、初期の過大な確保を避けられます。
Kinesisの実装|データの送り込みとLambdaでの処理
実装は「送る側(プロデューサー)」と「読む側(コンシューマー)」に分けて考えると見通しがよくなります。
プロデューサーとコンシューマーの実装方法と順序を保証する仕組み
データを送り込むプロデューサーは、AWS SDK の PutRecord/PutRecords を直接呼ぶほか、高スループット向けには KPL(Kinesis Producer Library)でバッファリングと再送を任せる方法があります。読み取り側のコンシューマーは、複数シャードの割り当てとチェックポイント管理を肩代わりする KCL(Kinesis Client Library)を使うのが定石です。どのレコードまで処理したかを DynamoDB に記録して再開できるため、障害時の重複や取りこぼしを抑えられます。順序が要るデータは、同じパーティションキーを与えると同一シャードへ入り、そのシャード内で順序が保たれます。
AWS Lambda連携でサーバーレスにストリームを処理する
コンシューマーを自前で常駐させたくない場合は、AWS Lambda をイベントソースとして紐づける構成が手軽です。ストリームに届いたレコードがバッチでまとめて Lambda へ渡され、関数側は受け取った配列を処理するだけで済みます。サーバーの起動管理が不要で、シャード数に応じた並列度の調整も自動です。Lambda の課金体系やコールドスタートの考え方はAWS Lambdaの仕組みと料金の解説に整理しており、ストリーム処理の実行基盤を選ぶ判断材料になります。失敗レコードの再試行回数や、捨てずに退避する送信先(オンフェイルの宛先)も設定しておくと、詰まりを防げます。
Kinesisとデータ基盤|S3・DWH・データレイクへの連携
収集した先で何をするかまで含めて設計すると、Kinesis の置きどころが定まります。
Amazon Data Firehoseで S3・Redshift・データレイクへ届ける
集めたデータを蓄積・分析へ回す配線は、Amazon Data Firehose が担います。コードを書かずに、バッファされたデータを Amazon S3 のデータレイクや Amazon Redshift へ配信でき、途中で圧縮・変換・パーティション分割もかけられます。ログや履歴のような大容量データは S3 へ流して安価にため、集計対象はDWHへ、という置き分けが定番です。配信先となる S3 のストレージクラスと料金はAmazon S3の仕組みと料金の解説が、DWH 側の受け皿はAmazon Redshift Serverlessの仕組みの解説が参考になります。生データを広くためるデータレイクの役割はデータレイクとDWH・レイクハウスの違いの解説で整理できます。
Kinesisのストリーミングとバッチ処理型ETLの使い分け
Kinesis は「流れながら処理する」仕組みで、まとめて定期実行するバッチETLとは守備範囲が異なります。数分〜数時間の遅れが許されるデータ統合はバッチETLで十分な一方、不正検知やリアルタイムのダッシュボードのように秒単位の鮮度が要る用途でストリーミングが効きます。両者の考え方の違いはETLとELTの違いとツール選定の解説で押さえておくと、どちらへ寄せるかの判断がぶれません。実務では、鮮度が要る系統だけ Kinesis、それ以外はバッチ、と混在させる構成が多く見られます。
Amazon Kinesisを採用すべき条件と見送るべき場面の判断
ここは言い切ります。Kinesis は「止まらないデータをAWS内で回す」用途にはよく効きますが、すべてのメッセージ処理で最良になるわけではありません。
Kinesisの採用が向く条件|AWS完結のリアルタイム処理
効果が出るのは、大量のイベントを秒単位で受けて、AWS のサービスへ配りたいケースです。IoT のセンサーデータ収集、クリックストリーム分析、アプリのログ集約とリアルタイム可視化などで、フルマネージドゆえに運用負担を抑えられます。すでに S3・Lambda・Redshift を使っていて、その中へストリーミングを差し込みたい構成では、連携のしやすさがそのまま実装工数の削減につながるはずです。AWS 全体の位置づけから設計したい場合は、クラウドとAWSの全体像の解説を先に読むと、Kinesis が担う範囲の輪郭がつかめます。こうしたAWS上のストリーミング基盤の設計・実装を外部に相談したい場合は、AWS・クラウドのインフラ構築で受託の相談を受け付けています。
Kinesisを見送るべき場面|Kafka資産や単純なキュー用途
逆に、あえて選ばない場面もあります。すでに Apache Kafka の運用ノウハウやエコシステムに投資しているなら、互換性の高い Amazon MSK のほうが移行コストを抑えられるでしょう。Kafka と Kinesis の設計思想の違いはRabbitMQとKafkaの違いの解説が土台になります。また、1対1でタスクを渡すだけの単純なジョブキューであれば、順序やリプレイを備える Kinesis はオーバースペックで、Amazon SQS のほうが安く簡潔です。複数コンシューマーへの配信・順序保証・再処理のいずれも要らないなら、まず SQS を検討したほうがよいでしょう。
よくある質問
Amazon Kinesis の料金や他サービスとの違いなど、導入前に迷いやすい点をまとめます。
Kinesis Data StreamsとAmazon Data Firehoseはどちらを使えばよいですか?
自分で書いた複数の処理へ同じデータを配りたい、順序保証やリプレイが要る場合は Data Streams です。S3 や Redshift へ届けるだけでコードを書きたくない場合は Amazon Data Firehose が向きます。Firehose を Data Streams のコンシューマーとして後ろにつなぐ併用構成もよく使われます。
KinesisとApache Kafka(Amazon MSK)の違いは何ですか?
Kinesis はフルマネージドでシャード管理が軽く、AWS サービスとの連携が容易です。Kafka(Amazon MSK)は既存の Kafka 資産やエコシステムを引き継げる反面、運用の作り込み余地が大きくなります。既存の Kafka 資産があるなら MSK、新規でAWS内に閉じるなら Kinesis が一つの目安です。
シャードはいくつ用意すればよいですか?
プロビジョンドでは、書き込み 1MB/秒 または 1,000レコード/秒 を1シャードの上限として、想定ピークを割って必要数を求めます。負荷が読めないうちはオンデマンドモードで自動調整に任せ、定常量が見えてからプロビジョンドへ移すと過不足を避けられます。
Kinesisのデータはどのくらい保持されますか?
標準で24時間、延長設定で最大7日、長期保持を有効にすると最大365日まで保持できます。保持期間内ならコンシューマーが何度でも読み直せますが、期間を延ばすほどストレージ課金が増えます。再処理の要件と費用のバランスで決めてください。
コストを抑えるにはどのモードを選ぶべきですか?
負荷が読めない立ち上げ期はオンデマンドで始め、定常量が見えたらプロビジョンドへ寄せると単価を下げられます。データ料金を抑えたい場合は2025年11月に加わったオンデマンド Advantage も選択肢です。まず実測トラフィックから月額を見積もり、モードを選び直す進め方をおすすめします。
関連記事
- AWS Lambdaとは|仕組み・料金・採用判断:Kinesis ストリームをサーバーレスで処理するコンシューマーの実行基盤を理解できます。
- Amazon S3とは|仕組み・料金・採用判断:Amazon Data Firehose の配信先となる S3 の費用と特性を押さえられます。
- RabbitMQとKafkaの違いとは|設計思想・性能・使い分け:Kinesis と対比される Kafka/MSK の考え方を理解できます。
- データ分析基盤の構築とは|5層アーキテクチャ:Kinesis が担う収集層を分析基盤全体の中で位置づけられます。