初めに
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