はじめに
アイレット株式会社 クラウドインテグレーション事業部 CSMセクションの言上です。
8/1-8/2にパシフィコ横浜で開催されているGoogle Cloud Next ’24に参加しています。
1日目のセッションである、ポケットペア様の「同時接続数 185 万人を支えたパルワールドのインフラ最前線」を拝聴しましたので、その内容をまとめます。
参加の経緯
私自身、普段からパソコンゲームをよく遊びますが、今年初めに一番話題となったといっても過言ではないパルワールド。
エンジニアとして、そのバックエンドはどのような仕組みで構成されているか?は気になっていました。
今回、そのインフラ最前線ということで、ゲームの裏側を覗きたい、という気持ちでセッションに参加しました。
パルワールドとは
パルワールドとは、最大32人で同時プレイできる、可愛らしい、かっこいいモンスターと一緒に冒険したり、拠点を作ったりするアクションサバイバルゲームです。
プレイヤーはポケットペア様が用意された「公式サーバ」と呼ばれるサーバに接続して遊ぶ他、自分自身がサーバを管理してパルワールドを遊ぶ方法や、サーバに接続するのではなく、遊んでいるPC同士で接続して遊ぶ方法が用意されています。
セッションの概要
- パルワールドのゲームサーバの仕組みとしてAPIサーバと公式サーバの紹介
- 当初予想していなかった反響により、仕組みを変更しながら対応していった
- 当初はサービスが落ちないように費用度外視でサーバ増強
- サービスを提供しながら最適化を行なっていく
- サービスに任せれるものは任せるというポリシー
パルワールドのサーバの構成
登壇者の方もご紹介されてましたが、パルワールドリリース後に想定以上の反響のため、うれしい悲鳴がXに投稿されていました。
パルワールドはマルチプレイで遊ぶため、公式のゲームサーバ、と呼ばれるサーバ群が提供されています。
この公式のゲームサーバやその周辺システムのAPIサーバについて、本セッションで紹介されていました。
APIサーバと構成について
印象に残った内容としては、
- 当初サーバの台数管理をRadisのTTL機能で実装しようとしていたが、負荷に耐えきれないことがわかったため、Spannerの利用に構成変更した
- SpannerのアクセスをPGAdapterでクエリしていたが、PGAdapterがボトルネックとなったため、Google Standard SQLへ切り替えを行った
- これらはサービスリリース後も継続してアップデートした
との内容です。
本番リリースをした後は、どうしても大幅な構成変更をしたくない、という心理が働きそうなものを、ポケットペア様では積極的に最適な構成見直しを行なって、構成のアップデートを試みているところに、柔軟な企業姿勢を感じ、素晴らしいマインドだなぁと感じました。
公式サーバについて
公式サーバでは、VMでも実装は出来るものを、何故Kubernetesで実装したか、という内容がたいへん興味深かったです。
- Kubernetesの仕組みを利用した運用
- コンテナの予期しない終了時の復旧
- コンテナのバックアップ
- コンテナ終了時にユーザへの事前通知
- これらはVMで実装した場合、スクリプトを書いて管理すれば出来る
- スクリプトを書いて運用することが目的ではない、メンテナンスや管理もコストになる
- Kubenetesの仕組みに任せることで、ユーザに提供する仕組みの部分に集中できる
クラウドやツールを使う目的の一つとして、煩雑な運用管理をクラウドやツールに委任し、ユーザに価値を届ける部分を最大化しましょうとよく言いますが、運用することを運用している、といった事態になってしまうことも多々あります。
ポケットペア様では、これらの運用・管理といった部分を出来るだけシンプルにして、ユーザに価値提供する部分にパワーをかける、といった使い方をされており、とてもうまく運用されていると感じました。
まとめ
ポケットペア様の「同時接続数 185 万人を支えたパルワールドのインフラ最前線」のレポートでした。
クラウドを利用する中で選択と集中の使い方がとても上手く、勉強になるセッションでした。
Google Cloud Next ’24では本セッション以外にも興味深いセッションが他にもありますので、引き続きレポートしていきます。