ゲームサーバー設計する際のいくつかの方針 #AWSreInvent

このチョークトークでは、ゲームサーバーを設計する際に最初に考えるアーキテクチャについて簡単に触れられていました。 あらためて、ゲームサーバーを構築する際には、どのような選択肢があるかを再確認できました。
2023.12.15

こんにちは。ゲームソリューション部の出村です。

AWS re:Invent 2023のチョークトークである「Deploy mutiplayer games with compute, containers and Amazon GameLift」のレポートをお届けします。チョークトークとは、登壇者がいくつかの発表を行い、参加者が発表中の内容に対して質問を行ったり、何かしらの経験を共有を行うセッションです。

セッション概要

Launching a global game that meets player expectations can be challenging. In this chalk talk, learn how to create a multiplayer game infrastructure that supports your game around the globe. Explore different architectures that can optimize your game server solution, backend design, and network performance. Learn how to utilize a serverless architecture to host a backend and how to choose the right game server hosting solution to meet your needs, including fully managed solutions such as Amazon GameLift, container-based solutions on Amazon EKS or Amazon ECS, or hosting on virtual machines with Amazon EC2

スピーカー

  • Juho Jantunen: Principal Solution Architect, AWS for Games, AWS
  • Toni Syvanen : Senior Solution Architect, AWS for Games, AWS

内容について

こちらの内容としてはチョークトークでしたが、聴講者からは質問等があまりなかったためスライドの解説を中心に書いていきます。

ゲームサーバーホスティングについて

ゲームサーバーのホスティングの方法としては2つあります。1つはEC2などの仮想マシンをつかって構築する方法、もう1つはマネージドサービスを使って構築する方法です。日本でよく聞く事例としては前者が多いですね。

次に自分でサーバーを構築してホスティングする場合に利用されるサービスが取り上げられています。仮想マシンとしてはEC2がありますし、コンテナサービスとしてAmazon EKS、Amazon ECS、AWS Fargateがあります。これらは個人的にも馴染みのあるサービスです。

次にホスティングサーバーで利用されるCPUアーキテクチャにも触れています。AWS Gravitonとx86_64(AMD and Intel)ですね。どちらのCPUもゲームサーバーで有効活用できます。

GravitonはAWSが独自で開発したCPUで、クラウドネイティブな処理に向いているプロセッサです。UnrealEngine 5は、x86_64は当然ながらAWS Gravitonもサポートしています。

AMD and Intelは、みなさんが手元で利用しているWindows PCでも使われているCPUですね。ゲームサーバーのどんな用途でも利用可能なCPUです。

つぎにマネージドサービスについて解説します。マネージドサービスは、先のEC2やEKS、ECSなどと違い、サーバー管理をAWSにお任せできるサービスです。

AWSではさまざまなマネージドサービスが提供されていますが、ゲームサーバーとしてはAmazon GameLift、Amazon GameLift Anywhere、Amazon GameLift FleetIQがあります。

これらを利用することによって特にサーバー運用が楽になります。Amazon GameLiftを利用した場合は、ゲームサーバーのデプロイはGameLiftに任せる事で1度のアップロードですべてのサーバーに反映されますし、オートスケールについてもセッションといったゲームの需要にあわせてオートスケールしてくれる仕組みです。つまり、事前にキャパシティプランニングをする、といった負担が減らせます。

グローバルに展開されるゲームも珍しくないので、そういった場合に役立つ地図がこれです。 主要な都市にはAWSのデータセンターがありますので、ゲームサーバーが遠いからラグが心配といったことはほぼないでしょう。

あとは、グローバルに展開されるゲームサーバーの為にAWS Global Acceleratorを活用したアーキテクチャも紹介されていました。 このように、様々なところにグローバルアクセラレータを挟むことで地域的な有利・不利を減らすことができます。

検討課題について

最後に検討課題について触れていきます。このようなゲーム開発(ゲーム産業)においては、このような課題がよくあがります。

まずプレイヤー視点でいうと、ゲームのローンチが上手くいくこと、ゲームが面白いこと、友達と一緒に楽しく遊ぶ事などが上げられています。

次に開発者視点でいうとこれらの点があります。 レイテンシーやスケーリングなどは当然のことながら、多くの技術を複合的に利用することの複雑さが課題となることもよくあります。

最後にビジネス的な観点からも見ていきましょう。お金も大事ですね。 ローンチのプラン、異なる地域のプレイヤーにゲームをプレイしてもらうこと(ゲームは地域の文化によって、好まれるゲームジャンル、好まれないゲームジャンルがあったりします)、あとはプレイヤー自体の行動を理解することもそうです。

あとはディスカッションとしては、適切なゲームサーバーのアーキテクチャの話などもありました。

まとめ

ゲームサーバーの設計をする際、最初に考えるべき項目を解説されていました。ゲームサーバーを構築する場合でも、AWSには様々な手段が用意されています。私が知る限りではコンテナサービスなどを使ってゲームサーバーを構築する話題をネット等でよく見かける印象を持っています。ただ、今後はマネージドサービスに移行することで現場の運用負荷が下げられるので、そちらが主流になるよう案内ができればよいと考えています。