🌏

Google Cloud (Professional Cloud Architect) -Mountkirk Games-

2022/08/11に公開

本記事は、Google CloudのProfessional Cloud Architect認定資格で出題されるケーススタディを分析した記事です。
Google Cloudの認定資格は2年毎に取り直す必要があります。そこで今回は、「Mountkirk Games」のケーススタディを分析していきたいと思います。

はじめに

  • 本記事は個人的にまとめた内容となります。実際の試験では要件が変更され、最適解が変わる可能性があります。参考程度に見ていただけたらと思います。
  • 各種サービスの最新情報は公式ドキュメントを参考にしてください。

会社概要

Mountkirk Games は、モバイル プラットフォーム向けにセッション ベースのオンライン マルチプレーヤー型ゲームを開発しています。オンプレミス環境から Google Cloud への移行を終え、 他のプラットフォームへの拡張を始めたところです。
最近は新たな挑戦として、レトロスタイルのファースト パーソン シューティング(FPS) ゲームを制作しています。このゲームでは、複数のプラットフォームと場所から何百人ものプレイヤーが同時に地域別のデジタル アリーナに参加できます。リアルタイムのデジタルバナーで、プレイ中のアリーナのすべてのトップ プレイヤーをグローバル リーダーボードに表示します。

ソリューションのコンセプト

Mountkirk Games が開発中の新しいマルチプレーヤー型ゲームは、大人気になることが予想されています。 ゲームのバックエンドは Google Kubernetes Engine にデプロイする予定です。これにより、 迅速にスケーリングできるようになり、Google のグローバル ロードバランサを利用して、 プレイヤーを最も近い地域のゲームアリーナにルーティングすることも可能になります。グローバル リーダーボードの同期を維持するために、マルチリージョン Spanner クラスタを使用する予定です。

既存の技術的環境

同社は最近、既存の環境を Google Cloud に移行しました。少数の例外を除き、 リフト&シフトによる仮想マシンの移行で 5 つのゲームを移行しました。 新しいゲームはそれぞれに分離された Google Cloud プロジェクトに配置され、 権限とネットワーク ポリシーのほとんどを管理しているフォルダの下にネストされています。 トラフィックの少ない従来のゲームは 1 つのプロジェクトにまとめました。 開発とテストのための環境も個別に用意されています。

ビジネス要件

要件 対応ソリューション コメント
複数のゲームプラットフォームに対応する GKE ゲームサーバとしてはAgonesを使うとよさそう
ゲーム機能の迅速な反復型開発に対応する CICD
レイテンシを最小化する グローバルLoadBalancer GKE Ingressでグローバル外部ロードバランサをデプロイ
動的スケーリングに最適化する GKE Autopilotを使用すると水平・垂直スケーリングも簡単にできますが、グラフィックサーバでGPUを使用する場合はstandardモードになります
マネージドサービスとプールされたリソースを利用する GKE/Spanner ゲーム関連では、他にもRedis/Memcache/Bigtableも利用したりします。
費用を最小限に抑える GKE GKEで必要なリソースのみ起動し、必要なときにスケーリングして費用を抑えます。

技術的要件

要件 対応ソリューション コメント
ゲームアクティビティに基づいて、動的にスケーリングする GKE,Spanner
ほぼリアルタイムのグローバルリーダーボードにスコアデータを公開する Spanner
ゲームアクティビティログを後で分析できるように構造化ファイルに保存する CloudStorage 分析のために、「pub/sub -> Dataflow -> BigQuery」にも保存
マルチプラットフォーム サポートのためにグラフィックス サーバー側を GPU 処理でレンダリングする GKE GKEでGPUを使用する場合は、現状Autopilotモードでは設定できないため、standardモードを使用する必要がある
将来的に既存のゲームをこの新しいプラットフォームに移行できるようにする ??

経営陣のメッセージ

当社の最新のゲームに Google Cloud を初めて利用し、大成功しました。プレイヤーの行動とゲームのテレメトリーを、 以前にはできなかった方法で分析できるようになりました。この成功がきっかけで、クラウドに完全に移行する方針が定まり、 新しいゲームはすべてクラウドネイティブ設計の原則に基づいて制作するようになりました。 次のゲームは当社にとって史上最大の挑戦であり、初めてモバイル以外のゲーム プラットフォームに対応する予定です。 レイテンシが最優先事項であり、その次に重要な課題は費用管理です。当社初のクラウドベース ゲームの経験から、 クラウドを利用した高度なアナリティクス機能にも期待するようになりました。 迅速な反復型開発によってバグ修正や新機能のデプロイを加速したいと考えています。

構成イメージ

Discussion