Mountkirk GamesのGoogle Cloud Platform活用戦略
EAIM HSU YAMIN
EAIM HSU YAMIN
2024-01-30
このブログでは、Mountkirk Gamesがセッションベースのオンラインマルチプレーヤー型ゲームの開発において、Google Cloud Platform(GCP)のサービスをどのように組み合わせて使用しているかについて詳しく解説します。GKE、Global Load Balancer、Cloud Spannerなどのサービスを活用することで、Mountkirk Gamesはスケーラビリティ、低レイテンシ、グローバルリーダーボードの同期など、高いパフォーマンスとコスト効率のバランスを実現しています。

Close sidebar

ChatGPT 4

User

You

ケーススタディ: Mountkirk
Games
Professional Cloud Architect
Mountkirk Games は、モバイル プラットフォーム向けにセッション ベースのオンラ
イン マルチプレーヤー型ゲームを開発しています。オンプレミス環境から Google
Cloud への移行を終え、他のプラットフォームへの拡張を始めたところです。

最近は新たな挑戦として、レトロスタイルのファースト パーソン シューティング
(FPS)ゲームを制作しています。このゲームでは、複数のプラットフォームと場所
から何百人ものプレイヤーが同時に地域別のデジタル アリーナに参加できます。リア
ルタイムのデジタルバナーで、プレイ中のアリーナのすべてのトップ プレイヤーをグ
ローバル リーダーボードに表示します。
Mountkirk Games が開発中の新しいマルチプレーヤー型ゲームは、大人気になること
が予想されています。ゲームのバックエンドは Google Kubernetes Engine にデプロイ
する予定です。これにより、迅速にスケーリングできるようになり、Google のグロー
バル ロードバランサを利用して、プレイヤーを最も近い地域のゲームアリーナにルー
ティングすることも可能になります。グローバル リーダーボードの同期を維持するた
めに、マルチリージョン Spanner クラスタを使用する予定です。
同社は最近、既存の環境を Google Cloud に移行しました。少数の例外を除き、リフ
ト&シフトによる仮想マシンの移行で 5 つのゲームを移行しました。
会社概要
ソリュ ションのコンセプト
既存の技術的環境
 複数のゲーム プラットフォームに対応する5
 複数のリージョンに対応する5
 ゲーム機の迅速な反復型開発に対応する5
 レイテン6を最小化する5
 動的スケーリングに最適化する5
 マネージド サービスとプールされたリソースを利用する5
 費用を最小限に抑える。
ビジネス要件
 ゲーム アクティビティに基づいて、動的にスケーリングする5
 ほぼリアルタイムのグローバル リーダーボードにスコアデータを公開する5
 ゲーム アクティビティ ログを後で分析できるように構造化ファイルに保存する5
 マルチプラットフォーム サポートのためにグラフィックス サーバー側を GPU 処理
でレンダリングする5
 将来的に既存のゲームをこの新しいプラットフォームに移行できるようにする。
技術的要件
当社の最新のゲームに Google Cloud を初めて利用し、大成功しました。プレイヤ
の行動とゲームのテレメトリーを、以前にはできなかった方法で分析できるようにな
りました。この成功がきっかけで、クラウドに完全に移行する方針が定まり、新しい
ゲームはすべてクラウドネイティブ設計の原則に基づいて制作するようになりまし
た。次のゲームは当社にとって史上最大の挑戦であり、初めてモバイル以外のゲーム
プラットフォームに対応する予定です。
経営陣のメッセージ
新しいゲームはそれぞれに分離された Google Cloud プロジェクトに配置され、権限
とネットワーク ポリ6ーのほとんどを管理しているフォルダの下にネストされていま
す。トラフィックの少ない従来のゲームは 1 つのプロジェクトにまとめました。開発
とテストのための環境も個別に用意されています。

