1日6億PVを6人のインフラ担当で支えられる理由
「モバゲータウン」のつくりかた
DeNAの携帯電話向けポータルサイト「モバゲータウン」は、1日のPVが6億を超える巨大サイトだが、サーバ1000台でインフラ担当者はわずか6人だ。効率的なシステムを維持できている理由とは何だろうか?
低価格なPCサーバ1000台で1日6億PVをさばく
「モバゲータウン」(以下、モバゲー)といえば、誰しも「中高生に絶大な人気を誇る携帯サイト」という認識ぐらいはあるだろう。ゲーム、ニュースに小説、占いなどのコンテンツ、アバター(仮想キャラクター)を装ったSNSコミュニケーション、ディー・エヌ・エー(以下、DeNA)が運営するショッピングやオークションサイトなどが利用できる、携帯電話向けの総合ポータルサイトだ。
モバゲーは2009年5月現在で会員数1419万人、月間ページビュー(PV)は約183億を誇る。つまり、1日当たり6億PVである。さぞかし大掛かりなシステムを運用しているのだろうと想像してしまうが、意外にそうではない。
DeNAポータル事業本部 システム部の部長、武部雄一氏は「モバゲーのシステムは、比較的低価格なPCサーバ機1000台ほどで運用している。これでもキャパシティーには突発的な負荷に耐えられる余裕を持たせている」と語る。
また、モバゲーのインフラ周りの担当者はわずか6人だという。6人で1000台のサーバを管理し、サービスの運用を可能にする秘策とは、一体何だろうか。
“超”分散環境によるシステム負荷の軽減策
1日当たり6億PVものトラフィックを効率よく処理するためには、精巧な負荷分散が必要だ。モバゲーのシステムは、オープンソースのLAMP構成を採用している。OSに「Linux」、Web/アプリケーションサーバに「Apache」、データベース(DB)サーバに「MySQL」、そしてメインの開発言語は「Perl」である。
システム負荷の高い画像・動画の配信には、外部のコンテンツ配信ネットワークを利用する。また、日記や小説など参照数が多いコンテンツではキャッシュサーバ「memcached」を活用して、DBサーバへのアクセスを減らす。武部氏によると、このmemcachedの導入はここ半年以内からだという。
それでもDBサーバの負荷は相当なものだ。そのため、MySQLのレプリケーション機能を使い、DBサーバを更新系の“マスター”と参照系の“スレーブ”に分け、処理を分散。しかも、マスター自体をさらに40系統に細かく分割し、各系統に数台から十数台のスレーブを連ねるという“超分散”環境だ。
「モバゲーのサービスは、コーナーで細かく分かれているのでマスターを分割しやすい。これなら、仮にあるコーナーに割り当てたマスターが止まっても、ほかのコーナーに及ぼす影響を最小限に抑えることができる」(武部氏)
問題は、マスターからスレーブへのレプリケーションが非同期であり、遅延が発生すること。武部氏によると「かなり厳しいしきい値」を設けて、それを超えると警告メールがインフラ担当者に送信される仕組みを取っているという。
実際の運用では、スレーブでの参照処理負荷が高まり、マスターからレプリケートした更新処理が遅れることもある。そのため、アプリケーションにチューニングを施したり、スレーブの台数を増やしたりすることで対応する。レプリケーション遅延やアプリケーション性能を監視するツールは、主に自作ツールを活用する。DeNAでは、使い勝手の良い自作ツールが運用効率化に貢献しているのだ。
さらに負荷分散で特徴的なのは、各系統で複数あるスレーブにクエリを振り分けるDNSラウンドロビンに、オープンソースのDNSサーバ「MyDNS」を採用していることだ。武部氏は「MyDNSは、標準的なBINDに比べて機能がシンプル。活用している例はそう多くないようだが、モバゲーでは重宝している」と話す。
MyDNSでは振り分けに重み付けが可能なため、スレーブの処理能力に合わせて振り分け頻度を任意に設定できる。MySQL上で管理する設定情報を更新して重み付けを動的に変えたり、監視ツールと連携して障害を起こしたスレーブを自動的に振り分け先から外したりするなど、管理しやすい面もある。こうした仕組みもあって、同社はこの超分散環境をうまく統制しているわけだ。
独自の高速フレームワークが活躍
モバゲーを語る上では、同社が開発したフレームワーク「MobaSiF(Moba/Mobile Simple Framework)」の存在も見逃せない。MobaSiFは、DeNA取締役の川崎修平氏が開発したPerlベースのWebアプリケーションフレームワークであり、DeNAが手掛ける携帯サイトで共通して使われており、2008年5月にオープンソース化されている。
MobaSiFは、携帯向けWebアプリケーションを効率的に開発・実行できるよう工夫されており、主な機能は、携帯電話の3キャリアに対応するキャリア・端末機種の判定、端末認証、絵文字変換やテンプレートエンジンだ。そのほか、MVCモデルのURLディスパッチャ、DBアクセスなど携帯向けにとどまらない汎用的な機能も備えている。
特にテンプレートエンジンの処理速度は、DeNAが実測したところ、テンプレートエンジン「Template Toolkit」の22倍にもなるという。MobaSiF自体が“軽さ”を重視しており、リクエストを受け付けるたびにテンプレートを動的に生成するのではなく、事前にコンパイルしたバイナリテンプレートを用意しているからだ。
武部氏は「PerlによるMVC(Model-View-Controller)アプリケーションでは、最近はCatalystのような多機能なフレームワークが好まれるようだが、FastCGIとMobaSiFの組み合わせは、処理の高速化と省リソース化に役立っている」と話す。
アプリケーション品質が効率化の要
モバゲーが1日当たり6億PVのトラフィックを効率的に処理できているのは、インフラが優れているからだけではない。武部氏は「何よりアプリケーション。コード記述のわずかな違いで、性能に大きな差が出る。アプリケーション品質を一定に保つことこそ、そのサイトの品質を決める」と指摘する。
モバゲーのシステムは、前述の川崎氏がほぼ1人で開発したことで知られるが、さすがに現在では50人規模の大所帯によりチーム開発が行われている。これだけの人数になるとスキルにばらつきが出るため、コーディングルールの整備や先輩エンジニアによる設計レビュー・コードレビューなどで品質向上に取り組んでいるという。
一方、同社では個々の開発者のヒューマンスキル、モチベーションを引き出す開発スタイルを取る。新たなサービスを加えるプロジェクトでは、1人の開発者と1人の企画者がペアを組み、ひざを詰めてとことん話し合うという。
「モバゲーのことを深く知り、技術を広くカバーすることはもちろん求められるが、サービスを作り上げていくエンジニアにとって重要な要素の1つに“コミュニケーション能力”があると思う」(武部氏)
そして開発者は“ピン”で設計から実装、テストまでをこなす。モバゲーの場合、新機能でも2、3週間という短期リリースが多いという。総じて開発のパフォーマンスは高そうだ。
同社がわずか6人で1000台のサーバで管理・運用できる理由は、効率化されたシステムと開発チームの工夫にあるようだ。中高生からの人気が際立つモバゲーだが、実際は20代、30代の会員が増えているという。また、端末の高度化に伴い、モバゲーのサービスは今後よりリッチになり、バラエティに富んでくるだろう。
Copyright © ITmedia, Inc. All Rights Reserved.
関連記事
新着ホワイトペーパー PR
-
技術文書・技術解説
[Jamf Japan 合同会社] MDMだけでモバイルセキュリティは十分? 不足する対策を16項目でチェック -
事例
[Wrike Japan 株式会社] 世界的な家電メーカーが実践する「クリエイティブプロセス効率化」の方法とは? -
事例
[Wrike Japan 株式会社] 世界的テクノロジー企業に学ぶ、プロセス標準化とプロジェクト納品自動化の秘訣 -
事例
[Wrike Japan 株式会社] ソニー・ピクチャーズ テレビジョンに学ぶ、次世代サービスデリバリーのヒント -
事例
[Wrike Japan 株式会社] ソミック石川に学ぶ、ICT浸透後に直面した「工数管理」の課題と解決策
こんなメディアも見られています
TechTargetジャパンに関連する情報をお探しであれば、こちらのメディアもお役に立てるかもしれません。
ベンダーコンテンツ PR
From Informa TechTarget
SpecialPR
アクセスランキング
-
1
「Copilot」はなぜ放置される? “議事録要約止まり”を脱する処方箋
-
2
脱VMwareの前提が崩れる BroadcomのVDDK公開停止で確認すべき点
-
3
なぜOpenAIやAnthropicのAIは「脱走」したのか 情シスが迫られるエージェント統制
-
4
Oracle巨大ITプロジェクトはなぜつまずいたのか 8年で導入1割、追加で170億ドル
-
5
「Microsoft一択」で本当にいいのか 知らぬ間にライセンス費用が膨らむ真相
-
6
ANAが専用回線から移行した「NaaS」の全貌 ネットワーク準備が数カ月から数週間に
-
7
「プログラマー不要論」にThe Linux Foundationが示した答え
-
8
Microsoft製品でここまで自動化できる 情シスがやめられる手作業10選
-
9
「高すぎるGPU」を捨てAI推論をCPUへ Armが示す電力とコストの現実解
-
10
100億円の「Linux更新」を回避 みずほ銀行が選んだ“おきて破り”のRHEL延命策
ホワイトペーパーランキング PR
-
1
マンガで解説:「ゼロトラスト」「SASE」の必要性とメリット
-
2
5回聞くだけじゃ足りない? トヨタ式「なぜなぜ分析」の正しい実践方法
-
3
インシデント対応工数を約3割削減、東京ガスの事例に学ぶ監視体制刷新のコツ
-
4
AIエージェントで多様な日常業務を効率化するための入門ガイド
-
5
JR西日本ITソリューションズが「監視業務の属人化」を解消した方法とは?
-
6
国税庁の次世代基幹システム「KSK2」稼働開始に向けて、対応すべき変更点とは?
-
7
5分で分かる「セキュア大容量ファイル転送サービス」の機能とメリット
-
8
ドラマで分かる、標的型攻撃メールの被害を受ける企業と回避できる企業の分岐点
-
9
「脱Excel」か「Excel快適化」か? 現場にやさしい業務改善の進め方
-
10
少額減価償却資産が40万円未満へ拡大、令和8年度税制改正で押さえるべき変更点
TechTargetジャパン SNS
インフォメーション
注目情報をチェック
TechTargetジャパンをフォロー