Amazon QuickSight によるゲーム分析ダッシュボードの構築

2023-11-01
デベロッパーのためのクラウド活用方法

Author : 小森谷 健太, Sheng Hsia Leng

ゲームなみなさんこんにちは、Game Solutions Architect の Leng (@msian.in.japan) と Game Solutions Architect の小森谷です。

この投稿ではモバイルゲームやオンラインゲームといった運営型のゲームにおいて簡単にゲーム分析データを可視化する手段として Amazon QuickSight での分析ダッシュボードの作成方法についてご紹介します。


本記事でご案内する Amazon QuickSight を Amazon Redshift に VPC エンドポイント経由で接続するための前提として、 QuickSight の Enterprise Edition を使用する必要があります。Enterprise Edition を使用できなかったり、セットアップ方法よりも、QuickSight そのもののサービス概要や操作についての理解を優先されたい方は QuickSight DemoCentralAmazon QuickSight Gallery といったデモサイトや ハンズオンコンテンツ Amazon QuickSight - Visualization Basics (Japanese) をご確認ください。

ゲーム開発者向けのその他の記事はこちら

選択
  • 選択
  • Amazon DynamoDB で作るサーバーレスなゲーム用アチーブメントマイクロサービス
  • AWS の知識ゼロから始める AWS GameKit
  • Amazon GameLift を使って「最短」でマルチプレイヤーゲームを作る
  • Amazon DynamoDB で作るサーバーレスなゲーム用フレンドマイクロサービス
  • Amazon GameSparks でインフラを意識せずにゲームのバックエンドサービスを開発しよう
  • 魔法で作る Amazon DynamoDB の 簡単ゲームインベントリ
  • レベル 1 から作るゲームのクエスト手帳
  • サーバーレスなゲームのギルド検索
  • 一緒に学び考える ! ゲームの AI/ML 活用
  • 3 ステップで始める AI モデル開発 ! 始める前に知っておくべきコト !
  • 実践 ! 機械学習でゲームの休眠ユーザーを予測してみよう
  • Amazon GameLift Anywhere でサクッとマルチプレイゲームを開発しよう
  • ゲーム分析を Amazon Aurora と Amazon Redshift の Zero-ETL 統合ではじめよう
  • Amazon Redshift を活用したゲームの行動ログ分析
  • Amazon QuickSight によるゲーム分析ダッシュボードの構築
  • 品質管理に生成 AI は使えるのか !? テキストチェックを生成 AI にやらせてみた
  • 生成 AI を用いたヘルプソリューションを作成する
  • 世界に 1 つだけの AI アシスタント作成 ~オリジナルにカスタマイズ
  • マルチモーダルな生成 AI 活用の入門編! - 画像認識と画像生成
  • Amazon S3 と Amazon CloudFront を活用したグローバル向けゲームビルドバイナリ共有環境の構築

AWS for Games

AWS for Games はより早い開発、よりスマートな運営、そしてより楽しいゲームへの成長という BuildRunGrow の 3 つの柱に沿ってサポートします。今回は Grow の柱 ゲーム分析 のお話になります。


今回の内容

この投稿は、ゲーム分析に関する Builders.flash シリーズの第 3 弾です。

前回の投稿では プレイヤーの行動ログデータを Amazon Kinesis Data Firehose を介して Amazon Redshift Serverless に取り込み、クエリエディタ v2 を使った簡単な分析を実行して、その結果を棒グラフで可視化しました。SQL の実行結果を棒グラフ、円グラフ、折れ線グラフなどで可視化することができるクエリエディタ v2 は アドホックに分析を行うには便利なツールとなることを感じていただけたのではないでしょうか。

本稿では個々の分析データを一元的に集約して表示するダッシュボードに焦点を当て、AWS のサービスを活用したダッシュボードのセットアップ方法についてご案内します。分析データには前回の投稿で使用したサンプルログデータを使用します。


なぜダッシュボードが必要なのか