レイテンシが最優先事項であり、その次に重要な課題は費用管理です。当社初のクラ
ウドベース ゲームの経験から、クラウドを利用した高度なアナリティクス機能にも期
待するようになりました。迅速な反復型開発によってバグ修正や新機能のデプロイを
加速したいと考えています。
上記のケースの場合、GCPのどのようなサービスを組み合わせて使った方がいいですか。なぜですか。

ChatGPT

ChatGPT

Mountkirk Gamesのケーススタディに基づいて、Google Cloud Platform(GCP)の複数のサービスを組み合わせて使うことが推奨されます。それぞれのサービスが、特定の技術的およびビジネス要件を満たすように設計されています。以下に、主要な要件とそれらを満たすためのGCPサービスを列挙します。

1. Google Kubernetes Engine (GKE)

  • 理由: Mountkirk Gamesは、新しいFPSゲームのバックエンドをGKEにデプロイする予定です。GKEはコンテナ化されたアプリケーションのデプロイ、管理、スケーリングに最適で、動的なスケーリングと迅速な反復型開発をサポートします。

2. Global Load Balancer

  • 理由: プレイヤーを最も近い地域のゲームアリーナにルーティングするために使用します。これにより、レイテンシを最小化し、ユーザー体験を向上させることができます。

3. Cloud Spanner

  • 理由: グローバル リーダーボードの同期を維持するためにマルチリージョン Spanner クラスタを使用します。Cloud Spannerはグローバルな分散型データベースであり、高い可用性と強力な一貫性を提供します。

4. Compute Engine with GPU support

  • 理由: マルチプラットフォーム サポートのためにグラフィックス サーバー側をGPU処理でレンダリングします。Compute EngineのGPU付きインスタンスは、高度なグラフィックス処理に最適です。

5. Cloud Storage

  • 理由: ゲーム アクティビティ ログを構造化ファイルに保存するために使用します。Cloud Storageは大規模なデータセットの格納とアクセスに適しており、分析目的でのデータ利用を容易にします。

6. BigQuery

  • 理由: ゲームのテレメトリーとプレイヤーの行動を分析するために使用します。BigQueryは大量のデータに対する高速なSQLクエリを提供し、洞察の抽出を加速します。

7. Cloud Pub/Sub and Dataflow

  • 理由: ゲームアクティビティからリアルタイムのデータを処理し、分析やリーダーボードの更新に利用します。Cloud Pub/Subはイベント駆動型のメッセージングを提供し、Dataflowはストリームおよびバッチデータの処理を容易にします。

8. Cloud Functions or Cloud Run

  • 理由: ゲーム内イベントに対する軽量なマイクロサービスや関数をデプロイするために使用します。これらのサービスはイベント駆動型であり、必要に応じて自動的にスケールします。

これらのサービスを組み合わせることで、Mountkirk Gamesは動的にスケーリングするゲーム環境を構築し、低レイテンシのゲームプレイを提供し、コストを管理しつつ、高度なアナリティクス機能を活用できます。

User

You

上記のGCPサービスを組み合わせて使用することためのステップを教えて

ChatGPT

ChatGPT

Mountkirk GamesがGCPサービスを組み合わせて使用するためのステップは以下の通りです。

1. プロジェクトと環境のセットアップ

  • Google Cloudプロジェクトを作成し、必要なAPIを有効化します(例: Kubernetes Engine API, Compute Engine APIなど)。
  • 開発、ステージング、本番環境用に個別のプロジェクトまたは環境を設定します。

2. Google Kubernetes Engine (GKE)のセットアップ

  • GKEクラスタを作成し、ゲームサーバーのコンテナをデプロイするための環境を設定します。
  • ゲームサーバーのコンテナイメージを作成し、GKEクラスタにデプロイします。
  • オートスケーリングを設定して、トラフィックの増減に応じてリソースを自動的に調整します。

3. Global Load Balancerの設定

  • Global Load Balancerを設定し、トラフィックを適切なGKEクラスタにルーティングします。
  • ヘルスチェックと転送ルールを設定して、トラフィックの分散を最適化します。

