メインコンテンツに移動
デベロッパーのためのクラウド活用方法
AWS for Games logo featuring a white game controller icon and the text 'AWS FOR GAMES'.

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) をご確認ください。

X ポスト » | Facebook シェア » | はてブ »

builders.flash メールメンバー登録

毎月提供されるクラウドレシピのアップデート情報とともに、クレジットコードを受け取ることができます。 
今すぐ特典を受け取る »

AWS for Games

AWS for Games はより早い開発、よりスマートな運営、そしてより楽しいゲームへの成長という BuildRunGrow の 3 つの柱に沿ってサポートします。今回は Grow の柱 ゲーム分析 のお話になります。
Diagram illustrating the stages of game development—Build, Run, and Grow—with categories for cloud game development, game servers, game security, game databases, LiveOps, game analytics, and AI & ML. Includes Japanese text and illustrative icons.

今回の内容

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

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

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

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

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

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

Illustration showing animated figures analyzing a game analytics dashboard with various charts and graphs under the 'AWS FOR GAMES' logo, representing AWS QuickSight for game analytics.

ダッシュボードの例

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

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

Screenshot of an AWS QuickSight dashboard for game analytics, displaying sales, user activity, ARPU, and other game metrics in Japanese, with charts and graphs for detailed data visualization.

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

一般に、ダッシュボードは 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 のデータを用いて分析ダッシュボードを構築します。

Architecture diagram in Japanese showing a game analytics solution using AWS services including Amazon EC2, Amazon Kinesis Data Firehose, Amazon Aurora, Amazon Redshift, and Amazon QuickSight.

Redshift と QuickSight の接続部分のイメージ

今回、セットアップする 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) をご確認ください。

Architecture diagram illustrating the integration of Amazon QuickSight with Amazon Redshift Serverless within a Virtual Private Cloud (VPC), highlighting the flow through Redshift Managed VPC Endpoints and Elastic network interface.

セットアップ手順

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 エンドポイントの作成

Screenshot of the Amazon Redshift interface displaying Virtual Private Cloud (VPC) endpoint settings in Japanese, including network and security configurations and VPC managed endpoint information.

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

Amazon QuickSightのエンドポイント設定画面(日本語インターフェース)。エンドポイント名、AWSアカウントID、VPC、サブネット、セキュリティグループの選択オプションと作成ボタンが表示されています。

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

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

Screenshot showing the Amazon Redshift QuickSight access endpoint settings in Japanese, including VPC, endpoint ID, network interface ID, and endpoint URL details.

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

3. Amazon QuickSight の VPC 接続設定

AWS IAMコンソールで表示された、QuickSightサービスロール(aws-quicksight-service-role-v0)の日本語インターフェイス画面。インラインポリシーの作成や許可ポリシーの管理が行える状態を示しています。

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 接続の管理」を選択します。

AWS QuickSightのVPC接続追加画面(日本語インターフェース)。Redshift Managed VPC Endpoint Accessの設定例で、VPC IDやサブネット、セキュリティグループ、ロール選択などのUIオプションが表示されています。

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

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

Screenshot of the Amazon QuickSight user interface in Japanese, displaying the dataset section when no datasets are present. The interface prompts the user to create or import a new dataset to begin analysis.

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

AWS QuickSightでRedshiftデータソースを新規作成する日本語インターフェースの設定画面。データソース名、接続タイプ、データベースサーバー、ポート、データベース名、ユーザー名、パスワードなどの入力欄が表示されている。

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

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

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

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

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

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

Screenshot in Japanese of Amazon QuickSight interface showing the selection of a table (log) from the redshift-log-game schema in Amazon Redshift, with options for data editing, custom SQL, and table selection.

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

Amazon QuickSight で Redshift のログゲームデータソースからデータセットを作成する日本語ユーザーインターフェースのスクリーンショットです。テーブル、データソース、スキーマの情報や、SPICEインポートやデータクエリ実行選択肢が表示されています。

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

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

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

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

Amazon QuickSight の新規シート作成ダイアログの日本語インターフェースのスクリーンショット。インタラクティブシートやページ分割されたレポートの選択肢や設定項目が表示されています。

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

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

Screenshot of Amazon QuickSight displaying a horizontal bar chart for game analytics, with weapon ID fields and labels in Japanese.

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

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

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

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

Screenshot of AWS QuickSight displaying a pie chart that analyzes game data by weapon ID, with the interface and visualization labels in Japanese. The chart segments show counts for weapon IDs 200,000,001; 200,000,002; and 200,000,003.

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

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

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

Screenshot of the Amazon QuickSight dashboard publication dialog in Japanese. The interface allows users to publish a new dashboard or replace an existing one, and includes options for selecting sheets and enabling topics for analysis.

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

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

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

Screenshot of an AWS QuickSight dashboard displaying game analytics, including a pie chart of weapon usage ratios, a bar chart of win rankings by player, and a results table with player and weapon data. The interface is in Japanese.

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

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

Screenshot of an AWS QuickSight interactive analytics dashboard interface in Japanese, displaying game segmentation metrics such as player levels, time played, and item purchase rankings using bar and line charts for various dungeon segments in a game.

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

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

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

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

5. リソースの削除

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

Amazon QuickSight のリソース削除

Screenshot of the Amazon QuickSight dashboard interface displayed in Japanese, showing the navigation menu and dashboard management options.

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

Amazon QuickSightの管理画面のスクリーンショットで、ゲーム分析に関するダッシュボードや分析項目(勝者が使用した武器の占有率など)が日本語で表示されている。

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

Screenshot of AWS QuickSight's dataset management interface in Japanese, showing options to create, manage, and delete datasets.

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

Screenshot of AWS QuickSight's VPC Connection Management interface in Japanese, showing settings for managing Redshift Managed VPC Endpoint connections.

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

Amazon Redshift のリソース削除

Screenshot showing the Amazon QuickSight integration settings for a Redshift managed VPC endpoint, displayed in Japanese. Includes account ID details, VPC endpoint configuration, network interface, private IP, security groups, and connection URLs specific to Redshift and QuickSight functionality.

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

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

まとめ

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

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

筆者プロフィール

Portrait photo of a man with short black hair wearing a gray shirt, set against a black background.

小森谷 健太

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

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

Anime-style illustration of a girl with big eyes, brown hair, and a pink shirt, set against a green background.

Sheng Hsia Leng

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

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