【ACADEMY】Overwatch 2のサーバートラブルに学ぶ技術的教訓 –

0
4

EdgegapのCEOであるMathieu Duperré 氏は,マルチプレイヤーゲームをローンチする際にインフラの問題を克服する(あるいは少なくともそれに備える)方法についてアドバイスしている。

【ACADEMY】Overwatch 2のサーバートラブルに学ぶ技術的教訓

 サーバーの切断,ブラックスクリーンの問題,DDoS攻撃,ログイン失敗,延々と続くキュー ― Overwatch 2のローンチは,必ずしも計画どおりとはいかなかったのではないだろうか? というのも,今やプレイヤーたちは,AAA級ゲームのオンラインマルチプレイヤー機能がローンチ時に破綻することを覚悟する段階に達しているようだからだ。

 Forza Horizon 5,Splatoon 3,Halo Infinite,Battlefield 2042などは,昨年発売されたゲームの中で,発売時にネットワークインフラの大きな問題に見舞われたゲームのほんの一部に過ぎないのだ。Overwatch 2は影響を受けた最新のゲームかもしれないが,これが最後でないことは確かだ。

 それを踏まえると,多くの人がどこで問題が起きているのか,Overwatch 2が経験したようなネットワークの問題を避けるためにスタジオにできることはないのか,と考えるのはもっともなことだろう。

なぜAAAゲームはインフラの問題で苦労し続けるのか?

 新しいゲームの発売後,インフラの問題が数週間,時には数か月にわたって続くことが多いのは,こうした問題を診断するのが簡単でないからだ。

Mathieu Duperré 氏,Edgegap
【ACADEMY】Overwatch 2のサーバートラブルに学ぶ技術的教訓

 デベロッパは,何が問題なのかを解明するために,膨大な数の潜在的な問題を調べなければならないことがよくある。さらに,最初の問題を解決することで,別の問題が発生することもある。たとえば,Overwatch 2のローンチを見てみよう。Blizzardはサーバーに大規模な障害を発生させ,リリースから数週間経った今でも,これらの問題の一部は進行中である。

 では,何がこれらの問題を引き起こしているのだろうか? Overwatch 2のインフラ問題を1つに特定する方法はないが,OverwatchのようなAAAシューターの標準的なネットワークインフラと,私がAAAスタジオで働いていたときに直接目撃したいくつかの事柄に注目することはできる。

 多くの場合,これらの問題のほとんどは,一握りの特定の問題に集約される。

●ほとんどのAAAゲームが集中型サーバーを使用
 ほとんどのゲームスタジオは,ゲームの主要なデータ処理と管理機能をすべて処理するために,複数の集中型サーバーを使用している。一般に,集中管理型サーバーは,コスト効率が高く,管理やデプロイが容易であるなどの利点があるが,重大なマイナス面もある。

最も貴重なデータが,ごくわずかな場所に保存されているのだからDDoS攻撃の大きな標的となる

 最も重要なデータはすべて1つ(またはごく少数)のポイントに保存されている。これは,集中管理されたサーバーをダウンさせると,該当する地域のネットワーク全体をダウンさせることができるため,DDoS攻撃の巨大な標的を抱えるということを意味している。さらに,集中型サーバーは,プレイヤーにとってボトルネックになる可能性がある。ゲーム内でプレイヤーがネットワークの混雑を訴える場合,技術的には「サーバーの不足」の問題ではなく,集中型サーバーの単一ノードのトラフィックが混雑していることが原因なのだ。

●特定のハードウェア要件
 多くの大規模スタジオでは,Unrealサーバーに 4Ghz以上のCPUを使用するなど,世界的に可用性の低い,非常に特殊なハードウェアでゲームを実行しているため,ゲームのスケーリングが困難になることがある。インスタンスごとに多数のプレイヤーがいるゲームインスタンスでは,より高速で強力な CPU が必要となるため,リソースの入手が困難になるのだ。

 QAチームがゲームサーバーを特定のサーバーモデルでしか認証していない場合,状況はさらに厳しくなり,トラフィック急増時にDevOps/LiveOpsチームは苦戦を強いられることになる。他のモデルを使用できるにもかかわらず,「我々は常にこの方法でやってきましたので,この方法を継続する必要があります」と,特定のQA手順に従いたいがために,他のプロバイダー/ベンダーに拡張できない場合,これはフラストレーションになる。

