Kinesis Firehose、Athena、QuickSightを利用したデータ集積基盤の構築

Speee開発基盤部、兼ヌリカエエンジニアの森岡です。

2017年6月2日に行われたJAWS-UG勉強会【AWS Summit Tokyo 2017】にて、弊社Speeeより hatappi と私が発表させて頂きました。 私が発表した内容はKinesis Firehose, Athena, QuickSightを使って、データ集積基盤を作る。というものです。スライドはこちらになります。

speakerdeck.com

今回は、この発表内容について、補足情報を追加してお話をさせて頂きます。 Kinesis Firehose、Athena、QuickSightを利用したデータ可視化ツールの1つの実装例として見て頂ければと思います。

最初に

f:id:selmertsx:20170710154305p:plain

弊社Speeeでは、ヌリカエという外壁塗装の一括見積もりサービスを運用しています。 外壁塗装を望まれているお客様にヒアリングを行い、お客様の状況に合わせて適切な業者を、 複数社紹介させていただくというサービスです。 ヌリカエでは、お客様への手厚いサポートを一つの価値としており、 CS(Customer Sales 以下 CS)の効率化・品質向上が事業の価値と密接に関わっています。

作ったもの

f:id:selmertsx:20170808165404p:plain

実際に利用されている可視化ツールの一つグラフを上図に示します。 この図では、管理画面にて行っている業務内容と、それらの利用回数などを表示しています。 他にも、いくつかグラフをリアルタイムで見れるようにしており、誰が、いつ、どんな行動を、 どういう案件に対して、どれくらいの時間行っていたのかを確認できるようになっています。

作った理由

ヌリカエにおいては、お客様と直接やりとりをするのはCSの業務となっています。 このCSですが塗装に関する専門的な知識や、地域ごとの相場などの把握が求められ、採用も育成も非常に時間が掛かるものとなっています。そのため、近々においては、お客様及び施工業者の満足度を向上させるために、CS1人あたりの業務の効率化が重要となってきます。

そこで私たちは、CSの各行動をお客様及び施工業者様の満足度毎に集計することによって 最適なCS運用を発見することを目的として、データ可視化ツールの開発を開始しました。 本ツールにおいて、僕たちが取得した指標は下記の通りです。

  • アドバイザーの通話回数
  • アドバイザーの通話時間
  • アドバイザーの管理画面の操作数
  • アドバイザーの管理画面の操作時間

システム構成

f:id:selmertsx:20170710160842p:plain

  • Kinesis Firehose
  • S3
  • Athena
  • QuickSight

本可視化ツールのために、新たに用意したリソースは上記4点です。 AthenaとRDSをデータストアとして利用し、QuickSightでデータを可視化しています。 このシステムについて、データの集積、データの可視化の2つの処理を通して説明します。

データの集積について

f:id:selmertsx:20170710161822p:plain

Kinesis Firehoseとは、任意のデータをAPIを利用して、S3/RedShift に送信できる機能です。 IoTなどの分野での活用を想定されているようで、簡単な設定だけで利用することが出来ます。*1

ヌリカエでは、業務効率化のためにWindows/AndroidアプリもCSの運用に利用しています。 それらクライアントアプリと、管理画面用webアプリの行動ログを、Kinesis Firehoseを介してS3に集積し、 その集積したデータをAthenaに読み込ませることで、分析用のデータを用意しました。

データの可視化について

データの可視化には、Amazon QuickSightを利用しています。 Amazon QuickSightは、AWSから提供されているBIツールです。 re:dashみたいなものというとイメージがしやすいかも知れません。 AWS製のサービスですので、RDSやAthenaとの接続が非常に簡単に実現できます。 費用はユーザーの人数に依存し、1ユーザーあたり$9という非常にお安くなってます。

架電などの行動ログはAthenaから、売上データなどのデータはRDSから取得し、集計しています。

以前、AWS公式のドキュメントにおいて、AthenaはQuickSightの SPICE に対応していないと記載されていましたが、 現在では特に問題なくSPICEにインポートすることが可能とのことです。*2

技術選定の理由

AWSを利用している場合において、一般的に選択肢となるデータ分析のためのツールは、 Redshift、TreasureData、Athenaなどあります。 僕たちは、「データ分析をやり始める」という段階でしたので、 とりあえず実装・料金共に低コストで始めることができる Athenaを選択しました。 分析の複雑度や頻度が高くなったときはRedshiftへ移行する予定です。

結果

f:id:selmertsx:20170710172739j:plain

上の図が、実際に僕たちが表示しているグラフです。

この他にもいくつかのグラフを作って、僕たちはCSメンバーの行動量や成果を、 リアルタイムで確認しています。

このように、Kinesis Firehose + Athena + QuickSightを使って、データ可視化基盤を作ることができました。 この基盤は工数は1営業日、費用は月$10程度で実現することができています。

補足情報

AthenaでのPartition運用について

取得している行動ログは、一月あたり3MB程度でした。

Amazon Athena によってスキャンされたバイト数に対して課金されます。バイト数はメガバイト単位で切り上げられ、10 MB 未満のクエリは 10 MB と計算されます *3

上記の通り、Athenaはデータ読み込み量課金で最小単位は10MBです。 なので、現在 AthenaでPartitionは行っていません。

hatappiの発表資料

AWS Summit 2017 にて行われた hatappi の発表内容はこちらになります。 ECSにおける バッチ運用について // Speaker Deck