ゲーム運営におけるデータ分析にはアドホックな分析に加え、プロデューサーなどビジネスサイドへの定期的なレポーティングも必要です。また、ビジネスサイドだけでなく、ゲームの制作に関わるチーム全員がデータを基にゲームの実情を正しく理解して各種施策を検討することも重要となります。

ビジネスサイドと制作チームが同じデータを共有して、ゲーム運営の意思決定を進めるためには、KPI やプレイヤー行動データを一元的に示すダッシュボードは必要不可欠なツールとなります。

ダッシュボードの例を次に示します。(参考: KPI ダッシュボードを最速で用意するために:Amazon QuickSight で作るゲームダッシュボード)

こちらのダッシュボードは、DAU や Daily の売上、月間の売上の推移などビジネス KPI をひと目で把握できるように構成されています。こうした代表的な KPI をまずは確認し、トレンドに想定外の変化がみられた場合には詳細情報まとめている別のダッシュボードを確認したり、アドホックな分析を行うことで KPI トレンドの変化に寄与している要因を探ったりという次のアクションをとることができます。

クリックすると拡大します


ダッシュボードはどのように構築すればよいか

一般に、ダッシュボードは BI (Business Intelligence) ツールを用いて構築されます。BI ツールは、ユーザーフレンドリーなダッシュボードやデータ可視化に関する一連の機能を提供するソフトウェアです。BI ツールをログデータが置かれているデータソースに接続し、データソースから読みとったデータをどのようなビジュアルで表現するかをあらかじめ設定しておきます。そうして出来上がった円グラフ、棒グラフ、集計データなどの各種ビジュアルを見やすいように配置して集約することでダッシュボードが完成します。


Amazon QuickSight を活用したダッシュボードの構築

今回は Amazon QuickSight を活用した分析ダッシュボードの作成方法について紹介します。Amazon QuickSight は AWS の BI サービスです。AWS のサービスだけでなく様々なデータソースをサポートしています。また、ダッシュボードを閲覧するだけのユーザーについては、利用しなければ課金されない料金体系になっている点にも特徴があります。

本記事では Amazon Redshift に存在するデータを Amazon QuickSight で可視化する部分に焦点を当て、その手順を紹介します。Aurora MySQL 上にあるトランザクションデータを Amazon Redshift に連携する方法および、行動ログデータを Amazon Redshift に連携する手順についてはそれぞれ、過去記事の「Amazon Aurora と Amazon Redshift の Zero-ETL 統合ではじめるゲーム分析」と「Amazon Redshift を活用したゲームの行動ログ分析」を参考にしてください。

前回までにご紹介した部分と今回ご案内する部分をあわせたログ分析パイプラインの全体像は下図のようになります。トランザクションデータおよび、行動ログデータは随時、Redshift に集約され取り込まれていきます。ここに QuickSight を接続し、Redshift のデータを用いて分析ダッシュボードを構築します。

今回、セットアップする Redshift と QuickSight の接続部分のイメージはこちらの図のようになります。

Redshift はプライベートサブネットに配置されていることを想定し、QuickSight とは Redshift マネージド VPC エンドポイントを介して接続する構成をとっています。QuickSight の設定で VPC 内のリソースにアクセスするためのセットアップを行うことで Elastic network interface (ENI) が構成されます。Redshift マネージド VPC エンドポイントと QuickSight 接続用の ENI はそれぞれ Redshift とは別の VPC に配置することもできますが、今回は手順を簡単にするために同一の VPC に配置しています。

なお、Amazon QuickSight を Amazon Redshift に VPC エンドポイント経由で接続するためには QuickSight の Enterprise Edition を使用する必要があります。QuickSight のサービス概要や操作についての理解を優先されたい方は QuickSight DemoCentralAmazon QuickSight Gallery といったデモサイトや ハンズオンコンテンツ Amazon QuickSight - Visualization Basics (Japanese) をご確認ください。


セットアップ手順

1. セキュリティグループの作成

Redshift へのアクセスを許可するセキュリティグループを作成します。ここで作成したセキュリティグループは後ほど、Redshift マネージド VPC エンドポイントにアタッチします。

