Fluentd+MongoDBでよりリアルタイム性の高いログ解析を実現
広告配信周辺の高速性もさることながら、AdStirでは、収益の向上に寄与する配信実績やRTBに関するログの解析機能も用意されている点が、利用者にとってのメリットの一つとなっている。特にRTBでは、複数のDSPから送られる入札情報などを分析することが、最も効率的にCPMを高める観点で重要になってくる。
モーションビートでは、この大規模なログ解析を迅速に行うにあたってOSSのイベントロギングツールである「Fluentd」と「MongoDB」の組み合わせによる活用に取り組んでいる。
「以前は、広告配信用の各サーバにため込んだログデータをrsyncで集計用のサーバに送っていましたが、この仕組みでは早くてもデータの更新に20分から30分の間隔が必要になっていました。ログデータの量自体も、数十ギガ単位で増加を続けており、これまでの仕組みでは処理が難しい状況になってきています。より高速なロギングが可能なFluentdとMongoDBの組み合わせを取り入れることで、よりリアルタイムに近い集計結果が出せるようになるはずです」(fukata氏)
AdStirでは、Fluentdによって得られたログデータを集計用としてMongoDBに入れ、集計が終わったデータを表示用としてMySQLに格納している。実際に使い始めてみて、Fluentdはコミュニティが非常に活発で、自分たちの環境に適用するにあたって必要なモジュール開発などの情報なども入手しやすい点にメリットを感じているという。
「Fluentdは、JSONをベースにしていることによるデータの見やすさに加えて、例えばrsyncではできなかったサーバ停止時のリトライ処理を自動的にやってくれるなど、大量のデータ処理に便利な仕組みがあらかじめ用意されています。また、プラグインによる機能拡張も容易で、Fluentd本体の可読性も高く作られています。新たなプロジェクトですが、その分コミュニティの活動も盛んで、個人のブログサイトやTwitterなどでの情報交換も活発に行われています。使っていく中で、何か疑問が生じても解決はしやすいですね」(fukata氏)
同社のエンジニア達による、こうした多くの工夫と新たな技術への取り組みにより、AdStirは高速で信頼性の高い広告配信のためのプラットフォームを、迅速に自社のメディアビジネスへ組み入れたい企業にとって、魅力のあるサービスとなっている。


今後求められるのは「インフラに関する知識」
モーションビートでは現在、7人の社内開発者を中心にAdStirに関連する各システムの開発を行っている。彼らは社外のスタッフと共に、広告配信まわり、SDKまわり、システムインフラ、RTB、集計システムなどの担当に分かれて、連絡を取り合いながら各サービスを構築している。開発作業では、各エンジニアに比較的大きな権限が与えられており、新たな機能の追加や技術の取り入れにあたっての敷居は高くないという。実際に、現在モジュール開発の主流となっている「Lua」や、高速ロギングのための「Fluentd」の採用は、現場のエンジニアたちが独自に情報を収集した上で評価し、導入を決めていったそうだ。
今後、アドテクノロジーに取り組みたいと考えているエンジニアへのアドバイスを求めたところ、落合氏、fukata氏の両名とも「コードだけでなく、インフラ面での知識も持つべきだ」と答えた。
「広告配信の分野だけでなく、ソーシャルゲームの分野などでも、今はコードの知識に加えてインフラ面に強いエンジニアが求められています。コードが書ける人材は多いのですが、実際の稼働時に発生する大量のトラフィックをどのように負荷分散すべきか、ネットワークレイヤのパケットレベルで理解できている人は結構少ないですね。この部分に知識を持っている人は、今後強みを生かせるのではないかと思います」(落合氏)
「私は、インフラ面での業務知識はモーションビートに入ってから身につけたといってもいいのですが、こういうものはなかなか、座学では身につきません。幸い、現在はVPSやHerokuなどを活用して、開発者が個人でもWebサービスを展開できる環境があります。実際に自分でサービスを作って運用を始めると、その中で必ず何らかの問題に直面します。そうした問題への対処法を自分で調べて実装していくことは、非常に良い勉強になるはずです。最終的に、問題の状況に応じて、アプリケーション側からの対応とインフラ側からの対応を1人で行える人は強いと思いますね」(fukata氏)
落合氏はさらに、「何か疑問が起きたときには、PHPにせよ、nginxにせよ、さらにネットワークに関することにせよ、最終的にはソースコードや仕様の原典に当たる習慣をつけておくことは、大きな力になると思います」と付け加えた。