3
1

はじめに

AWS認定試験の勉強をしていて、「Kinesis Data Firehose」「Kinesis Data Streams」の違いが明確にわからなくて、問題の回答を導き出すのに「苦労していた。または、苦労している。」経験はありませんか?認定試験では、違いについて理解し、用途や要件に応じて使い分けられるようになる必要があります。今回は、違いがわかるように整理してみました。

1. データ処理速度を優先するか?コストを重視するか?

Amazon Kinesis Data Firehose
・データをバッファリングしてから一定量ごとにまとめて処理するため、処理速度は比較的遅いですが、コストを抑えることができます。
・バッファリング時間を調整することで、処理速度とコストのバランスを調整できます。
Amazon Kinesis Data Streams
・データを逐次処理するため、処理速度は速いですが、コストが高くなります。
・リアルタイム性の高いデータ処理が必要な場合に適しています。

2. ユースケース

  • Kinesis Data Firehose
    簡単なセットアップでデータをターゲットに配信する場合に最適。

    • 大量かつ様々な種類のデータを収集し、データレイクや分析保管場所へロードするのに適しています。
    • センサーデータ、ログデータ、Webサイトトラフィックデータなど、幅広いデータソースからデータを収集できます。
    • データ変換やフィルタリングなどの前処理機能が充実しており、収集したデータをそのまま保存するだけでなく、分析用に加工してから保存することもできます。

ストリーミングデータを収集・変換し、サポートされている AWS サービスやサードパーティサービスなど分析用のデータストアに配信できるフルマネージドサービス です。データ量の増減に合わせて自動でスケールするため、ユーザーが冗長構成などを考える必要はありません。
image.png

https://dev.classmethod.jp/articles/introduction-2024-amazon-data-firehose/ より引用

  • Kinesis Data Streams
    高いスループットと低レイテンシが求められるリアルタイム処理に最適。
    • マイクロ秒単位の低遅延でデータ処理が必要なアプリケーションに適しています。
    • IoT機器やリアルタイム分析システムなど、リアルタイム性の高いデータ処理が必要なユースケースに最適です。
    • データストリームを複数のコンシューマーに分散配信することができ、スケーラビリティと可用性に優れています。

11.PNG

https://pages.awscloud.com/rs/112-TZM-766/images/AWS-Black-Belt_2023_AmazonKinesisDataStreams_0430_v1.pdf より引用

試験でよく問われるのは、送信先です。S3をKinesis Data Firehoseの送信先にすることが出来ますが、S3をKinesis Data Streamsの送信先にする事は出来ません。この図を見てみると、S3が配信先にありませんよね?

4. Kinesis Data Streamsと Kinesis Firehose の違い

特徴/機能 Kinesis Data Streams Kinesis Firehose
主な目的 リアルタイムデータストリームの収集と加工 リアルタイムデータの収集とデータストアへの転送
スケーラビリティ 手動でスケールアップ/ダウンが必要 自動スケーリング
リアルタイム処理 高度なリアルタイムのデータ加工に対応 即時データ転送に焦点
管理とスケーリング ・データはシャードと呼ばれる単位で分割され、各シャードは独立してスケーリング出来る
・手動でシャードを追加/削除する必要がある
・フルマネージドで自動スケーリング
・インフラストラクチャの管理が不要
データの送信先 Lambda、Kinesis Firehose、Kinesis Data Analyticsなど S3、Redshift、Elasticsearch Service、Splunkといったデータストアサービス
データ加工 高度なカスタム処理やフィルタリングが可能 限定された単純なデータ変換のみ可能(例: JSONからParquetに変換
データ変換 データ変換機能は限られている データ変換やフィルタリングなどの前処理機能が充実
処理速度 ミリ秒からマイクロ秒単位 秒単位
コスト 処理時間に基づく データ転送量に基づく
データ保持 データは最大7日間保持され、複数のコンシューマが同じデータを処理可能 データはバッファリング後にターゲットに送信され、保持期間は短い
利用シナリオ 複雑なリアルタイムデータの分析、複数の消費者への配信 単純なリアルタイムデータの転送と保存、データの直接的なストレージへのロード
データソース カスタムクライアントライブラリが必要 数百種類以上のデータソースに対応

試験勉強や、実務での使い分けの参考にして頂けましたら、幸いです。

3
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
3
1