各種ログ等のストリーミングデータ を処理するために設計されていて、データの収集・処理・分析を行うことができる。
AWSセミナー資料
https://www.slideshare.net/slideshow/embed_code/key/1FOYKqQGXtjjIh?startSlide=8
Data Pipelineとの違い
Pipeline は保存場所にあるデータに定期的にアクセスし、データの変換と処理を行い、その結果を Amazon S3、Amazon RDS、Amazon DynamoDB、Amazon EMRなどに転送する。そのため、リアルタイムで処理が求められるような要件には不向き
Kinesis Stream / Kinesis Firehose の違い
Kinesis Streamsは次々と送られる大量のデータをリアルタイムに収集、次のサービスに配送するためのサービスです。一方Kinesis Firehoseは同じく次々と送られる大量のデータをRedShiftやS3に流し込むサービスです。
ではこの2つのサービスは、どのような違いがあって、どう使い分けるべきなのか?
Kinesis Streamsは「リアルタイム」「カスタム」

データを受け取ったあと、 何らかの処理 をしてから保存するためのサービス。
Kinesis Streamsの最大の特徴は 低レイテンシー であること。
Kinesis Firehose がデータロードまで60秒かかるのに対し Kinesis Streams は1秒以下でのデータロードで設計されている。 Kinesis Streams の主なユースケースとしては「次々に生成されるデータの内容をリアルタイムに加工、表示させたい」というニーズへの対応になる。
Lambda / EC2 等でStreamsレコードを取得してすぐに加工・表示できる
Kinesis Firehoseは「Zero Administration」「ダイレクト」

Kinesis Firehoseの特徴は Zero Administration
= 管理不要 という点。
Kinesis Streamsと違って、EC2からポーリングしたりLambdaのコードを書く必要がない。設定を行うだけでS3やRedshiftにデータをそのまま流すことが可能。
Amazon Kinesis Data Firehose は、ストリーミングデータをデータレイクやデータストア、分析ツールへ簡単に送信する方法です。
ストリーミングデータをキャプチャして変換し、「Amazon S3」、「Amazon Redshift」、「Amazon Elasticsearch Service」、「Splunk」などへ送信し、お使いのビジネスインテリジェンスツールやダッシュボードでほぼリアルタイムに分析できます。
完全マネージド型サービスのため、データスループットに応じて自動的にスケールされますので、継続的な管理は不要です。
送信前にデータのバッチ処理、圧縮、変換、暗号化が行われるため、送信先でのストレージ量を最小化し、セキュリティを強化できます。Kinesis Data Firehose を使用すると、アプリケーションを記述したり、リソースを管理したりする必要はありません。
Kinesis Data Firehose にデータを送信するようデータプロデューサーを設定すると、指定した送信先にデータが自動的に配信されます。
AWS マネジメントコンソールから Firehose デリバリーストリームを簡単に作成して、設定すればわずか数分で大量のデータソースからストリームにデータ送信を開始して、AWS に継続的に送信できます。
Kinesis Data Firehose を利用した場合、使用した分のみの料金が発生いたします。最低料金や初期費用は必要ありません。
ユースケース
WEBサーバーのアクセスログやアプリケーションログをリアルタイムで収集し解析(監視)する。
- Kinesis Data Firehoseストリームを作成して、データストリームを取得
- Kinesis Data Firehose でデータストリームをS3バケットに保存
- 必要に応じて利用頻度の低いデータを Glacier に移動するライフタイムサイクルを設定
Kinesis でログデータを監視、特定条件を満たした場合 CloudWatch Events
をトリガーとして Lambda 実行・SESメール通知など