2021/05/27

AWSでストリーミングデータを保存するKinesis Firehoseについて解説

 
  

Amazon Kinesisとは?


Amazon Kinesisとはストリーミングデータを収集・処理・分析するためのAWSのサービス群になります。Amazon Kinesis Data Firehoseを解説する前に、Amazon Kinesisについて言及したいと思います。

Amazon Kinesisの中には、Amazon Kinesis Data Firehose以外にも、Amazon Kinesis Data Streams、Amazon Kinesis Data Analytics、Amazon Kinesis Video Streamsといったサービスも存在します。

これらのサービスはAmazon Kinesis Data Firehoseと連携させることができます。

Amazon Kinesis Data Streamsとは?

Amazon Kinesis Data Streamsとは大量に送信されてくるストリーミングデータを別のサービスに届けるためのサービスです。センサーやPC、スマホなどから送信される大量のストリーミングデータの受付を行うのがKinesis Data Streamsの役割です。

Kinesis Data StreamsをデータソースとしてKinesis Data Firehoseにデータを配信することが可能です。

Amazon Kinesis Data Analyticsとは?

Amazon Kinesis Data Analyticsとはストリーミングデータをリアルタイムで変換や分析を行うためのサービスです。この変換や分析にはApache Flinkと呼ばれるオープンソースのフレームワークが使用されます。

このKinesis Data Analyticsの特徴はリアルタイムで変換や分析ができる点になります。即時性が求められるようなユースケースに適しているサービスと言えます。

Amazon Kinesis Video Streamsとは?

Amazon Kinesis Video Streamsとは外部で取得された動画データをストリームとして保存し、配信や分析を担当する別サービスに展開することができるサービスです。

ドローンやラズベリーパイなどのIoTデバイスで撮影された動画データの送信先としてAmazon Kinesis Video Streamsを利用するといったことが考えられます。

Amazon Kinesis Data Firehoseとは?

Amazon Kinesis Data Firehoseとはリアルタイムのストリーミングデータを他のデータストアに配信するサービスです。

S3やRedshift、Elasticsearchなどといった他のAWSのマネージドサービスを配信先として指定することができます。

Kinesis Data Firehoseのメリット

Amazon Kinesis Data Firehoseの主なメリットは4つあります。 リアルタイム性・サーバレスでのデータ変換・多様なサービスへの連携・リーズナブルな料金体系の4つです。

メリット1

1つ目のメリットは、リアルタイム性です。ほぼリアルタイムでデータの読み込みが行われます。データをリアルタイムで分析したい場合は、Kinesis Data Firehoseは非常に良い選択肢です。

メリット2

2つ目のメリットは、サーバーレスでのデータ変換です。データストアにデータを保存する前に、Amazon Kinesis Data Firehoseを利用することで、適切な形式でデータストアに保存することができます。

メリット3

3つ目のメリットは、多様なサービスへの連携が可能な点です。S3、Redshift、 ElasticsearchといったAWSのマネージドサービス以外にもDatadog、MongoDBといったフレームワークとも連携することが可能です。

HTTPを経由してAWS外のサービスにも柔軟に連携できるのが良い点です。

メリット4

4つ目のメリットは、リーズナブルな料金体系です。Amazon Kinesis Data Firehoseは他の多くのAWSサービスと同様に従量課金の料金体系です。同サービスに送信したデータ量や変換を行ったデータ量に対してのみ課金されます。

Kinesis Data Firehoseのユースケース

Amazon Kinesis Data Firehose主なユースケースは以下の3つです。

ユースケースの1つ目はIoTデバイスとの連携です。家電製品や埋め込みセンサーといったIoTデバイスから送信されるストリーミングデータの配信先としてAmazon Kinesis Data Firehoseを指定することが考えられます。

ユースケースの2つ目はアプリケーションのログ分析です。アプリケーションで発生したログデータの収集や分析を行う手段としてAmazon Kinesis Data Firehoseは有効です。リアルタイムでログデータの可視化を行うことができます。

ユースケースの3つ目はモニタリングです。Amazon Kinesis Data FirehoseはSplunkに対してデータを送信することができます。

トラフィックフローなどのログをAmazon Kinesis Data Firehoseを経由してSplunkに送信することで、ネットワークのセキュリティをリアルタイムで監視することができます。

Amazon Kinesis Data Firehoseの構成要素

Amazon Kinesis Data Firehoseを利用する際には配信ストリームを作成する必要があります。配信ストリームを作成した後、作成された配信ストリームにデータを送信する必要があります。このデータの送信元をプロデューサーと呼びます。

配信ストリームの作成

Amazon Kinesis Data Firehoseを利用するにはまず配信ストリームを作成する必要があります。AWSのコンソールにて配信ストリームを作成することができます。

AWSのコンソールにログイン後、Amazon Kinesis Data Firehoseのコンソールを開きます。「Data Firehose」> 「Create Delivery stream」と選択することで配信ストリームを作成することができます。名前を指定した後、「次へ」を押下します。

次の画面では、送信されたストリーミングデータの処理に関して設定を行うことができます。必要に応じて設定を行ってください。AWS Lambdaを連携させることもできます。「次へ」を押下すると送信先を指定することができます。

最後に配信ストリームの宛先を選択することができます。S3、Amazon RedshiftといったAWSのマネージドサービスを指定することができるのはもちろんのこと、AWS外のHTTPエンドポイントを指定することも可能です。

プロデューサーからのデータ配信

配信ストリームを作成した後は、作成されたストリームにデータを配信する必要があります。Amazon Kinesis Data StreamsなどのAWSのサービスから配信することもできますし、エージェントやSDKを利用することで独自のアプリケーションから配信を行うこともできます。

Kinesis Data Streamsを利用したデータ配信

Amazon Kinesis Data Firehoseと連携しやすいAWSのサービスは関連サービスであるAmazon Data Streamsです。 Kinesis Data Firehoseコンソールの「送信元」にて任意のKinesisストリームを選択することで連携が可能となっています。

SDKを用いたデータ配信

SDKをアプリケーションに組み込むことでAmazon Data Firehoseにデータを配信することができます。Java, .NET, Node.js, Python, Rudyといったプログラミング言語に対してSDKが用意されています。

エージェントの利用

KinesisエージェントをサーバーにインストールすることでAmazon Kinesis Data Firehoseにデータを配信することができます。このKinesisエージェントはスタンドアロンのJavaアプリケーションとなっています。

AWSでストリーミングデータを保存しよう

Kinesis Data Firehoseはストリーミングデータを保存するために便利なサービスです。リアルタイムでのデータ保存が必要になった場合は、ぜひ活用してください。

ITエンジニアへのキャリアチェンジならキャリアチェンジアカデミー

この記事の監修者・著者

株式会社オープンアップITエンジニア
株式会社オープンアップITエンジニア
未経験からITエンジニアへのキャリアチェンジを支援するサイト「キャリアチェンジアカデミー」を運営。これまで4500人以上のITエンジニアを未経験から育成・排出してきました。
・AWS、salesforce、LPICの合計認定資格取得件数:2100以上(2023年6月時点)
・AWS Japan Certification Award 2020 ライジングスター of the Year 受賞

おすすめの動画

  • 【未経験からIT業界へ転職するなら】相談窓口とスキルの獲得はここで解決!IT転職が一気に有利に!【キャリアチェンジアカデミー】

  • 【費用一切不要】未経験からIT業界へ転職するならまずはここへ相談!【キャリアチェンジアカデミー】

  • 【何のエンジニアになれるのか?】未経験からITエンジニアを目指すとこんな道がある【キャリアチェンジアカデミー】