4. Cloud Spannerのデプロイメント

  • Cloud Spannerインスタンスを設定し、グローバルリーダーボードのデータモデルを設計します。
  • マルチリージョン構成を選択して、データの可用性と耐久性を確保します。

5. Compute EngineのGPUインスタンスの設定

  • GPUをサポートするCompute Engineインスタンスを設定し、グラフィックス処理用のサーバーをデプロイします。
  • 必要なグラフィックスライブラリとゲームエンジンをインスタンスにインストールします。

6. Cloud Storageの利用

  • Cloud Storageバケットを作成し、ゲームアクティビティログを格納するための構造を設定します。
  • ログデータを定期的にCloud Storageに転送するプロセスを設定します。

7. BigQueryでのデータ分析

  • Cloud StorageからBigQueryにデータをインポートするためのデータセットを作成します。
  • SQLクエリを使用してデータを分析し、プレイヤーの行動やゲームのパフォーマンスに関する洞察を得ます。

8. Cloud Pub/SubとDataflowの統合

  • ゲームアクティビティからのイベントを処理するためにCloud Pub/Subトピックとサブスクリプションを設定します。
  • Dataflowを使用してリアルタイムデータを処理し、分析やリーダーボードの更新などのタスクに利用します。

9. Cloud FunctionsまたはCloud Runの使用

  • ゲーム内イベントに対応するマイクロサービスや関数をCloud FunctionsまたはCloud Runで作成します。
  • イベントトリガーを設定して、特定のゲームアクティビティに応じて関数が実行されるようにします。

これらのステップを通じて、Mountkirk GamesはGCPのサービスを組み合わせて、スケーラブルで低レイテンシのマルチプレーヤーゲーム環境を構築し、リアルタイム分析と

User

You

上記のGCPサービスを組み合わせて使用することためのステップを教えて

ChatGPT

ChatGPT

Mountkirk GamesがGCPサービスを組み合わせて使用するための具体的なステップは以下の通りです。

1. プロジェクトの設定

  • GCPアカウントにログインし、新しいプロジェクトを作成します。
  • 必要なAPI(Kubernetes Engine、Compute Engine、Cloud Spannerなど)を有効にします。

2. Google Kubernetes Engine (GKE) の設定

  • GKEクラスタを作成します。クラスタのサイズ、リージョン、ノードのタイプを選択します。
  • ゲームサーバー用のコンテナイメージを作成し、GKEにデプロイします。
  • オートスケーリングを有効にし、トラフィックに基づいてリソースを自動的にスケールアップ/ダウンさせます。

3. グローバル ロードバランサの設定

  • HTTP(S) ロードバランサを設定し、複数のリージョンにわたるトラフィックのバランスを取ります。
  • ヘルスチェックを設定し、異常なインスタンスからトラフィックを自動的に除外します。

4. Cloud Spanner のデプロイメント

  • Cloud Spanner インスタンスを作成し、リージョンとスキーマを設定します。
  • リーダーボードデータを格納するためのデータベースとテーブルを作成します。

5. Compute Engine での GPU インスタンスの設定

  • GPU をサポートする Compute Engine VM インスタンスを作成します。
  • 必要に応じて、ゲームサーバーのグラフィック処理に最適化されたカスタムイメージをインストールします。

6. Cloud Storage でのログデータの管理

  • Cloud Storage バケットを作成し、ゲームのアクティビティログを保存するための構造を設計します。
  • ログデータを定期的にバケットにアップロードするための自動化スクリプトまたはサービスを設定します。

7. BigQuery でのデータ分析

  • Cloud Storage から BigQuery へのデータ転送を設定します。
  • ゲームのパフォーマンスとプレイヤーの行動を分析するためのクエリを作成します。

8. Cloud Pub/Sub と Dataflow の統合

  • リアルタイムイベント処理のために Cloud Pub/Sub トピックとサブスクリプションを作成します。
  • Dataflow を使用してストリームデータを処理し、リアルタイム分析や即時のリーダーボード更新を実行します。

