それは“絶望の一週間”―『シノアリス』のエンジニアがサービスイン時の混乱を語る【CEDEC 2018】

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

ゲームビジネス 開発
それは“絶望の一週間”―『シノアリス』のエンジニアがサービスイン時の混乱を語る【CEDEC 2018】
それは“絶望の一週間”―『シノアリス』のエンジニアがサービスイン時の混乱を語る【CEDEC 2018】 全 24 枚 拡大写真

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

株式会社ポケラボ ゲーム事業本部エンジニアマネージャーの覚張氏。


シノアリス』は『NieR:Automata』『ドラッグオンドラグーン』などを手掛けるヨコオタロウ氏をクリエイティブディレクターとし、ポケラボとスクウェア・エニックスが共同開発したスマートフォン向けRPGです。本作は2017年6月にサービスインしたものの、当初はアクセス過多によるサーバーダウンとメンテナンスを繰り返したことで話題となりました。

●ヨコオタロウ原作の新作RPG『シノアリス』正式サービス延期、一時プレイ可能になるも負荷起因の問題を検知
●『シノアリス』復旧対応として“数倍単位のサーバー増強”を実施中─明朝までのメンテナンス終了は難しい見通し
●『シノアリス』一時プレイ可能になるも再度メンテナンスに─終了時刻は13:30を予定

スクエニ・藤本プロデューサーが当時の出来事を述懐したツイート

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


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


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

RPSグラフを見るとサービス稼働中は常時最大接続数までアクセスがありました。

トラフィックのグラフ。メンテナンス中もトラフィックがある程度存在しているのがわかります。


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



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


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


これがサーバの増設の記録。「m4.16xlarge」という最高性能のサーバをうんじゅうだいも割り当て、となればそれはAmazonも激おこになりますね……。


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


頑張ってこの修羅場を乗り切った結果、AppStoreセールス1位を獲得。ただ覚張さんにとっては修羅場直後に2位を取った方がうれしかったとか。

サービスインから1週間ほど不休の生活を強いられたスタッフたちのモチベーションを保つにはやはり睡眠と食欲の充足、上司からの激励は必須の模様。しかし、ホテルについてベッドに倒れこんだ瞬間に電話で呼び出される、というケースも……。ご苦労様です……。


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


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


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

(C) 2017, 2018 Pokelabo Inc./SQUARE ENIX CO., LTD. All Rights Reserved.

《岩井省吾》

この記事の写真

/
【注目の記事】[PR]

関連ニュース