Google Cloud (Professional Cloud Architect) -Mountkirk Games-
本記事は、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 を初めて利用し、大成功しました。プレイヤーの行動とゲームのテレメトリーを、 以前にはできなかった方法で分析できるようになりました。この成功がきっかけで、クラウドに完全に移行する方針が定まり、 新しいゲームはすべてクラウドネイティブ設計の原則に基づいて制作するようになりました。 次のゲームは当社にとって史上最大の挑戦であり、初めてモバイル以外のゲーム プラットフォームに対応する予定です。 レイテンシが最優先事項であり、その次に重要な課題は費用管理です。当社初のクラウドベース ゲームの経験から、 クラウドを利用した高度なアナリティクス機能にも期待するようになりました。 迅速な反復型開発によってバグ修正や新機能のデプロイを加速したいと考えています。
構成イメージ
chameleonmeme.com/ きっかけは、偶然同じ現場で働いていたエンジニア3人の 「もっと仕事にのめり込んだり、熱中したいよね」という雑談でした。 営業から開発、サービスの提供まですべての工程を自分たちの手で行い、 気の合う仲間と楽しく仕事をすることで熱中するためにチームをスタートしました。
Discussion