スモールスタートから重要なビジネス基盤への成長
「モンスト」の裏側を支えるログ分析システムを、ミクシィはどのように構築したか(1/2 ページ)
ゲーム「モンスターストライク」(モンスト)で躍進するミクシィのデータ分析基盤を支えたのは、新しいワークスタイルだった。たった数人から始まったチームが全社を支える一大プロジェクトまで育った背景とは。
気軽にプレイできるスマートフォンゲームには、オンライン対戦やフレンドとの連携プレイが可能なゲームも少なくない。プレイの気軽さに反して、リアルタイムに近いデータ処理など、バックエンドの処理能力への要求レベルは高い。スマートフォンゲームにおいては、ゲームプレイそのものを支えるシステムでなくても「リアルタイム性」は重視されているようだ。人気スマートフォンゲーム「モンスターストライク」(モンスト)を開発するミクシィのXFLAGスタジオでは、同タイトルなどのログデータ分析を準リアルタイムで処理できる環境を構築した。
ミクシィのXFLAGスタジオはモンストシリーズや「ファイトリーグ」など、家族や友達と楽しめる数々の対戦型ゲームを提供している。中でもモンストはiOSのApp Storeトップ無料ランキング「BEST OF 2017」にノミネートしたり、AndroidのGoogle Play5周年インストールランキング(2017年3月発表)におけるゲーム部門の2位を受賞したりするほどのヒットタイトルだ。リリースから5年近くたった今も多くのプレイヤーを魅了し、世界累計利用者数は4500万人に上る(2018年3月時点)。
ゲームを運営する基盤に求められるのは、人気の盛衰に合わせて自由に、短時間にスケールできることだ。その要望に見合うインフラ基盤として、AWSをはじめとするクラウドの利用も進んでいる。
ミクシィのXFLAGスタジオはモンストのログ管理にもAWSを利用している。小さく簡易的なシステムからスタートし、ゲームプレイヤーが増えるに従ってシステムを拡張、現在では目的別に何種類ものダッシュボードを用意して必要なデータをすぐに得られる高度なシステムに成長させている。そこで扱われるデータ量は、毎日2TB。これまでに蓄積したデータは約1PBにもなる。このログ分析システムは、ゲームリリース当初の2014年時点では、ごくシンプルな仕組みだった。
併せて読みたいお薦め記事
AWS Summit Tokyo 2018レポート
- 東京電力FPが発電所監視サービスをAWSで開発 7億円以上のコスト削減
- ナビタイムが全サービスをAWS移行 アンチパターンてんこ盛りでGPUは生かせるか
- DeNAが「AWS IoT」を使った配車サービスの裏側を公開
- 金融機関がAWSでクラウド化 セキュリティ対策とコスト管理を両立させるには
クラウド活用でコストを削減する
日次バッチ処理に15時間かかる基本形からスタートし、改良を重ねたログ管理基盤
AWSの年次カンファレンス「AWS Summit Tokyo 2018」において、ミクシィXFLAGスタジオでモンスト事業本部解析グループの生島 光氏は「2014年当時はサーバで発生したログを『Amazon Simple Storage Service』(Amazon S3)に保存し、そのログを使って分析をしていました。必要に応じてアドホックな分析もできるよう、『Apache Hadoop』のマネージドサービスである『Amazon Elastic MapReduce』(Amazon EMR)をスポットインスタンスとして用意していましたが、それだけでは補えない課題も幾つか抱えていました」と当時を振り返る。
課題は運用面、データ活用面の双方に及んでいた。運用面では、Amazon EMRの起動やデータウェアハウス構築環境「Apache Hive」(Hadoopで動作するMapReduceアプリケーション)の処理に時間がかかっていたことが挙げられる。アドホックな分析のたびにAmazon EMRを起動していたが、その都度メタ情報を再構築していたため起動に30分ほど要していた。そこでApache Hiveのメタストア(テーブルやロールなどのメタデータ)を「Amazon Relational Database Service」(Amazon RDS)に格納して永続化し、Amazon EMR起動時にはこれを読み込むだけの仕様に変更したところ、5分程度でAmazon EMRが起動するようになった。他にも、日次処理に利用していたApache Hiveの処理速度にも問題があった。日次処理に15時間ほどかかっており、終業時にバッチ処理をスタートしても翌昼まで処理が終わらない状況だったという。
そこで生島氏は、次のような方法で解決を図った。全てのデータをORC(注1)に変換し、新たに追加されるデータもORCに変換する処理をバッチに追加。「Apache TEZ」を実行エンジンとするなど定番のチューニングも施し、Dynamic Partition機能でデータを分割することで、処理時にスキャンするデータ量も削減した。直列実行ではリソースを使い切れていなかったので、自社開発したジョブフローツールでタスク依存関係に沿ってバッチ処理の順序を最適化し、並列処理ができるものは並列処理するようにしたという。「日次バッチ処理の高速化は、幾つもの技術を複合的に使い実現しました」(生島氏)
※注1 ORC(Optimized Row Columnar)ファイル。Hiveに最適化されたカラム志向型のデータフォーマット。
こうした進化を経て現在は、AWSサーバプラン「m4.2xlarge」20台で構成したAmazon EMRと、3台の「ds2.8xlarge」、データウェアハウスサービス「Amazon RedShift」を利用して24TBのストレージでログ管理基盤を構成している。Amazon EMRはマスターインスタンスグループもコアインスタンスグループも、スポットインスタンスとして用意し、必要なときのみ起動する仕様だ。2014年から2015年にかけて、これらの基盤を整備した結果、日次バッチ処理にかかる時間は15時間から9時間まで短縮されたそうだ。終業時にスタートすれば、翌朝の業務開始までに終わる時間に収まったわけだ。
データ利活用のハードルを下げるために重ねた工夫
データ活用面における最初の課題は、ログ分析の手段を持つ人間がエンジニアに限られていたことだ。理由は単純で、Amazon S3に蓄積したログにアクセスするため、SSH で接続する必要があったのだ。コマンドラインインタフェース(CLI)を使いこなせるエンジニアにしかログ分析の手段がなく、ゲーム運営の現場でデータ活用することは難しかった。これを解決するために、同社は幾つかのビジネスインテリジェンス(BI)ツールを導入した。
「BIツールは目的に応じて市販製品を数種類、使い分けています。いずれも公式のDockerイメージを使ってAWSで利用しています。障害が発生しても自動的に再起動してくれるので、運用に手間がかからないのがポイントです。市販製品だけではカバーできない独自の分析については、内製ツールも併用しています」(生島氏)
こうしたアクセス経路の整備により、データを分析して活用する道は開けたものの、手軽ではなかった点が課題として残っていた。取り扱っているのがサーバから書き出された生ログデータなので、目的に合わせて分析するためには複雑なクエリを記述しなければならなかったのだ。
「例えば『ゲームプレイヤーがオンラインでマルチプレイをしたかどうかを知りたい』というだけでも、数十行のクエリを書かなければなりませんでした。しかもそのためには、アプリ開発者視点で作られたログテーブルの意味を理解しなければなりません」(生島氏)
これを解決するために、生島氏のチームは分析用のテーブルを新たに用意した。頻繁に検索されるデータを、現場目線でも分かりやすいテーブル名で提供することで、データ活用のハードルを下げたのだ。先述のマルチプレイの例で言えば、「is_multi」という分かりやすい名前のカラムが追加され、簡単なクエリでマルチプレイを楽しんだプレイヤーのデータを抽出できるようにした。「アプリ開発者ではなくデータ分析者の視点に立ったテーブル整備には、『Dimension Modeling』という考え方が役立った」と生島氏は言う。
「Dimension Modelingは、理解しやすさを重視したデータモデル化の手法です。システムの言葉を、サービスに即した言葉に置き換えていきます。アプリが書き出したファクトに対して、さまざまな切り口(Dimension)を持たせたテーブルを用意して分析スピードを向上させます」(生島氏)
データ利用のハードルが下がったことで、生島氏が所属するデータ分析チーム以外のメンバーにもデータ活用が広まっていった。そこで新たな課題として浮上したのが、データの信頼性をどのように担保するかということだ。データ分析チームのメンバーやアプリ開発に携わるエンジニアであれば、異常なデータの「違和感」を経験から察知できる。しかしデータ活用が広まれば広まるほど、利用者のITリテラシーは幅広くなり、データを盲信するユーザーも多くなる。誤ったデータに基づいた分析にならないよう、データの信頼性にはこれまで以上に気を配る必要があった。
「そもそもの前提として、データは壊れるものです。変換処理、通信エラー、バックアップのためのコピーなどの原因によって、データは壊れます。事前のテストで防ぐこともできません。代わりに、データが壊れていないかどうか判別できる仕組みを組み込みました」(生島氏)
具体的にはバッチ処理の後半で、データ品質チェックを実行しているという。異なるデータソースでの比較、変換前後の比較、意図しないNULLカラムの検出などによって、データが壊れていないかどうかチェックしている。こうした施策によりエンジニア以外のメンバーも手軽に、しかも安心してデータを分析、活用できるようになった。現在ではデータ分析専任チームの5人に加えて、各サービス担当者約200人がデータにアクセスしている。
Copyright © ITmedia, Inc. All Rights Reserved.
この記事の著者
関連記事
新着ホワイトペーパー PR
-
事例
[アステリア株式会社] 年間約500時間の集計作業を削減、事例に学ぶ在庫管理と棚卸を効率化する方法 -
製品資料
[アステリア株式会社] 紙ベースのアナログな点検報告業務はもう限界? 低コストでできるDXの現実解 -
製品資料
[アステリア株式会社] Excel帳票を生かしつつ現場主導で業務をデジタル化、ノーコード開発実践ガイド -
事例
[アステリア株式会社] 京セラなど11社に学ぶ、工場/倉庫現場のDXを加速させるモバイルアプリ活用術 -
製品資料
[アイティメディア広告企画] 「会計ソフト」6製品を徹底比較 22の選定ポイントをユーザー評価を基に分析
こんなメディアも見られています
TechTargetジャパンに関連する情報をお探しであれば、こちらのメディアもお役に立てるかもしれません。
ベンダーコンテンツ PR
From Informa TechTarget
SpecialPR
アクセスランキング
-
1
生成AIが普及しても「技術書」を手放せないエンジニアの本音
-
2
「Windows」の不要なファイルを安全に消して容量を空ける方法
-
3
「データ活用とAI活用の実態」に関するアンケート
-
4
IT業界の女性は9割が10年で消える 人材枯渇を招く“見えない壁”の正体
-
5
BMWも導入 78兆円市場に化ける「フィジカルAI」の衝撃
-
6
千葉大はなぜ「Google Cloud」を選んだか “取りあえずIaaS”からの脱却
-
7
「有線LAN環境」に関するアンケート
-
8
損保ジャパンはなぜ「COBOL」を捨てなかったのか? 脱メインフレームの真相
-
9
セキュリティは「情シス任せ」が過半数 漏えい発生時やSCS評価制度の課題は?
-
10
なぜ「全社配布Copilot」は使われないのか? 失敗に学ぶAI定着
ホワイトペーパーランキング PR
-
1
不審メールの経路や見せ方に変化? 2026年夏の3事例から見えた動向と対処方法
-
2
家庭用Wi-Fiルーターの業務利用は危険? 避けるべき理由と具体的な対策
-
3
システムの保守がモダン化を阻む? 「変えない判断」から脱却する方法とは
-
4
AI駆動攻撃にどう対抗する? 超速の攻撃からエンドポイントを保護する方法
-
5
プログラミング不要で誰でも実現できる、ネットワーク運用管理の自動化とは
-
6
なぜRPA導入は頓挫する? シナリオ作成の壁を乗り越える解決策とは
-
7
東大教授と考える、AI時代の「データ主権」「信頼性」「ガバナンス」の在り方
-
8
Linux初心者でも知らないとまずい「RHEL」「SLES」の違いとは?
-
9
「オンプレミス回帰」せざるを得ない“合理的な理由”
-
10
ランサムウェア攻撃“究極の対策”はこれだ
TechTargetジャパン SNS
インフォメーション
注目情報をチェック
TechTargetジャパンをフォロー