LoginSignup
0
1

More than 1 year has passed since last update.

Kinesis Data Firehoseを使ってみた

Last updated at Posted at 2023-03-16

Amazon Kinesis Data Firehose

Amazon Kinesis Data Firehose は、ストリーミングデータを確実にキャプチャおよび変換し、データレイク、データストア、および分析サービスに配信する、抽出、変換、ロード (ETL) サービスです。

大量のデータをS3に送る要件があったため、Kinesis Data Firehoseを検証してみた。

概要

たくさんのデータがくるので、それをさっさとS3に放り投げたい。
image.png

前提

  • S3バケットは作成済み。
  • EC2インスタンスも作成済み。

配信ストリームを作る。

KDFを選び、配信ストリーム作成をクリック。
image.png

ソースはDirectPut、配信先はS3を指定。
image.png

配信ストリーム名などをよしなに決める。
image.png

配信先として、S3バケットを指定する。
image.png

バッファサイズを指定する。
image.png
あまりバッファしないで、S3にバケツリレーでさっさと流してほしいので、最小の60秒に指定。
image.png

データの加工をするかを選択。gzipやzipにすることができる。今回は特にないのでdisable。
image.png

データを暗号化するかの選択。暗号化はしないのでdisable。
image.png

Create・・・でストリームを作成する。
image.png

Kinesisエージェントインストール

OS種別に応じてインストールする。
以下はRHELの場合。

$ sudo yum install https://s3.amazonaws.com/streaming-data-agent/aws-kinesis-agent-latest.amzn2.noarch.rpm 

自動起動に指定。

$ sudo systemctl enable aws-kinesis-agent.service

サービスを起動。

$ sudo systemctl start aws-kinesis-agent.service

サービスの起動確認。

$ sudo systemctl status aws-kinesis-agent.service

設定ファイルを確認。

$ sudo ls -l /etc/aws-kinesis/agent.json

設定ファイルデフォルト版をコピー。

$ sudo cp -p /etc/aws-kinesis/agent.json /etc/aws-kinesis/agent.json.default

設定ファイルを編集。

$ sudo vi /etc/aws-kinesis/agent.json
/etc/aws-kinesis/agent.json
{
  "cloudwatch.emitMetrics": false,
  "kinesis.endpoint": "",
  "firehose.endpoint": "https://firehose.ap-northeast-1.amazonaws.com",

  "flows": [
    {
      "filePattern": "READFILE",
      "deliveryStream": "KDF-STREAMNAME"
    }
  ]
}

"filePattern": "READFILE"のREADFILEは、読み取ってS3送るデータのファイルを指定。
"deliveryStream": "KDF-STREAMNAME"は、先ほど作ったKDFの配信ストリーム名を指定。ARNなどではなく、名前でOK。
"firehose.endpoint": "https://firehose.ap-northeast-1.amazonaws.com"
はEC2インスタンスのリージョンに応じた名前に変更する。これでファイルを保存する。

設定ファイルを再読み込みさせるため、サービスの再起動。

$ sudo systemctl restart aws-kinesis-agent.service
$ sudo systemctl status aws-kinesis-agent.service

これでKinesisDataFirehoseでデータが送られるようになった。

S3でデータが届いたか確認

S3を開くと、勝手に日付ディレクトリが切られて、ファイルが生成されている。
このファイルをダウンロードして開くと、EC2インスタンスでKinesisエージェントが読み取ったデータであることを確認できた。
image.png

超簡単にストリーミングデータ処理ができてしまった。。。クラウドはこういうところが本当に素晴らしい。

0
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
1