Amazon EC2 のページを開き、左のメニューから「セキュリティグループ」を選択し、表示された「セキュリティグループの作成」を選択します。
以下のように指定し、「セキュリティグループを作成」を選択します。

  • セキュリティグループ名: QuickSight Access
  • 説明: QuickSight Access
  • VPC: (Redshift を作成したデフォルトVPC)
  • インバウンドルール
    • タイプ: Redshift
    • ポート範囲: 5439
    • ソース: 0.0.0.0/0


次に、QuickSight の VPC 接続のための ENI にアタッチするセキュリティグループを作成します。

以下のように指定し、上記と同様にセキュリティグループを作成します。

  • セキュリティグループ名 : Redshift Access
  • 説明 : Redshift Access
  • VPC : (Redshift を作成したデフォルトVPC)
  • インバウンドルール
    • タイプ: すべての TCP
    • ソース: (上で作成した QuickSight Access のセキュリティグループ ID)


最後に、最初に作成したセキュリティグループ QuickSight Access のインバウンドルールを以下のように変更します。これによって、セキュリティグループ Redshift Access がアタッチされたリソース、つまり QuickSight からの接続のみを許可することができます。

  • インバウンドルール
    • タイプ : Redshift
    • ソース : (上で作成した Redshift Access のセキュリティグループ ID)

2. Redshift マネージド VPC エンドポイントの作成

Amazon Redshift の「ワークグループの設定」で「game-log-workgroup」を選択し、画面下の「エンドポイントを作成」を選択します。

クリックすると拡大します

以下のように指定し、「エンドポイントを作成」を選択します。

  • エンドポイント名 : quicksight-access-endpoint
  • AWS アカウント ID : 現在の AWS アカウント ID (デフォルト値)
  • Virtual Private Cloud (VPC) : デフォルト VPC
  • サブネット : (すべてのサブネットを選択)
  • VPC セキュリティグループ : QuickSight Access

クリックすると拡大します

エンドポイントが作成されたら、「エンドポイント URL」を確認します。この値は後ほど、QuickSight の設定で使用するのでメモしておきます。

クリックすると拡大します

3. Amazon QuickSight の VPC 接続設定

AWS Identity and Access Management (IAM) のページを開き、「ロール」メニューで QuickSight で使用しているサービスロール (デフォルトでは “aws-quicksight-service-role-v0”) を選択します。

許可を追加」から「インラインポリシーを作成」を選択します。

クリックすると拡大します

ポリシーエディタ (JSON) で以下のように編集し、「次へ」を選択します。

{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Effect": "Allow",
            "Action": [
                "ec2:CreateNetworkInterface",
                "ec2:ModifyNetworkInterfaceAttribute",
                "ec2:DeleteNetworkInterface",
                "ec2:DescribeSubnets",
                "ec2:DescribeSecurityGroups"
            ],
            "Resource": "*"
        }
    ]
}

ポリシー名に「Modify-VPC-Connection」を指定し、「ポリシーの作成」を選択します。
これで QuickSight が ENI を作成できるようになりました。

次に Amazon QuickSight のページを開き、右上のメニューから「QuickSight を管理」 を選択し、表示された画面で「VPC 接続の管理」を選択します。

次のように指定し、「追加」を選択します。

  • VPC 接続名 : Redshift Managed VPC Endopoint Access
  • VPC ID : (Redshift を作成したデフォルトVPC)
  • 実行ロール : (QuickSight が使用するサービスロール)
  • サブネット : (2 つ以上のサブネットを指定)
  • セキュリティグループ ID : (セキュリティグループ「Redshift Access」の ID)

クリックすると拡大します

ステータスが「UNAVAILABLE」から「AVAILABLE」に変わったことを確認したら、画面左上の QuickSight ロゴをから、ホーム画面に戻って、左メニューの「データセット」を選択します。

クリックすると拡大します

右上の「新しいデータセット」を選択し、データセットの中から「Redshift 手動接続」を選択します。

