コンテンツに移動
Containers & Kubernetes

GKE Autopilot でゲーム インフラストラクチャを実行して、プレーヤー エクスペリエンスに集中する

2023年3月31日
Google Cloud Japan Team

※この投稿は米国時間 2023 年 3 月 22 日に、Google Cloud blog に投稿されたものの抄訳です。

Google は今月初めに、ライブサービス ゲームに関する Google Cloud の戦略を発表しました。この戦略では、(1)場所を問わずプレーヤーにサービスを提供する、(2)ゲームデータを収集して整理する、(3)プレーヤーとゲームのインサイトを引き出す、という 3 つの重要な柱に重点が置かれています。このたび、Google Kubernetes Engine(GKE)Autopilot 上でゲーム ワークロードを実行できるようになりました。これは、グローバル マルチプレーヤー ゲームサーバーの実行における真の意味で自動化されたエクスペリエンスです。このブログ投稿では、GKE Autopilot を使用して世界中のプレーヤーにサービスを提供する方法について説明します。  

プレーヤーは、ゲームが確実に動作することを期待しています。ゲーム デベロッパーは、運用が簡単で、プレーヤーのトラフィックに合わせてシームレスにスケールできる、基盤となるクラウド インフラストラクチャを備えなければなりません。これにより、ゲーム デベロッパーは本当に重要なこと、すなわち優れたゲームの構築に集中できます。Google Cloud は、GKE Autopilot をゲーム ワークロードの実行に最適なプラットフォームにし、スケーラビリティ、信頼性、自動化を実現することで、ゲームを簡単にリリースできるようにすることに注力しています。

マルチプレーヤー ゲームの最も重要なコンポーネントの一つは専用のゲームサーバーです。これは、ゲームの状態に関する信頼できる情報源であり、プレーヤーのクライアントがゲームの世界とやり取りするために接続するものです。この専用のゲームサーバーは、ゲーム セッション中に稼働し続け、多くの接続を処理し、同時プレイヤー数などの指標に基づいてスケールされる必要があります。

https://storage.googleapis.com/gweb-cloudblog-publish/images/Global_Scale_Architecture_-_GKE_Autopilot_.max-1400x1400.jpg
グローバル規模のゲーム アーキテクチャの例

このたび、Agones を使用して、GKE Autopilot 上で専用のゲームサーバーを実行できるようになりました。Agones は、ゲーム業界と共同で開発したオープンソースのゲームサーバー オーケストレーターです。GKE Autopilot でゲームサーバーを実行する場合、Google Cloud がクラスタを管理し、実行中にゲームサーバーが要求した CPU、メモリ、ストレージに対してのみ料金が発生します。ゲームサーバーのスケジュールがどのようなものであれ、未割り当てのノードやシステムのオーバーヘッドに対して料金を支払う必要はありません。

「私たちは Google Kubernetes Engine を使用して専用のゲームサーバーを実行しており、クラスタの運用費用に気を配っています。Agones を使用して GKE Autopilot 上でゲームサーバーを実行できることを嬉しく思っています。Kubernetes ノードプールを管理する必要がなくなり、支出を拡大することなくゲームサーバーとチームをスケールできるからです。」- DeNA、ソフトウェア エンジニア Hiroki Awata 氏

パワーアップ: GKE Autopilot 上のゲームサーバー

ゲーム向け GKE Autopilot の使用を開始するには、まず GKE Autopilot クラスタを作成します。次に、UDP プレーヤー トラフィックを許可するファイアウォール ルールを作成し、Helm を使用して Agones をインストールします。
読み込んでいます...

GKE Autopilot は Kubernetes であるため、Kubernetes クラスタに適用するのと同じフリート構成 yaml を使用してゲームサーバー フリートを作成できます。

読み込んでいます...

ゲームサーバーの実行に必要なノードとノードプールの数や、クラスタ オートスケーラー構成について考える必要がないことに注目してください。実行するゲームサーバーの数を定義するだけで済むので、簡単です。

成功に向けて: 人による操作が不要なインフラストラクチャ

