Amazon Kinesis Firehoseがサンプルデータの投入に対応しました
Amazon Kinesis Analytics, Amazon S3, Amazon Redshift, Amazon Elasticsearch Service などとニアリアルタムにストリームデータを連携する Amazon Kinesis Firehose というサービスがあります。
これまでは、システム連携の疎通確認をするには、Amazon Kinesis Firehoseのストリームに対して自前でデータを投入する必要がありました。2016/11/07の機能追加により、組み込みのサンプルデータが用意され、管理画面から簡単にサンプルデータをストリーム形式で投入できるようになりました。
早速この機能を試してみたいと思います。
Amazon Kinesis Firehoseのセットアップ
作業の流れ
Firehose の連携先は複数ありますが、今回は多くの人が使い慣れているであろう S3 と連携させます。
セットアップには以下の作業が発生します。
- ストリーミングデータ連携先S3を作成
- FirehoseがS3に書き込めるためのIAM Roleを作成
- Amazon Kinesis Firehose のストリームを作成
管理画面からウィザード形式でセットアップする場合は、これらの作業をまとめて行えます。
ウィザード形式で Firehose ストリームの作成
Amazon Kinesis Firehoseのトップ画面に移動します。
注意点として、Firehoseは現時点では以下のリージョンでしかサービス展開されていません。
- US East (N. Virginia) us-east-1
- US West (Oregon) us-west-2
- EU (Ireland) eu-west-1
今回は EU(Ireland)を利用しました。
「Create Delivery Stream」ボタンからストリームを作成します
次にウィザードに従い、連携先のS3バケット設定などを行います。
お伝えしたとおり、
- 新規S3バケットの作成
- 連携用IAM Roleの作成
などもウィザード中に行えます。
連携先バケットの設定
Kinesis Firehoseの設定
サンプルデータの投入
ストリームの詳細画面に移動します。
詳細画面
"Test with demo data" というブロックがあるため、こちらをクリックすると、サンプルデータの投入画面が展開されます。
サンプルデータの投入方法は簡単です。
"Start sending demo data"のボタンをクリックするとサンプルデータが継続して投入されます。
データ投入が不要になったら"Stop sending demo data" のボタンをクリックするだけです。
CloudWatch メトリクスの確認
サンプルデータを投入後、しばらく放置すると、データが蓄積され、メトリクスも記録されます。
ストリーム詳細画面の「Monitoring」タブで表示された実際のメトリクスが以下です。
サンプルデータについて
株価をシミュレートしたデータが生成され、Kinesisに投入されます。具体的には、以下のようなデータ構造をしています。
{"TICKER_SYMBOL":"QXZ", "SECTOR":"HEALTHCARE", "CHANGE":-0.05, "PRICE":84.51}
Kinesis Analytics のサンプルデータと同じです。
サンプルデータの種類は現時点ではこの1種類のようです。
サンプルデータの確認
S3 のデータをAWS CLI経由で確認します。
# リージョンをアイルランドに変更 $ export AWS_DEFAULT_REGION=eu-west-1 # S3 バケットのオブジェクトをローカルに同期 $ aws s3 sync s3://YOUR-BUCKET-NAME . # ローカルファイルシステムの確認 $ tree PREFIX2016 PREFIX2016 └── 11 └── 08 └── 13 ├── PREFIX-1-2016-11-08-13-15-43-2fb8c27c-2dab-4c9c-a596-67162ef0f122 └── PREFIX-1-2016-11-08-13-20-44-5cdcf999-750e-43ee-a368-795e2e60d063 # データの中身を確認 $ cat PREFIX-output2016/11/08/13/PREFIX-1-2016-11-08-13-20-44-5cdcf999-750e-43ee-a368-795e2e60d063 {"TICKER_SYMBOL":"DFT","SECTOR":"RETAIL","CHANGE":4.08,"PRICE":113.84}...{"TICKER_SYMBOL":"XTC","SECTOR":"HEALTHCARE","CHANGE":1.87,"PRICE":163.97}
ストリームデータが改行なしに、1行で出力されています。
注意点
サンプルデータを投入中も、ストリームにはデータ送信可能です。つまり、本来のデータとサンプルデータが混ざる可能性があります。
サンプルデータの投入は、関係者に通知の上、限定的に使用すべきでしょう。
要望
サンプルデータのデータ形式を複数の種類から選べたり、データ構造をカスタマイズできるようになるとより利便性が高まると思います。
Kinesis Analyticsに続いて、Kinesis Firehose もサンプルデータのストリーム投入に対応しました。 昔ながらの Kinesis Streams にも対応すると嬉しいですね。
Kinesis Streams対応とサンプルデータのデータ型のカスタマイズが対応されると、Kinesis StreamsからLambda連携の試験も簡単にできちゃいます。
まとめ
Amazon Kinesis Firehose のサンプルデータを管理画面から投入する方法を紹介しました。
Kinesis の API を直接叩いてテストデータを投入しようとすると、Kinesis のアプリよりの仕様や SDK を使ったプログラム開発が発生するため、インフラエンジニアには若干敷居が高いという課題がありました。
今回のサンプルデータ対応により、疎通確認が以前よりもずっと楽にできるようになったのではないでしょうか。