はじめに
前回は『Amazon Athena編~QuickSightからの接続を試してみる~』と題して、Amazon AthenaにQuickSightからの接続を試してみました。
今回は『【AWS入門】Amazon Kinesis Firehoseでデータ変換を簡単に』と題して、Amazon Kinesis Firehoseにデータ変換を試してみたいと思います。
本記事の概要
- Amazon Kinesis Firehoseのユースケースをご紹介いたします
- Amazon Kinesis Firehoseを使用し、Apache logをCSVにするBlueprintを試してみます
- 結論、CSVに変換されました!
ユースケース
機械学習、分析、その他のアプリケーションに用いる動画、音声、アプリケーションログ、ウェブサイトのクリックストリーム、IoT テレメトリーデータをリアルタイムで取り込めます。
動画分析で、Amazon Kinesis を使うと、家庭、オフィス、工場、公共施設で、カメラを装備したデバイスからの動画を AWS に安全にストリーミングできます。これらのビデオストリームは動画再生、セキュリティモニタリング、顔検出、機械学習、その他の分析に使用できます。
Amazon Kinesis Firehose Data Transformation
Amazon Kinesis Firehose ではData TransformationとしてLambdaとの連携によるデータ変換機能を利用することが出来るようになりました。
こちらを利用する事でApache logをCSV形式やJSON形式に変換するなどが簡単に出来るようになります。
Blueprintとして以下が既に用意されております。
今回はApache logをCSVにするBlueprintを試してみたいと思います。
・General Firehose Processing — 必要な処理が記述してあるサンプル
・Apache Log to JSON — Apache log を JSON 形式に変換
・Apache Log to CSV — Apache log を CSV 形式に変換
・Syslog to JSON — Syslog を JSON 形式に変換
・Syslog to CSV — Syslog を CSV 形式に変換
1.Kinesis Firehose の準備
最初にKinesis Firehose を設定していきます。
東京にはまだ来てないのでVirginiaで進めていきます。
2.Data transformation の設定
次の設定画面でData transformationの設定を進めていきます。
「Enable」を選択して「Create a new Lambda function」をクリックします。
表示されたBlueprintからApache Log to CSVを選択します。
コードが登録された状態でLambda作成画面に進みます。
LambdaにKinesis Firehoseへの必要権限を付与して作成します。
Kinesis Firehoseの設定画面で先程作成したLambdaを選択します。
また、Kiensis Firehose側でもLambdaを呼ぶなどの必要権限を付与して作成します。
3.確認してみる
それでは実際に確認してみます。
次のコマンドでKinesis FirehoseにApache Logをテスト送信します。
1 2 3 4 5 6 |
$ aws firehose put-record --delivery-stream-name kctest --record Data=file://test.log $ cat test.log { "Data": "127.0.0.1 - - [10/Feb/2017:17:13:20 +0900] \"GET / HTTP/1.1\" 200 11764 \"-\" \"curl/7.35.0\"" } |
しばらく待つと処理された結果がS3に溜まります。
終わりに
今回はAmazon Kinesis Firehoseを使用し、Apache logをCSVにするBlueprintを試してみました。
現在は、東京リージョンでも使えるようになっておりますので、ぜひ試してみてください。
個人的には、Kinesis Streamsとは違い、EC2からポーリングしたりLambdaのコードを書く必要がないのがうれしいポイントです。
では、また!