【AWS Summit Tokyo 2018】モンスターストライクを支えるデータ分析基盤と準リアルタイム集計システム レポート

はじめに

AWS Summit 2018に参加してきました。今回は事例を中心にセミナーを聞いてきました。
本記事ではミクシィXFLAG スタジオ様によるモンスターストライクのデータ分析基盤についてレポートいたします。

セッション紹介と登壇者

生島 光

株式会社ミクシィXFLAG スタジオ モンスト事業本部 ゲーム運営部 解析グループ 解析チームデータエンジニア

スマホアプリ「モンスターストライク」の世界累計利用者数は先日4,500万人を超えました。このサービスのデータ分析基盤は、Amazon Redshift や Amazon EMR をはじめとした AWS の各種サービスをフル活用して構築されています。本セッションでは、弊社のデータ分析基盤の構成をご紹介します。また、各種キャンペーンで活用されている リアルタイム集計の構成についてもご紹介します。

引用元:AWS Summit Tokyo 2018 セッション一覧

さて、モンスターストライクといえば誰もが知っているソーシャルゲームの超ビッグタイトルです。リリースから5年が経ち、ユーザー数は4,500万人と国内最大規模です。ソーシャルゲームの運営にはデータ分析が欠かせないと言われますが、これだけ大規模なタイトルになるといったいどんなスゴイ分析基盤を使っているのでしょうか。セミナーを聴く前からワクワクしていました。

分析規模

まず、分析対象データと分析担当者の規模ですが、

データは毎日2TBのペースで増え続けていて、ストックされている総データは1PBにも及ぶそうです。
分析専任担当者は5人で、それ以外にサービスの運営スタッフの方、200人超も分析を行います。

AWSで主に使っている技術は

  • EMR
  • Redshift

です。

課題と解決アプローチ

セミナーの骨子は、基盤の運用において6つの課題が発生したことと、それに対する解決方法の説明でした。

課題1:EMRの起動が遅い

起動に30分以上かかっていたそうです。

解決1:

EMRはクラスタを終了させるとメタストアにあるテーブル定義情報も一緒に失われてしまうことになります。クラスタを起動するたびに毎回テーブルやパーティションの作成を行っていたために時間が掛かっていたと思われます。
Hiveメタストアの再構築などを行うことで、30分から5分に短縮できました。

課題2:Hiveが遅い

バッチ処理に15時間かかっていたそうです。Hive以外の選択もあるものの、Hiveメタストアの便利さなどのメリットを踏まえると他は考えにくい、という事情がありました。

解決2:

以下の3つの実施した結果、9時間に短縮できました。

  • 全てのデータをORCに変換
  • スキャン量削減
    巨大なアプリケーションログを繰り返しスキャンしていたのを適当なサイズに分解したり、ソートしてインデックスをつけるなど。
  • 並列処理

課題3:バッチ処理の運用が困難

300にも及ぶタスクが相互に依存しており、運用が難しかったそうです。

解決3:

独自のジョブフロー管理ツールを内製し、タスクの並列実行を可能にしました。
その結果、バッチ処理が大幅に短縮し、安定運用できるようになりました。

課題4:エンジニアしかデータに触れられない

ログデータにアクセスするには、分析環境にSSH接続する必要があり、非エンジニアにとってはハードルが高かったそうです。

解決4:

Zeppelin, metabese, re:dash, 内製ダッシュボードなどのBIツールを導入し、非エンジニアでもデータアクセスできるようにしました。主に使うのはZeppelin, metabeseですが、用途に応じて細かく使い分けているそうです。

課題5:集計クエリが複雑

集計クエリの複雑さに困っていらっしゃったそうです。例としてマルチプレイをしたユーザーに関する集計の大変さが紹介されました。

解決5:

  • 分析テーブルを構築(例:is_multiというカラムを追加)
  • ディメンショナル・モデリングに従ってテーブルを再設計した
    結果として、分析のスピードアップや柔軟性向上が得られました。

課題6:データの信頼性の問題

  • ログの遅延・欠損
  • SQLの書きミス
  • Hiveのバグ

などに困らされたそうです。

解決6:

事前のテストは困難なので、データの事後検証を徹底するようにしました。
具体的には、

  • ジョブフローの後半でデータ品質をチェック
  • 異なるデータソースで比較
  • 変換前後の比較
  • NULLカラムが無いかチェック

などを行うようにしたそうです。

今後の課題

全サービスを横断して分析する仕組み

基本的にサービス毎の分析の仕組みになっていますが、複数サービスを比べて得られる知見もあるし、新サービス立ち上げ時に他サービスとの比較を行う価値も高い。

データガバナンスの強化

誰にどのデータをどこまで見せるのかをコントロールしつつ、業務に影響が出ないようにする必要があります。

機械学習、AIのための基盤づくり

データ分析基盤の発展になるのか、新たな基盤にするのか。後者の場合どのように連携するのかなど検討項目は多そうです。

まとめ

ソーシャルゲームの超ビッグタイトルなので、どんな魔法のような分析を行っていらっしゃるのかと勝手に想像していましたが、実は基本に忠実で、一つ一つの課題を着実に解決することでパフォーマンスを向上されてきた、というお話でした。
凡事徹底が肝心ですね。

AWS移行支援キャンペーン

あなたにおすすめの記事