11日、Googleの開発者向けイベント「DevFest 2010 Japan」が開催された。この記事では、数多くのセッションの中から、日本におけるOpenSocialアプリケーション開発をテーマに取り上げた「OpenSocial in Japan 2010」について、その概要をレポートする。
爆発的なヒットを遂げたmixiアプリ「記憶スケッチ」
代表的なOpenSocialアプリケーションの一つに「記憶スケッチ」がある。今回はその開発者、株式会社REAL 中西 晋吾氏が、制作の裏話や優れたアプリケーションに仕上げるためのコツ等を紹介した。
「記憶スケッチ」は、mixiのプラットフォーム上で動作するFlashを使った簡単な落書きアプリ。「~を何も見ないで描いてください」という形式で、システムからランダムで出題されるお題について、記憶だけを頼りに絵を描き、投稿する。OpenSocialアプリケーションとして爆発的なヒットを遂げ、mixi ソーシャルアプリケーションアワード2009にて、部門賞・エンターテイメント賞を受賞した。
現在ユーザー数は約127万人、画像の投稿数は約1023万枚で、オープンしてから半年強で画像投稿数の合計が1000万枚を突破した。月間の最大PVは約1億4千万、8秒に5枚ずつ画像が投稿されている計算となり、投稿型のサイトとしては世界最速と中西氏は自負している。
OpenSocialアプリケーション開発の経緯
開発環境はLinux/Apache/MySQL/PHPという基本的なLAMP構成で、クライアントサイドにはFlex3、opensocial-jqueryを利用。クラウドは利用せず、データセンターにサーバを設置した。
開発に関する作業は、デザインも含め全て中西氏1人で行った。OpenSocialの仕様調査やアプリの実験に2週間、実際の開発に2週間を費やし、約1か月で実装が完了した。
OpenSocialへの興味でためしに作ったアプリケーションが爆発的ヒットとなり、アプリリリース後、想定では半年で獲得するはずだったユーザ数3万人にたった4日で到達。ここから、中西氏の怒涛の日々が始まった。
実験的な作成だったため、オープン当初は家庭用のサーバー1台で対応。ユーザ50万人を処理するのにぎりぎりの性能だった。mixiアプリがモバイルでもオープンすることを機にデータセンターに移行、高負荷時にはフロントサーバを増強し、スケールアウトできる2台構成にした。
実際に運用していくなかで、問題も多々発生した。OpenSocialのAPIに投げたリクエストの消失、APIからのレスポンスの遅さ、1日あたり3GBのデータが増えていくためディスクが枯渇するなど、さまざまな問題に直面したが、OpenSocialアプリの肝となるのは「とにかくサーバー負荷」だと中西氏は語った。
サーバの負荷を減らすため、中西氏は3つの対策を実施した。まずは、クエリーを見直し、テーブル形式を使い分けるなど、アプリサイドで徹底的に負荷を減らした。また、コンテナサイドに保存できるデータは永続化情報を積極的に使い、SAPサーバ側の負荷を下げた。さらにAjaxの仕組みを利用して、時間差でロード/表示を行うことにより、ユーザの満足度を上げるよう工夫して、負荷対策をクリアすることに成功した。