
8月22~24日にパシフィコ横浜で開催された、エンターテインメントを対象にした開発者会議「CEDEC 2018」。その中で、ポケラボのリードエンジニア、覚張泰幸氏による講演「SINoALICE-シノアリス- それは最高の“未曾有アクセス”」が行われました。


『シノアリス』は『NieR:Automata』『ドラッグオンドラグーン』などを手掛けるヨコオタロウ氏をクリエイティブディレクターとし、ポケラボとスクウェア・エニックスが共同開発したスマートフォン向けRPGです。本作は2017年6月にサービスインしたものの、当初はアクセス過多によるサーバーダウンとメンテナンスを繰り返したことで話題となりました。
●ヨコオタロウ原作の新作RPG『シノアリス』正式サービス延期、一時プレイ可能になるも負荷起因の問題を検知
●『シノアリス』復旧対応として“数倍単位のサーバー増強”を実施中─明朝までのメンテナンス終了は難しい見通し
●『シノアリス』一時プレイ可能になるも再度メンテナンスに─終了時刻は13:30を予定

今回のセッションでは、メンテナンス時に何が起こっていたかを赤裸々に語る、いわばゲーム版“しくじり先生”的なセッションになっていて、スライドが出るたびに乾いた笑いが飛び交うものとなりました。

サービスイン当初の混乱が鎮まるまでのどのような対策を行ったかを紹介します。

事前登録者数50万人という数値からDAUは30万人、同時アクセス人数は10万人と予測し、その見積りで承認会議を通過していました。ところが実際には6万リクエスト/秒・DAU120万人相当というアクセスがあり、サーバーが耐え切れずダウン。とりあえずはインスタンス数を20倍に上げて乗り切ろうと試みますが……。



次にアプリストアでのランキング上位を目指すため、リセマラしやすい仕様にしていたのですが、それが災いしてCDNの帯域を使い尽くしてしまいます。この結果、ゲームデータの転送ができなくなり、ユーザーがゲームを開始できなくなる事態に。これは帯域を追加することで解決に向かいます。なお、現在はリセマラでアプリストアのランキング上位を目指すことはできなくなっています。


『シノアリス』は、バトルなどにも通信システムを駆使するゲーム内容になっています。しかし、Javaで記述された通信プログラムが特定のサーバのみをアクセスする仕様になっていたため、これをVarnishを使ってproxy側で通信プログラムのサーバを振り分けることに。なお、Varnishを使った理由は、ポケラボの親会社であるGREEにVarnishに詳しい人間がいたから、とのことです。

しかし、ネットワークトラフィックがボトルネックになってサーバの性能が上がらないため、AWSのサーバを最大時には1,000台以上割り当てるという事態に。Amazonからは「システムを見直せ」と警告が来るものの、トラフィックが起因の現象であり、どうしようもない状況となります。




急激なユーザー増加でデータベースシャードも大幅増強。データをすっ飛ばしてしまう事件も発生しています。最終的にはスタッフが割り算の計算ができなくなり、エクセルで計算を、という話に……。(会場からは乾ききった笑いしか聞こえない)





今回の『シノアリス』の件もあり、ポケラボではサービスイン時に負荷対策を迅速に行えるようになったとのこと。なお、『AKB48ステージファイター2』はコアのシステムが『シノアリス』に近かったため、経験が生かせたことも一因でした。

シャード分散は本来きちんとした計画ありきで行う必要がありましたが、今回のケースでは緊急対応のため、ツールの機能が追い付いていませんでした。その対策も今後は必要になるでしょう。


ネットワークゲームのサービスイン時は、黎明期からアクセス過多によるトラブルが絶えません。スケーラブルな設計はもちろんですが、機材の追加や人員の確保など、まさかのときの対応ができるように備えておくことと、状況を冷静に把握し何をすれば最善なのかを判断できるようにすることが大事、という知見を共有できたことで今回の講演は終了しました。
(C) 2017, 2018 Pokelabo Inc./SQUARE ENIX CO., LTD. All Rights Reserved.