2021/05/17

AWSのKinesis Data Firehoseとは?特徴や料金などをご紹介

 
  

AWSのKinesis Data Firehoseとは


Amazon Web Services(AWS)のKinesis Data Firehoseは、データをリアルタイムで配信するストリーミングサービスです。Amazon Kinesisの機能の一種です。

ストリーミングデータを取り込み、分析ツールやデータレイクなどのリソースへ配信します。分析やモニタリングなど、継続的にデータを収集したいユースケースに適します。

Amazon Kinesisとは

Amazon Kinesisは、リアルタイムでデータの収集、分析、処理を行うサービス群です。

上記のData Firehoseに加え、ストリーミング動画を取り扱うVideo Streams、データの収集・処理を行うData Streams、データ分析に特化したData Analyticsの4種類で構成されています。

AWSのKinesis Data Firehoseの特徴


この項目では、AWSのKinesis Data Firehoseの特徴についてご紹介します。

他のKinesisサービスと比較すると、こちらはデータ配信に特化しているのが特徴です。なお、KinesisサービスのうちData StreamsはData Firehoseと統合されており、あちらに保存されているデータを取り込んで他のリソースへ配信することが可能です。

特徴1:データをリアルタイムで取り込める

AWSのKinesis Data Firehoseは、データをリアルタイムで取り込み、各リソースへ配信できます。

新しいデータを短期的かつ継続的に入手できることで、運用状況の把握、問題の早期発見、ビジネスプランの立案などに活用できます。

特徴2:配信可能なリソースが豊富

AWSのKinesis Data Firehoseは、配信可能なリソースが豊富に存在します。

AWS内では、Simple Storage Service(S3)バケット、Redshiftテーブル、Elasticsearch Service(ES)にデータを配信できます。AWS PrivateLinkを用いることで、Virtual Private Cloud(VPC)との接続も可能です。

さらに、HTTPエンドポイントや、Datadog、Dynatrace、LogicMonitor、New Relic、MongoDB、Splunk、Sumo Logicといった他社製ツールにも対応しています。

Redshiftで分析したり、Datadogでモニタリングしたりと、さまざまな形でデータを活用できます。

特徴3:自動管理機能

AWSのKinesis Data Firehoseは、システムを自動で管理します。

設定を完了すると、その後のプロビジョニングや管理は自動的に実行されます。また、配信されているデータのサイズに応じてスケーリングを行う機能も搭載されています。

起動後の管理を省略できることで、ワークロードの効率を高められます。

特徴4:データ形式を変換できる

AWSのKinesis Data Firehoseは、配信開始前にデータを変換する機能があります。

有効化することで、データを取り込んだ時にLambda関数が呼び出され、その記述に沿って形式が変換されます。例えば、システムログをJSON形式に変換してS3に保存する、Apache ParquetまたはORC形式に変換してクエリを高速化する、といった使い方があります。

Data Firehoseにはデフォルトで変換用の関数が用意されており、これを用いることですぐに変換を開始できます。デフォルトの関数をカスタマイズしたり、独自の関数を用意したりすることも可能です。

なお、形式変換を有効化した場合、配信可能なリソースはS3のみになります。RedshiftやES、Splunkなどへの配信はできなくなるので注意しましょう。

特徴5:CloudWatchによるモニタリング

AWSのKinesis Data FirehoseはCloudWatchと統合されており、配信状況をモニタリングできます。

取り込んだデータの量、配信したデータの量、配信にかかった時間などを記録し、メトリクスとして表示します。設定が変更されたり、制限を超えそうになったりするとアラームを発信することもできます。

これらにより、データの取り込みや配信が正常に行われているかをチェックできます。

AWSのKinesis Data Firehoseの開始方法


この項目では、AWSのKinesis Data Firehoseの開始方法について、流れを簡単にご紹介します。

名前とデータソースの指定→形式変換の設定→配信先の選択→その他の設定の4ステップを踏んでいきます。

配信ストリーム名とデータソースの入力

最初に、配信ストリームの名前とデータを取り込む方法を入力します。

データを取り込む方法としては、Kinesis Data Streamsから直接取り込む方法と、Kinesisエージェント、SDK、CloudWatch Logs、CloudWatch Eventsといったサービスを経由する方法があります。

各項目の入力が完了したら、次のステップへ進みます。

データ変換の設定

次に、データ変換の設定を行います。

データ変換を有効にする場合は[Enabled]、無効にする場合は[Disabled]を選択します。

有効にした場合は、変換時に呼び出すLambda関数も指定します。この時、デフォルトの設計図を用いるか、独自に用意した関数を用いるかを選択できます。

選択が完了したら、次のステップへ進みます。

配信先となるリソースの選択

次に、配信先となるリソースを選択します。

選択したリソースによって、その後の入力内容は異なります。例えば、S3を選択した場合はバケットやPrefixを入力し、Redshiftを選択した場合はクラスターやデータベース、テーブル、パスワードなどを入力します。

選択が完了したら、最後のステップへ進みます。

その他の詳細設定

最後に、その他の詳細設定を行います。

まず、バッファサイズとバッファ間隔を入力します。これらを設定することで、送られてきたデータを指定したサイズにバッファし、指定した間隔ごとにデータを各リソースへ配信します。指定できる値の範囲は、配信先によって異なります。

その他、圧縮や暗号化、エラーログ記録の有効/無効、アクセス権限などの設定を行います。

これらの入力を終えて[Create Delivery Stream]をクリックすれば、Data Firehoseの配信ストリームが作成されます。

なお、デフォルトでテスト用のサンプルデータが用意されています。まずはそのサンプルを使ってテストを実施し、正常に配信されているかどうか確認してみましょう。

AWSのKinesis Data Firehoseの料金


AWSのKinesis Data Firehoseの料金は、取り込んだデータの量、形式変換を行ったデータの量などで決定します。下記の例は、いずれも東京リージョンに準じます。

取り込んだデータ1GBにつき、0.036USDが月ごとに課金されます。1カ月間で取り込んだ量が一定数を超えると、1GBあたりの料金は値下がりしていきます。

データの形式を変換した場合は、1GBにつき0.022USDが課金されます。

見積もりの際は、S3やRedshiftなど、配信先となるリソースの料金も加味しておきましょう。

出典:Amazon Kinesis Data Firehose 料金│AWS
参照:https://aws.amazon.com/jp/kinesis/data-firehose/pricing/

AWSのKinesis Data Firehoseを活用してみよう


この記事では、AWSのKinesis Data Firehoseについてご紹介しました。

取り込んだデータをさまざまなリソースにリアルタイムで配信し、分析や処理を迅速に行えるようになります。

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エンジニアを目指すとこんな道がある【キャリアチェンジアカデミー】