9. Cloud Functions または Cloud Run の利用

  • ゲーム内イベントに反応するためのマイクロサービスまたは関数を Cloud Functions または Cloud Run で開発します。
  • これらのサービスをトリガーするためのイベント、条件、およびアクションを定義します。

10. セキュリティと監視の設定

  • VPCネットワーク、ファイアウォールルール、IAMポリシーを設定して、リソースへのアクセスを制御します。
  • Cloud Monitoring と Cloud Logging を設定して、システムのパフォーマンスとセキュリティ状況を監視します。

これらのステ

2 / 2

User

You

今までの会話を整理したいです。日本語でマインドマップの形で下記のステップでまとめてください。 1.まず「マインドマップ:」という文字列を先頭に入れてください。 2.そして改行を入れてください。 3.マインドマップの内容を作ってください。必ずmarkdownの記述方式で出力してください。

ChatGPT

ChatGPT

マインドマップ:



markdownCopy code

- Mountkirk Games ケーススタディ   
   - プロジェクトと環境のセットアップ   
     - GCPアカウントとプロジェクトの作成   
     - 必要なAPIの有効化   
     - 開発、ステージング、本番環境の構築   
   - Google Kubernetes Engine (GKE)   
     - GKEクラスタの作成   
     - コンテナイメージの作成とデプロイ   
     - オートスケーリングの設定   
   - Global Load Balancer   
     - HTTP(S) ロードバランサの設定   
     - ヘルスチェックと転送ルールの設定   
   - Cloud Spanner   
     - インスタンスの作成とリージョン設定   
     - リーダーボード用データベースとテーブルの作成   
   - Compute Engine の GPU インスタンス   
     - GPU インスタンスの作成   
     - グラフィック処理用のカスタムイメージのインストール   
   - Cloud Storage   
     - ログデータ用のバケットの作成   
     - データアップロードの自動化   
   - BigQuery   
     - データ転送の設定   
     - データ分析用のクエリ作成   
   - Cloud Pub/Sub と Dataflow   
     - トピックとサブスクリプションの作成   
     - ストリームデータの処理とリアルタイム分析   
   - Cloud Functions または Cloud Run   
     - マイクロサービスまたは関数の開発   
     - イベント、条件、アクションの定義   
   - セキュリティと監視   
     - VPC、ファイアウォール、IAMの設定   
     - Cloud Monitoring と Cloud Logging の利用 



User

You

今までの会話をブログに作りたい。マインドマップ作成の内容を除いて、 タイトルと集約文、そしてSEO対応のため、キーワードを「,」区切りでまとめてください。出力文のフォーマットは「タイトル:」「集約文:」「キーワード:」の形でお願いいたします。「タイトル:」「集約文:」「キーワード:」は改行2回で区切りしてください。そして「タイトル」「集約文」「キーワード」以外の説明がいりません。そして日本語で出力してください。最後、「キーワード」作るとき、意味が重複な単語をしないで、そして10キーワードを超えないようにお願いします。

ChatGPT

ChatGPT

タイトル:
Mountkirk GamesのGoogle Cloud Platform活用戦略

集約文:
このブログでは、Mountkirk Gamesがセッションベースのオンラインマルチプレーヤー型ゲームの開発において、Google Cloud Platform(GCP)のサービスをどのように組み合わせて使用しているかについて詳しく解説します。GKE、Global Load Balancer、Cloud Spannerなどのサービスを活用することで、Mountkirk Gamesはスケーラビリティ、低レイテンシ、グローバルリーダーボードの同期など、高いパフォーマンスとコスト効率のバランスを実現しています。

キーワード:
Mountkirk Games,GCP,Google Kubernetes Engine,Global Load Balancer,Cloud Spanner,スケーラビリティ,低レイテンシ,マルチプラットフォーム,クラウド移行,コスト効率

ChatGPT can make mistakes. Consider checking important information.

?