●高密度なハードウェア
 スタジオの中には,コストを削減するために,できるだけ多くのCPUコアを持つ大型サーバーを使おうという誘惑に駆られるところもあるだろう。その結果,物理ノードあたりのプレイヤーの密度が非常に高くなり,1つのノードに攻撃や問題が発生すると,何千ものプレイヤーに波及してしまうことになる。この結果,集中型サーバーを使用した場合と同じリスクが生じる。サーバーの密度と単一障害点により,ハッカーやDDoSのターゲットになりやすくなるのだ。

無料プレイに切り替えると,接続されていないプレイヤーはお金を使うことができないので,サーバーの問題によってOverwatch 2の収益がより影響を受けることを意味する
【ACADEMY】Overwatch 2のサーバートラブルに学ぶ技術的教訓

これらのインフラの問題に対する答えは何か?

 スタジオの規模に関係なく,インフラの問題を計画することは困難だ。

 とはいえ,上記のような問題に対して,いくつかの簡単な答えがある。もちろん,集中型サーバーを使用しているかどうかや,ネットワークが稼動しているハードウェアの種類によって,その有用性は異なってくる。

●集中型サーバーではなく,分散型サーバーを使用する
 分散型ネットワークでは,すべてのデータ処理とネットワーク管理を中央で集中して行うのではなく,ネットワーク全体に分散させて行う。分散型ネットワークは,必要になったときにいつでも新しいサーバーを追加できるなど,柔軟性と拡張性が高いだけでなく,サーバーを地理的に複数の拠点に分散させることもできるというメリットがある。これにより,サーバーの負荷が均等に分散されて,ボトルネックリスクを軽減できるとともに,集中型ネットワークに対するDDoS攻撃で発生するような大規模な停止を回避できるのだ。さらに,複数のプロバイダーを経由して配信することも可能なため,プロバイダーに問題が発生した場合のサービス停止のリスクも軽減される。

次の新作ゲームを何人のプレイヤーがプレイするかを予測することは,2か月後の天気を正確に予測するようなものだ

●クラウド/エッジインフラストラクチャプロバイダを利用する
 プレイヤーが経験する接続の切断やその他のネットワークの問題を減少させる最も簡単な方法の1つは,クラウドベースまたはエッジインフラストラクチャプロバイダと統合することだ。エッジサーバーは,プレイヤーの近くにあるサーバーと接続してデータの移動距離を短くすることで,低遅延と高帯域幅に対応することもできる。

 オンラインゲームのテスト段階も,同様に重要であり,かつ恐ろしいものだ。ちょっとした問題は必ず発生するのだ。しかし,複数のインフラストラクチャープロバイダや広く利用可能なマシンでゲームを運用・テストすることで,中断のリスクを軽減し,潜在的な問題を事前に発見できる。たとえば,複数のエンジニアやDevOpsチームによる内部リソースの追加を必要としないプラットフォームやパートナーと協力することで,時間とコストを削減できる。

●自動化,自動化,自動化
 今日のインフラは,スタジオが提供するサービスの多様性と相まって,しばしば複雑なパズルを生み出す結果となっている。かつてはシステム管理者が作成するいくつかのスクリプトで管理できたものが,もはやそうではなくなっているのだ。Kubernetes,コンテナ化されたペイロード,マイクロサービス,CI/CDなどの自動化およびデプロイメントソリューションは問題を解決するが,新たな課題も引き起こす。

 より優れた(そしてより複雑な)インフラを活用する唯一の方法は,本格的な自動化だ。スタジオには優秀なエンジニアチームがいるかもしれないのだが,それらのエンジニアは最高のゲームを開発することに集中すべきだ。(現在,まさにそれを実現するツールが市場に出回っているにもかかわらず)インフラを自動化するために既存のツールを再構築することを求めるのは,スタジオのリソースを最も有効に活用する方法とは言えない。