以下のように指定し、「接続を検証」選択します。

  • データソース名 : redshift-log-game
  • 接続タイプ : Redshift Managed VPC Endpoint Access
  • データベースサーバー : (Redshift マネージド VPC エンドポイントの URL)
  • ポート : 5439
  • データベース : game
  • ユーザー名 : admin
  • パスワード: (指定した管理者パスワード)

クリックすると拡大します

ここまでの接続設定に問題がなければ「検証済み」と表示されます。続いて「データソースを作成」を選択します。

「このデータソースを作成できませんでした。」というエラーが表示されたときは、ここで入力した接続情報や セキュリティグループの設定を見直してください。

4. Amazon QuickSight でのダッシュボード作成

log テーブルを指定し、「選択」を選択します。

クリックすると拡大します

次の画面で「Visualize」を選択し、データセットの作成を完了します。

これで、QuickSight は Redshift の log テーブルを redshift-log-game というデータセットとして扱えるようになりました。

なお、「迅速な分析のために SPICE へインポート」を指定すると SPICE (Super-fast, Parallel, In-memory Calculation Engine) と呼ばれる、QuickSight が使用するインメモリエンジンにデータソースのデータが取り込まれます。

SPICE を使用することによって、QuickSight 上での分析クエリのパフォーマンス向上が期待されます。詳しくは SPICE へのデータのインポート をご確認ください。

クリックすると拡大します

Visualize」を選択すると次の画面が表示されます。

インタラクティブシート」が選択された初期状態のまま、「作成」を選択します。

画像をクリックすると拡大します

データセットの作成が完了したので、次に「分析」を作成します。

データセットの任意のフィルールドを可視化して「分析」を作成します。

まずは、使用された武器の割合を可視化してみましょう。

画面左下のビジュアルタイプでどのようなグラフに表現するかを選択できます。初期状態では AutoGraph が選択されています。ここで、フィールドリストから weapon_id を選択すると水平棒グラフで weapon_id ごとのレコード件数が可視化されます。

画像をクリックすると拡大します

水平棒グラフが自動的に選択されましたが、明示的にビジュアルタイプを指定することで別のグラフにすることができます。例えば全体に占める weapon_id ごとのレコード件数割合を直感的に把握したいときは円グラフを使った方が良さそうです。

ビジュアルタイプから「円グラフ」を選択します。すると、水平棒グラフから円グラフへと変更されます。

画面左上の「ファイル」メニューから「分析として保存」を選択し、任意の名前をつけて分析を保存します。

画像をクリックすると拡大します

このようにデータセットを用いて円グラフなどのビジュアルで表現される分析を作成していきます。様々なビジュアルタイプで分析を作成してみてください。

必要な分析を作り終えたらそれらの分析を1つのダッシュボードに配置します。

画面左上の「ファイル」メニューから「公開」を選択し、任意の指定し「ダッシュボードの公開」を選択します。

画像をクリックすると拡大します

これでダッシュボードが作成されました。このダッシュボードを他の QuickSight ユーザーに共有することができます。

また、iframe 埋め込み用の URL を生成することもできるのでプロジェクトのポータルサイトなどの Web サイトにダッシュボードをカスタマイズして表示させることもできます。

今回はシンプルなサンプルデータを使ってダッシュボード作成を行いましたが、もう少し複雑な行動ログデータを可視化してみると以下のようなダッシュボードを作ることができます。
(参考: KPI ダッシュボードを最速で用意するために:Amazon QuickSight で作るゲームダッシュボード)

こちらのダッシュボードはプレイヤー行動データを可視化したものです。ゲームの進行状況をもとにプレイヤーを 1 ~ 3 のセグメントに分け、各セグメントにおける平均のレベル、プレイ時間などのメトリクスを確認するとともに、有償コンテンツの購入傾向を把握することができます。

どのような施策を打てば、プレイヤーがより熱心にゲームを遊んでくれるか、より良いゲーム体験をプレイヤーに届けるにはどのような改善が必要かといった議論をする際に役立ちます。

