コンテンツにスキップ

Kinesis@AWSリソース

はじめに

本サイトにつきまして、以下をご認識のほど宜しくお願いいたします。


01. Kinesis Data Streams

Kinesis Data Streamsとは

リアルタイムなストリーミングデータ (例:動画データ、音声データなど) を継続的に収集し、保管する。


02. Kinesis Data Firehose (Kinesis Delivery Stream)

Kinesis Data Firehoseとは

リアルタイムなストリーミングデータ (例:動画データ、音声データなど) を継続的に収集し、保管/可視化/分析/レポート作成/アラートができる外部サービスやAWSリソースに転送する。

転送時にAWS Lambda関数を使用することにより、収集したデータを加工できる。

より非マネージにストリーミングしたい場合は、ストリーミングツール (例:Apache Kafka) を使用する。

Kinesisを使用せずに、リアルタイムなストリーミングデータを直接的に送信しても良いが、通信頻度が瞬間的に増加することなく定常的に送信できる。


02-02. セットアップ

コンソール画面の場合

▼ 設定項目と説明

項目 説明 補足
DNSレコードの変換 バッファーに蓄えられたログを、指定された形式で転送する前に、テキストの内容を変換する。 AWS Lambdaを使用する。
- https://docs.aws.amazon.com/firehose/latest/dev/data-transformation.html
転送先 転送先とするS3バケットを設定する。
ディレクトリ名 S3への転送時に、S3に作成するディレクトリの名前を設定できる。デフォルトでYYYY/MM/dd/HH形式でディレクトリが作成され、執筆時点 (2021/11/09) では、UTCのみ設定できる。 もしJSTにしたい場合はAWS Lambdaに変換処理を実装し、Kinesis Data Firehoseと連携する必要がある。
- https://qiita.com/qiita-kurara/items/b697b65772cb0905c0f2#comment-ac3a2eb2f6d30a917549
バッファー Kinesis Data Firehoseでは、受信したログを一旦バッファーに蓄え、一定期間あるいは一定サイズが蓄えられた時点で、ログファイルとして転送する。この時、バッファーに蓄える期間や上限サイズを設定できる。 https://docs.aws.amazon.com/firehose/latest/dev/basic-deliver.html#frequency
ファイル形式 転送時のファイル形式を設定できる。 ログファイルの最終到達地点がS3の場合は圧縮形式で問題ないが、S3から加えて他のツール (例:Datadog) に転送する場合はデータ形式を設定しない方が良い。
バックアップ 収集したデータを加工する場合、加工前データを保管しておく。
暗号化
エラーログの収集 データの転送時にエラーが発生した場合、エラーログをAWS CloudWatchログに送信する。
IAMロール Kinesis Data FirehoseがAWSリソースにデータを転送できるように、認可スコープを設定する。 KinesisではIAMロールの細やかな設定が正しく動作しないことがあり、最小認可スコープを諦め、FullAccess権限のロールを付与してしまう方がよい。最低限、AWS CloudWatchログとS3の認可スコープが必要である。
メトリクス 受信サイズ、リモート書き込みサイズなどを収集する。


03. Kinesis Data Analytics

Kinesis Data Analyticsとは

リアルタイムなストリーミングデータ (例:動画データ、音声データなど) を継続的に収集し、分析する。