🙌

AWS認定DAS勉強:Kinesis Data Stream vs SQS

2022/04/29に公開

初めに

Kinesis Data StreamとSQSは役割がちこっと似ている。pub/subサービスという意味で。

結論

KinesisとSQSのユースケースの違い

Kinesis SQS
ビッグデータ向けのユースケース 開発向けのユースケース
速いログやイベントデータを収集し処理する 注文を処理する
リアルタイムなメトリクスレポート 画像処理をする
モバイルデータキャプチャ メッセージによってキューをオートスケールする
リアルタイムデータ解析 メッセージをバッチ処理する
複雑なストリーム処理 リクエストをオフロードする
ゲームやIoTからのデータ取り込み

Kinesis Data StremaとSQSとの比較

Kinesis Data Stream SQS
データは何度も処理できる アプリケーション同士を切り離す
データは特定の時間が過ぎたら消える アプリケーションごとにキューは一つ
シャード単位では順番は保たれる データは利用後に削除される
複数のアプリから読み込みが可能 データはの順番は守られるとは限らない
MapReduceのクエリで読み込みができる データ順番を遵守したい場合はFIFOキューを使う
データ利用状況を追跡できるチェックポイント機能がある メッセージを遅延させることができる
キャパシティはシャードで管理される バッチ読み込みができる
IMBのデータペイロード 256KBのメッセージペイロード

サービスごとの違い

- Kinesis Data Streams Kinesis Data Firehose Amazon SQS Standard Amazon SQS FIFO
Managed by AWS yes yes yes yes
Ordering Shard / Key no no Specify Group ID
Delivery at least once at least once at least once exactly once
Replay yes no no no
Max Data Retention 365days no 14 days 14 days
Scaling Provsion Shards. 1MB/s producer. 2MB/s consumer no limit no limit 3000 messages per second with batching(soft limit)
Max Object Size 1MB 128MB at destination 256KB(more if using extended lib) 256KB

Discussion