簡単ではありますが、Amazon QuickSight を Amazon Redshift に接続し、QuickSight で分析ダッシュボードをセットアップする手順のご案内は以上となります。

5. リソースの削除

最後にリソースの削除を行います。

Amazon QuickSight のリソース削除

ダッシュボード」メニューから作成したダッシュボードを削除します。

画像をクリックすると拡大します

分析」メニューから作成した分析を削除します。

画像をクリックすると拡大します

データセット」メニューからデータセット「log」を削除します。

画像をクリックすると拡大します

VPC 接続の管理」メニューから VPC 接続「Redshift Managed VPC Endpoint Access」を削除します。

画像をクリックすると拡大します

Amazon Redshift のリソース削除

Redshift マネージ VPC ドエンドポイントの設定画面で「quicksight-access-endpoint」を削除します。

画像をクリックすると拡大します

※ その他、必要に応じ前回までに作成した AWS リソースを削除してください。


まとめ

ゲーム分析シリーズの第3回目ではデータ分析におけるデータの可視化に焦点を当て、その一例として Redshift に集められたデータを QuickSight を用いて可視化し、ダッシュボードとしてセットアップする方法をご案内しました。

ゲーム運営の意思決定に役立つデータ分析、ダッシュボードの構築に取り組まれようとされている方の参考になれば幸いです。

ゲーム開発者向けのその他の記事はこちら

選択
  • 選択
  • Amazon DynamoDB で作るサーバーレスなゲーム用アチーブメントマイクロサービス
  • AWS の知識ゼロから始める AWS GameKit
  • Amazon GameLift を使って「最短」でマルチプレイヤーゲームを作る
  • Amazon DynamoDB で作るサーバーレスなゲーム用フレンドマイクロサービス
  • Amazon GameSparks でインフラを意識せずにゲームのバックエンドサービスを開発しよう
  • 魔法で作る Amazon DynamoDB の 簡単ゲームインベントリ
  • レベル 1 から作るゲームのクエスト手帳
  • サーバーレスなゲームのギルド検索
  • 一緒に学び考える ! ゲームの AI/ML 活用
  • 3 ステップで始める AI モデル開発 ! 始める前に知っておくべきコト !
  • 実践 ! 機械学習でゲームの休眠ユーザーを予測してみよう
  • Amazon GameLift Anywhere でサクッとマルチプレイゲームを開発しよう
  • ゲーム分析を Amazon Aurora と Amazon Redshift の Zero-ETL 統合ではじめよう
  • Amazon Redshift を活用したゲームの行動ログ分析
  • Amazon QuickSight によるゲーム分析ダッシュボードの構築
  • 品質管理に生成 AI は使えるのか !? テキストチェックを生成 AI にやらせてみた
  • 生成 AI を用いたヘルプソリューションを作成する
  • 世界に 1 つだけの AI アシスタント作成 ~オリジナルにカスタマイズ
  • マルチモーダルな生成 AI 活用の入門編! - 画像認識と画像生成
  • Amazon S3 と Amazon CloudFront を活用したグローバル向けゲームビルドバイナリ共有環境の構築

builders.flash メールメンバーへ登録することで
AWS のベストプラクティスを毎月無料でお試しいただけます

筆者プロフィール

小森谷 健太
アマゾン ウェブ サービス ジャパン合同会社
ソリューションアーキテクト

AWS 入社前は SIer で業務システムのインフラ構築、運用を行っていました。
現在はゲーム、エンターテイメント業界のお客様向けに AWS を活用した技術支援を担当しています。

Sheng Hsia Leng
アマゾン ウェブ サービス ジャパン合同会社 ソリューションアーキテクト

ゲーム業界に特化したソリューションアーキテクトとしてお客様を支援しております。
RPG とドット絵ゲームが好きです。オフモードの時はインスタでバイリンガル漫画を投稿しています。

AWS を無料でお試しいただけます

AWS 無料利用枠の詳細はこちら ≫
5 ステップでアカウント作成できます
無料サインアップ ≫
ご不明な点がおありですか?
日本担当チームへ相談する