ログ収集基盤に求められる要素技術を理解する
○○○じゃダメなのか
単なるアプリケーションサーバー
- 秒間数百とか大量のデータを受け付ける場合に向いてない。
SQSじゃダメなのか
- キューイングが目的だけど、SQSは大量のデータを受け付けることは目的としてない。
- SQSは命令をつっこむ、別のworkerがそれを取得して処理をキックするみたいな使い方に向いている。
参考: Amazon SQS と Kinesis はどう違うのか?~ユーザが求めるキュー(queue)の姿~|AWSを使い倒せ | GiXo Ltd.
ストリームデータ処理
こういう、大量にリクエストがきて、低レイテンシで処理をしなきゃいけない場合は、ストリームデータ処理というジャンルの話になってくる。
ただし、単にストリームデータ処理といっても以下のような要素で構成されている。
- 大量のデータを受け付ける口
- メッセージキューイング、ユニークIDなどの付与
- データ処理
AWSでストリームデータ処理するには
AWSであれば
- 大量のデータを受け付ける -> kinesis
- メッセージキューイング、ユニークIDなどの付与 -> kinesis
- データ処理 -> EC2上のkinesis application とか Lambda
Amazon kinesisで広がるリアルタイムデータプロセッシングとその未来
GCPでストリームデータ処理するには
GCPであれば
- 大量のデータを受け付ける -> pub/sub
- メッセージキューイング、ユニークIDなどの付与 -> pub/sub
- データ処理 -> Dataflow