サイバーエージェントを支える技術者たち

第28回 秋葉原に集結した技術者集団Ameba Technology Laboratoryの役割を探る[前編]

この記事を読むのに必要な時間:およそ 3 分

2011年4月1日,サイバーエージェントは秋葉原ダイビル内に新たなオフィスとして「秋葉原オフィス」を開設しました。この新しいオフィスには,⁠Ameba Technology Laboratory」⁠以下,ラボ)という,特にデータ解析やデータマイニングなどを専門とするエンジニアが集まった組織が在籍しています。ここではどういった取り組みが行われているのか,実際に在籍するエンジニアの方々に直接お話を伺いました。

サイバーエージェントが秋葉原に新オフィスを設立

「秋葉原をIT産業の世界的拠点にする」という掛け声の下に始まった秋葉原再開発で,新たなビジネスエリアとして誕生したのが秋葉原クロスフィールドです。この地に建設された秋葉原ダイビルと秋葉原UDXの2つの超高層ビルには,多くのIT関連企業がオフィスを立ち上げています。

アメーバピグなどを運営するサイバーエージェントも,秋葉原ダイビル内にエンジニアのための新オフィス「秋葉原オフィス」を開設しました。このオフィスには,データ解析やデータマイニング,自然言語処理,機械学習などを専門とする研究開発エンジニア,そして分散システムや検索,画像処理などに携わるエンジニアが在籍しています。また,PC用パーツを扱うショップが軒を連ね,ハードウェアの調達が容易な秋葉原という立地を活かし,ハードウェアの検証や新サービスのテスト運用などを行う環境や設備も整えられています。

サイバーエージェントの研究開発部門としてのラボの役割について,ラボ研究室長である福田一郎氏は次のように説明します。

福田一郎氏

福田一郎氏

「ラボの業務は,ログ解析基盤,検索システム,機械学習という3つの開発と運用になります。この3つに共通しているのは,大規模なデータを扱っている点です。たとえばログ解析ではそれぞれのサービスから出力される大量のログを扱う必要がありますし,検索システムは膨大な数が投稿されるブログの記事を対象にしています。もう1つの機械学習は,収集された大量のデータ解析と応用によって実現されています。最終的な目的は異なりますが,同じように大規模データを扱うのであれば一緒に開発したほうが効率的ではないかということで,ラボを部署として立ち上げました」⁠福田氏)

ラボ設立のきっかけは,2010年8月にインターンとして働いていた学生エンジニアに,大規模データ処理に関する課題を与えたことでした。

「インターンとしてサイバーエージェントに来ていた学生に,Hadoopや機械学習などについて取り組んでもらっていました。このインターンが終わった打ち上げのときに,その学生がサイバーエージェントに入社して大規模データを扱うような開発がしたいと言っていたんですね。僕らとしても,今後はそういう方向性を突き詰めていく必要があるんじゃないかと考えていて,それなら専門の部署を作ろうということでラボができたわけです」⁠福田氏)

ちなみに,秋葉原にオフィスを作ることになったのも,そのときの会話がきっかけだったと言います。

「その席で,冗談半分で『秋葉原だったら,そういう部署を作ってもいいですよ』と話していたんです。それを聞いた社内の人間も『それはいいね!』と賛成してくれていたのですが,酒席での話だったので冗談だと思っていたのです。ただ翌日,アメリカにいたCTOの佐藤真人から『秋葉原の件だけど,結局どうなったの』と連絡があり,これは本気だということで急いで物件を探すことになりました」⁠福田氏)

フランクな場での会話から秋葉原でのオフィス開設という大きなプロジェクトが動き始めたというお話には驚きました。また,秋葉原という場所を選んだ理由は,福田氏とCTOの佐藤氏の双方が秋葉原好きだったからと言います。これらのエピソードは,サイバーエージェントの社風をよく表していると言えるのではないでしょうか。

大規模データ解析を担う「Patriot」のしくみ

現在,ITの新たなトレンドとして注目を集めているのが「ビッグデータ」です。Webサービスにおけるユーザの行動履歴やECサイトの購買履歴,あるいはソーシャルメディアに投稿されるユーザのメッセージなど,世界中で日々大量のデータが生成されています。ただ,従来はこうしたデータが有効に活用されているとは言えませんでした。あまりにデータ量が大きく,それを現実的なコスト,あるいは時間で解析できる環境を構築することが容易ではなかったためです。

しかしハードウェア性能の向上や並列処理技術の発展により,大規模データを解析するための環境が徐々に整い始めます。そうした中で登場したのが,大規模分散処理基盤である「Hadoop」でした。

Hadoopにはさまざまな魅力がありますが,その中でも大きいのは,特別なハードウェアを使うことなく,テラバイト,あるいはペタバイトという大規模データを処理できることでしょう。これにより,従来活用されているとは言いにくかった大規模データを解析し,ビジネスに役立てることが可能になったわけです。

サイバーエージェントにおけるHadoopの使用実績としては,アメーバピグやその海外版であるAmeba Picoにおけるログ解析が挙げられます。それまでサイバーエージェントでは,サービスごとに独自の解析が行われていましたが,効率を考えればこれらの処理は当然集約すべきです。

またログ解析には,データの肥大化やエンジニアのリソース不足といった課題もありました。こうした問題に対応するべく,福田氏やラボの鈴木俊裕氏がログ解析基盤の開発を提案したところ,それが認められて,現在はラボで開発・運用が行われているというわけです。

鈴木俊裕氏

鈴木俊裕氏

このログ解析基盤の目的は,Amebaサービス全体の統合的な現状把握と未来予測,各サービスのデータの集約,そしてサービス開発支援です。これらの目的を達成するため,Hadoop独自のファイルシステムである「HDFS」Hadoop Distributed File Systemや,Hadoopに対してSQLライクな言語でクエリを発行できる「Hive」などを使った独自のログ解析基盤が開発されました。Hadoopのディストリビューションとしては「CDH」Cloudera's Distribution for Hadoopを使っています。なお,集計結果を表示するために独自Web UIが開発されているほか,アドホックな集計と解析のためにGUIを使ってHadoopを操作できる「HUE」Hadoop User Experienceも利用されています。

このログ解析基盤には「Patriot」という名前が付けられており,現在は3番目のバージョンとなる「PAC3」の改修が行われているそうです。

「現在,ジョブの依存関係はPAC3を用いて管理しています。それまでは,ログの収集から解析まではシェルスクリプトとcronを使ったバッチ処理で実現していました。ただ,シェルとcronを使うと依存関係がうまく作れません。このため,1つの処理が止まるとすべて止まってしまうという状況でした。解析項目が増えてきたこともあり,シェルとcronを使ったバッチ処理では駄目だということになり,設定を簡便化するためにDSLDomain Specific Languageを開発しました。このDSLはインポート処理や解析項目のクエリ設定などを行うためのものです」⁠福田氏)

著者プロフィール

川添貴生(かわぞえたかお)

株式会社インサイトイメージ代表取締役。企業サイトの構築及び運用支援のほか、エンタープライズ領域を中心に執筆活動を展開している。

メール:mail@insightimage.jp

コメント

コメントの記入