Treasure Dataのサービスはクラウド上でどう構築されているのか(前編)~July Tech Festa 2013

2013年8月5日

Treasure Dataといえば、日本人がシリコンバレーで創業したベンチャーとして知られている企業。そのシニアソフトウェアエンジニア中川真宏氏が、7月14日に行われたJuly Tech Festa 2013の基調講演で、同社がクラウド上で構築したサービスについてそのアーキテクチャを中心に解説を行っています。

注目されているクラウドサービスがどのような仕組みになっており、それはどのような考え方で作られているのか。クラウドでシステム構築を考えている多くのエンジニアの参考になるはずです。講演の内容をダイジェストで紹介します。

Treasure Dataのクラウド戦略

Treasure Data, Inc。シニアソフトウェアエンジニア 中川真宏氏。

スタートアップなこともあって好きな肩書きを付けていいと言われたので、こんな肩書きにしてみました。

個人としてはオープンソースを中心に活動しています。

fig

Tresure Dataのサービスが正式にローンチしたのは昨年9月。どんなサービスなのか、どんなシステムや技術を使っているのか、などを紹介したいと思います。

Treasure Dataのオフィスはシリコンバレーにありますが、ファウンダーは全員日本人です。いまは東京の新丸ビルにもオフィスがあって、メインはシリコンバレーですが日本でも営業や開発をしています。

fig

なぜクラウドでサービスを展開しているか。

多くの企業で、いままではリレーショナルデータベース(RDB)にデータを展開するのが普通でしたが、大量のデータを蓄積し続けるのはRDBでは結構大変だったりするので、ここで数年前から話題になっていたのがHadoopです。

Hadoopはデータを貯めてバッチで処理するのにかなり有効なプロダクトで、データウェアハウスとHadoopを連係させるのが一時期トレンドでしたが、運用やメンテナンスの手間が増大するという課題がありました。そこでそうしたものを僕らが運用して、お客様には自分のビジネスに集中してもらおうというのがTreasure Dataのビジネス展開です。

fig

既存のシステムですと、イニシャルコストが高くて導入のハードルも高いので、お客さんがやりたいことをスタートするハードルが高いわけです。その分野の専門家がいればできますが、なかなかそういう人はいません。

最近のシステムはいろんなシステム、コンポーネントをどう組み合わせるのか、というのがどんどん複雑になってきています。そもそもデータが増えたりリソースが増えたらどうやってまとめていくのがいいのか、といった課題があります。

僕らは、ビッグデータに必要だろうという機能をワンパッケージで提供することによって、サインアップすればすぐにサービスが利用できる、ということを目指しています。

fig

ビッグデータでは、機械学習などたくさんのことができます。僕らは、そもそも何が起きているのか、ユーザーがどんな行動をしたのかといったレポーティングに特化しています。

データを集める、貯める、クエリで検索、というのをひとまとめにしたシステムで提供し、マネージできるAPIを提供することで、サインアップするとすぐに解析などに利用できます。これがTresure Dataのサービスと、コンポーネントベースやオンプレミスなどとの大きな違いです。

クラウド上でHadoopを運用する、というのが先にあるのではなく、ビッグデータの解析をするために必要なサービスを提供している、ということです。この点が、Hadoop on Cloudとは違う価値を提供している、ということになります。

fig

全体の構成

これが全体の構成です。データコレクションに関しては、fluentdを使ってデータをクラウドにあげるのをできるだけ自動化しています。すでにデータがたまっている場合には、バルクアップローダーも提供しています。

DWHに関しては、Amazon EMRを使わず、自分たちでカラムナストレージを作って、その上で生のHadoopではなく機能追加したHadoopを使っています。解析は通常のBIツールが使えるようになっています。

fig

基本的には1カ月未満でプロダクションまで行っているお客様が多くて、いまは80社くらいのお客様がいます。

fig

データ収集に使うfluentdとは

トレジャーデータのサービスアーキテクチャの考え方としては、とりあえずデータを貯めていって、スキーマはあとで考える、というもの。

そしてシンプルなAPI。なるべくお客さんが使いやすい、見て困惑しないAPIで、かつパワフルなものを提供したい。

そしてサインアップすれば、すぐにデータを収集して、分析には専用のBIツールも不要で、簡単に使い始められるようにな設計をしています。

fig

海外のBI関係の調査によると、データを収集するところに苦労の60%があると。どういうデータをどう集めるかが大事で、そのためにfluentdを作りました。

実際、みなさんどうやってHadoopにデータを入れているかというと、putコマンドでマニュアルでやっているらしく、これだと運用コストがかかるし、データが大きいとそれだけネットワークを占領するなどいろいろ問題がありました。

fig

そこでFacebookなどはScribeというコレクタを作ったりしましたが、一般にオープンソースで誰でも使えるようなデータコレクタがないので、fluentdを作って公開しています。

fluentdはパフォーマンスが大事なところはCで書いています。置くだけで使えて、rubygemsというエコシステムに乗っていて、100以上のプラグインがあります。

fig

これは構成例ですが、Apacheがログを書き出すと、昔は定期的にscpとかでログをコピーしていたと思いますが、それだとレイテンシが大きすぎたりするので、fluentdを置いておくと、ずっと監視していてログが吐かれたときにfluentdがデータを収集してストリーム的にログ収集ができます。

fig

一行ごとに、時間と、このデータがどこからきたかなどがJSON形式になっているので、機械で読みやすくデータの破損にも強くなります。そして数秒や数分のタイムラグでログが分析できるようになります。

fig

td-agentはfluentdのパッケージです。fluentdは起動スクリプトといったものを想定していないので、僕らがパッケージにして、起動スクリプトやrubyのランタイムなどを同梱しています。また、ちゃんと動くことを検証しているプラグインも同梱しています。

fig

≫後編では、データ解析のアーキテクチャなどを解説しています。「Treasure Dataのサービスはクラウド上でどう構築されているのか(後編)~Japan Tech Festa 2013」へ。

(8/5 追記:イベント名を間違えていたため、タイトルと本文の一部を修正しました)

このエントリーをはてなブックマークに追加
follow us in feedly

タグ : Hadoop , PaaS , SaaS , クラウド



≫次の記事
Treasure Dataのサービスはクラウド上でどう構築されているのか(後編)~July Tech Festa 2013
≪前の記事
2013年7月の人気記事「IT系上場企業の平均給与」「技術的負債とは何か」「Vagrantは仮想環境をプログラミングする」

Loading...

Blogger in Chief

photo of jniino Junichi Niino(jniino)
IT系の雑誌編集者、オンラインメディア発行人を経て独立。新しいオンラインメディアの可能性を追求しています。
詳しいプロフィール


Publickeyの新着情報をチェックしませんか?
Twitterで : @Publickey
Facebookで : Publickeyのページ
RSSリーダーで : Feed



Publickey 最新記事 10本

Publickey Topics 最新記事 10本


PR - Books


fig

fig

fig

fig



blog comments powered by Disqus