インフラ管理の不備がもたらす風評被害と財務的コスト

 人気のあるマルチプレイヤーゲームがわずかな期間でもダウンすると,多大な経済的影響が生じる。たとえば,BlizzardはOverwatchを無料プレイモデルに移行させた。高額な価格設定がなくなったため,Blizzardの主な収益源はゲーム内課金になる。最初の数週間,プレイヤーがマッチに接続できない,あるいは単に問題のためにゲームを放棄して,修正されるまで戻ってこないという事態によってどれだけの損失を出したか想像してみてほしい。

 もう1つの例として,毎日500万ドル以上の収益を上げているRobloxを見てみよう。2021年11月に行われたChipotleとのコラボレーションに伴って3日間発生した障害は,どのような財務的影響を及ぼしたのだろうか(結果的に膨大なトラフィックが発生し,サーバーに負荷がかかったにもかかわらず,Robloxによると,これはChipotleとのコラボレーションとはまったく関係ないとのことだが)。

問題が発生したときに逃げ場のない固定的なインフラに頼るのではなく,柔軟にインフラを活用するオープンマインドを持つこと

 そして,さらに重要になってくるのは,新しいゲームの発売やアップデートの需要に見合うだけのサーバーを効率的に用意することだ。次の新作ゲームをどれだけのプレイヤーがプレイするかを予測するのは,2か月後の天気を正確に予測しろと言っているようなものだ。我々は,何百万人ものプレイヤーを獲得できるはずのメジャーなAAAタイトルがローンチで失敗した例や,1人で立ち上げた軍用ゲームデベロッパが一夜にして何百万人ものプレイヤーを獲得した例を見てきた。

●解決策は何だろうか?
 繰り返しになるが,柔軟性が答えだ。スタジオによっては,上層部が何百台ものサーバーを追加で用意する契約を結び,長期契約に基づいてその契約を結ぶなど,大幅なオーバープロビジョニングをしたくなることもあるかもしれない。ゲームの発売は成功したものの,発売後すぐにプレイヤー数が減少した場合はどうなるだろうか(ちなみに,これはあり得ることだ)。その場合,お金を払っているのに使っていないサーバーが何百台も残ってしまうことになる。

 インフラの問題は,それがどんなに短期間であっても,ゲームに長期にわたる悪影響を及ぼす可能性がある。多くの新しいゲームが市場に参入する中,発売時に大きな問題を経験したプレイヤーは,そのゲームを捨てて,他のゲームに移ってしまうかもしれない。

 その例として,最近発売されたゲームWorld War 3のサーバー問題を見てほしい。怒ったプレイヤーはSteamマーケットプレイスを占拠し,自分たちの不満を表現するためにゲームのレビュー爆撃を行った。これは,潜在的な他のプレイヤーの評判を悪くし,マーケットプレイスでのゲームのランクを下げ,知名度を下げることになる。

MicrosoftがActivision Blizzardの買収に成功した場合,Overwatch 2はAzureインフラに移行する可能性がある
【ACADEMY】Overwatch 2のサーバートラブルに学ぶ技術的教訓

Overwatch 2は次に何をするのだろうか?

 MicrosoftによるActivision Blizzardの買収が成功すれば,同社はより多くのリソースをAzureのクラウドインフラに移行させようとするかもしれない。しかし,Halo InfiniteがAzure上でインフラ問題を抱え続けるなど,単一のクラウドプロバイダに依存することが完璧な解決策ではないことは,過去に確認されている。

 BlizzardがAzureを主要なサービスプロバイダとして活用することは理にかなっているが,同社はOverwatch 2の長期計画を考慮し,この関係以外にもインフラのパートナーシップを追求する必要がある。Azure以外のプロバイダーを追加することで,うまくいかないときに切り替えや「バックアップ」ができるため,Overwatch 2のインフラ問題のリスクを軽減し,サービス全体の品質とプレイヤー体験を向上させることができるのだ。

 必然的に問題が発生したときに逃げ場のない固定的なインフラに頼るのではなく,柔軟にインフラを活用するオープンマインドであることが重要なのだ。現在のクラウドやサーバーのプロバイダーは,予測可能な予測や収益を得るために安定したビジネスを望んでいる。世の中のあらゆるオンラインゲームのトラフィックフローは,最初の24時間で2倍,3倍になるため,技術的にもビジネス的にも対応するのは悪夢のようなものだ。

 ありがたいことに,このギャップを埋める新世代の柔軟なソリューションが市場に出ており,ゲームの発売が与えるスタジオの収益への影響を最小限にしつつ最高の体験を享受できるようになっているのだ。


Mathieu Duperré 氏は,エッジコンピューティング業界と自動化のパイオニアであるEdgegapのCEO兼創設者である。