---
title: "ゲームのデータ分析のポイントと、インフラ構築の勘所 | grasys blog"
url: "https://blog.grasys.io/post/marketing/game-data-analytics-and-infrastructure"
description: "4月に放送され、grasys エンジニアも出演した「Google Cloud (GCP) INSIDE Games & Apps」のセッションの内容をまとめました。 BigQuery を活用してゲームのデータ分析をしている事例をご紹介しています。"
---

# ゲームのデータ分析のポイントと、インフラ構築の勘所

-   ![](/_astro/noicon.CTHOhNiB_1HMs6A.webp)[grasys Marketing](/authors/marketing/)
-   公開日：2022年6月16日
-   カテゴリー：[Infomation](/categories/infomation/)
-   タグ：[#Google Cloud](/tags/google-cloud/)[#BigQuery](/tags/bigquery/)[#データ分析基盤](/tags/データ分析基盤/)[#ゲーム](/tags/ゲーム/)[#Dataflow](/tags/dataflow/)

![ゲームのデータ分析のポイントと、インフラ構築の勘所](/_astro/large-13.Dd9SAXND_Z2a2G0P.webp)

※下の記事は2021年4月13日に放送された Google Cloud (GCP) INSIDE Games & Apps の[セッション](https://www.youtube.com/watch?v=tTnDtNR0nsA)内容をもとに作成しています。前編記事は[こちら](/post/marketing/building-game-infrastructure/)

## ゲームのデータ分析のポイントと、インフラ構築の勘所

ゲームでは離脱ユーザーの予測やゲーム内のアイテムのリコメンドなど、様々なケースでデータ分析が活用されています。データ分析においては、アクティブユーザーの増加による大量のデータの発生を考慮し、これをいかに効率的に扱えるようにしていくかがポイントです。

Google Cloud (GCP) が[ソリューション デザインパターン](https://events.withgoogle.com/solution-design-pattern/)を公式サイトで公開していますが、その中には[ゲームに関するデータ分析のパターン](https://events.withgoogle.com/solution-design-pattern-gaming/analytics-pattern/#content)もあります。こういった資料を参考にアーキテクチャを考えるのも一つの手法です。

### ゲームのデータ分析パイプライン2類型

Google Cloud (GCP) を活用した処理のフローは、大きく2つあります。1つ目は、ストリーミング処理で個々のイベントを処理するフロー、2つ目は、バッチ処理で集約されたイベントを一括処理するフローです。

ストリーミング処理のパターンでは、Google アナリティクスを活用してログを集約し、BigQuery に連携するアーキテクチャを採用します。また、ゲーム関連のクライアントの場合、Cloud Pub/Sub を通して Dataflow を使用し、データを集計・加工して BigQuery に入れることでストリーミングのパイプラインを構築する例も多く見られます。

次にバッチ処理のパターンでは、CSV などの固まったデータを Cloud Storage などにまとめて置いておき、Dataflow で吸い上げて加工し BigQuery に入れていくフローを取ります。また、既に成形されているデータであれば gsutil を使ったり、他社のクラウドプロバイダに保管されたデータであれば StorageTransfer Service を使ってデータ連携を行うことで BigQuery に入れることもできます。

いずれのパターンにおいても、必要なデータを効率的に取得することは意識すべきです。無駄なデータの取得・分析にはコストがかかるので、どのような分析を行いたいかを念頭に置くことが重要となります。

### 実際のアーキテクチャ例①

![ログをBigQueryへ集約するデータ分析基盤のアーキテクチャ例](/_astro/large-13.Dd9SAXND_Z1RQant.webp)

grasysで実際に構築した事例をご紹介します。例①のパターンは、他社のシステムに置かれているログを転送して BigQuery に入れるストリーミング処理のフローです。fuluentd でログを送信し、そのログを仮想マシンで受け、それを別の仮想マシンの logstash に送ってBigQuery に保存しています。データはストリーミングで処理しますが、欠損の可能性に備えてバックアップを取るために、Google Cloud (GCP) Storage にもログを保存し、バッチ処理で一日一回、データの洗い替えを行うパイプラインも並列させています。

### 実際のアーキテクチャ例②

![Cloud Pub/SubとDataflowを使うゲームデータ分析基盤のアーキテクチャ例](/_astro/large-14.CDr6q1mc_Z255lMw.webp)

例②のパターンは、モバイル端末から取得したデータをゲームサーバーで受け、Cloud Pub/Sub を使って Dataflow を通し、BigQuery に入れるストリーミング処理のフローです。こちらは Google Cloud (GCP) が公式サイトで公開している[リファレンス アーキテクチャ](https://cloud.google.com/architecture/mobile-gaming-analysis-telemetry?hl=ja)で、一度安定して稼働できれば管理の手間の少ない運用ができる構成となっています。

ゲームサーバーからストリーミングでデータを連携させるパイプラインとした理由は、クライアントの要望として、リアルタイムでデータ分析を行いたい意図があったためです。そこまでリアルタイムにこだわらないのであれば、10分に1回程度のバッチを回すことで、リアルタイムに近い分析を行うことは可能です。そのため、ストリーミング／バッチどちらを選択するかの判断のポイントとして、構築前にお客様とのディスカッションを行い、どれくらいのリアルタイム性でデータ分析を行う必要があるかを詰めることが重要です。

リファレンス アーキテクチャは、運用管理の手間やコストが抑えられるメリットはありますが、プログラム処理の問題など何かの拍子に上手くスケーリングしない場合もあります。そのため、構築段階から想定外のことが起こってもスケーリングするよう調整することを念頭に見積をしっかり行います。また常に安定して稼働できるよう、起動のパラメータを調整し、多めにワーカーノードが立ち上がる設定にするなど、自動調整だけに頼らず工夫を施しています。

### Google Cloud (GCP) でデータ分析基盤を構築するメリット

データウェアハウスなら BigQuery、分散処理なら Dataflow など、一通りのサービスがマネージドで揃っている点が挙げられます。また、それらのサービスを組み合わせるためのインテグレーションが成されており、簡単な設定ですぐ連携できる点も長所です。特に BigQuery は、データを入れてしまえば手放しで運用でき、ひたすら分析に集中できるため非常に利便性が高いです。

[前編記事](/post/marketing/building-game-infrastructure/)のアーキテクチャ例でも紹介した Cloud Spanner は、ノードを大きくする・減らすことへのフレキシブルな対応ができる点に活用の幅を感じています。以前はデータベースをシャーディングして分散させることに手間をかけていたので、それを考えなくてよくなるメリットは大きいです。障害発生率も少なく、実際にインフラの運用コストを減らす効果がありました。

今後は、Cloud Run も活用していきたいと考えています。Cloud Run は、今までご説明した事例の構築時には GA されていなかったため採用していませんでしたが、様々なプロトコルに対応でき、機能が充実してきています。また GKE Autopilot は少し高価格ですが、今まで運用に回していたコストの削減が見込めたり、ノードプールの管理を自動化することで単価を下げられる可能性もあります。

今後も grasys では、Google Cloud (GCP) の幅広い選択肢を活用して、最適なソリューションを提案してまいります。

## この記事を書いた人

[![](/_astro/grasys_avatar.DlD-CkJs_Z19kmHz.webp)](/authors/marketing/)

### [grasys Marketing](/authors/marketing/)

クラウド技術やgrasysの取り組み、イベント・会社情報を発信するMarketingチームです。

-   [Facebook](https://www.facebook.com/grasysinc/ "Facebook")
-   [X](https://x.com/grasysinc "X")

[プロフィールと記事一覧](/authors/marketing/)