GKE Autopilot は、構成やモニタリングを必要とせずに、クラスタの基盤となるインフラストラクチャを管理できる、人による操作が不要なフルマネージド Kubernetes プラットフォームであるため、専用のゲームサーバーの実行に最適です。Google SRE に裏付けられたワークロード レベルの SLA を享受できます。GKE Autopilot で Agones FleetAutoscaler を使用することにより、プレーヤーがゲームに出入りするのに合わせて、グローバル ゲームサーバー フリートが自動かつ動的にスケールされます。設定しておけば、何もする必要はありません。

読み込んでいます...

従来の Kubernetes では、こうしたスケーリングを行うために、計画、適切なサイジング、ビンパッキングのためのリソースと時間が必要でした。スケールアップを見越してはるかに早い段階でノードプールをオーバープロビジョニングし、スケールダウンするまでそのノードプールを長く実行し続けることもできましたが、そのすべてに費用がかかっていました。

ゲームサーバーは Pod であり、Autopilot は Pod 単位で対話するため、GKE Autopilot を使用したゲームサーバーのスケーリングは理にかなっています。Autopilot では、実行中のゲームサーバー Pod に対してのみ料金が発生し、システム コンポーネント、オペレーティング システムのオーバーヘッド、未割り当ての容量に料金を支払う必要はありません。Forrester の調査によると、GKE Autopilot を使用すると、インフラストラクチャ費用が最大 85% 削減され、開発者の効率が 45% 向上することがわかっています。

noclip On: 完全なコントロール、完全な自由

フルマネージドだからといって、ベンダー ロックインがあるわけではありません。Google Cloud を利用するゲーム会社の中には、複数のリージョン、オンプレミス、または他のクラウド ベンダーにまたがるクラスタ フリートでゲームを実行している例もあります。Agones はオープンソースであり、GKE Autopilot はオープンソースの Kubernetes に基づいているため、GKE Autopilot を使用してゲームを提供するにあたり、移植性や柔軟性を犠牲にする必要はありません。さらに、Google Cloud は Agones と Kubernetes プロジェクト双方にとっての最大の貢献者であり続けているため、お客様は Google の専門知識を活用し、次世代のゲームを提供するためのロードマップの策定についてサポートを受けられます。

さらなる強化: Google Cloud の優れた機能との統合を活用

グローバル マルチプレーヤー ゲームの正常な実行に必要なテクノロジーは、マッチメイキング サービス、カスタム ネットワーク プロキシ、データベース、分析など、専用のゲームサーバーを超えて拡張されています。GKE 上でゲームサーバーを実行する場合、こうしたテクノロジーを簡単に統合できます。たとえば、GKE Autopilot で Open Match を使用して、専用のゲームサーバーでマッチメーカーをスケールしたり、Cloud Spanner でプレーヤーのデータを管理したりすることができます。

シークレット ミッション: Google Cloud Deploy のマルチターゲット並列デプロイによる継続的デリバリー

今後のグローバル ゲームイベントに向けて、新しい機能を備えたゲームサーバーをリージョンごとに立ち上げたいと考えているとします。Cloud Deploy の新しいマルチターゲット デプロイ機能により、まさにそれが可能になります。プレイヤーに近いリージョンに GKE クラスタを作成し、それを(ターゲットとして)マルチターゲットにグループ化し、Agones ゲームサーバーを段階的にデプロイします。最初にステージング環境で検証を行う必要はありません。進行シーケンスの開始時にステージング ターゲットを作成してください。本番環境にデプロイする前の承認確認ボタンが必要な場合、Cloud Deploy は、そちらもサポートしています。また、マルチターゲット ロールバックもご利用いただけます。
https://storage.googleapis.com/gweb-cloudblog-publish/images/IMG02-agones_clouddeploy_blog_032023.max-1900x1900.jpg
マルチターゲットを使用した Cloud Deploy デリバリー パイプラインの進行シーケンス

ゲームスタート

今後も、インフラストラクチャの管理とスケーリングにリソースを費やすと優れたゲームの作成に費やすリソースが減ってしまうということを念頭に置きつつ、サービスの改善を続けてまいります。GKE Autopilot 上でゲームサーバーを実行するには、こちらの詳細をご覧ください。


- Google Kubernetes Engine、シニア プロダクト マネージャー Ishan Sharma
投稿先