【CEDEC 2018】まさに未曽有の講演、『SINoALICE』リリース時に起きた「メンテ地獄」の裏側をポケラボのエンジニア・覚張氏が赤裸々に告白

 
コンピュータエンターテインメント協会(CESA)は、8月22日~24日の期間、パシフィコ横浜(神奈川県横浜市)にて、国内最大のゲーム開発者向けカンファレンス「コンピュータ・エンターテインメント・デベロッパーズ・カンファレンス 2018」(CEDEC 2018)を開催した。
 
本稿では、8月24日に実施された講演「SINoALICE -シノアリス- それは最高の「未曾有アクセス」」についてのレポートをお届けしていく。
 
本セッションには、ポケラボ ゲーム事業本部 エンジニアマネージャーの覚張泰幸氏が登壇。2017年6月6日にリリースされた『SINoALICE -シノアリス-』(以下、『シノアリス』)において、想定を大幅に超えるアクセスから1週間のメンテナンスを要してしまった当時の裏側について、ポケラボで実際に行った対応を含め包み隠さずに話を披露した。
 

▲ポケラボ ゲーム事業本部 エンジニアマネージャーの覚張泰幸氏。2013年に入社し、『戦乱のサムライキングダム』や『シノアリス』など主にGvGタイトルに深く関わってきた。
 

■使用サーバー台数は実質1000台以上にまで増設!?

 
登壇した覚張氏は、まず『シノアリス』の概要を紹介。
 

▲スクウェア・エニックスとの協業でリリースされた『シノアリス』は、『ドラッグオンドラグーン』シリーズや『NieR』シリーズを手掛けたことで知られるヨコオタロウ氏が初めてスマートフォンタイトルでクリエイティブディレクターを務めた作品である。
 
そんな『シノアリス』は公演日(8月24日)時点でリリースから445日目を迎えたが、その運営は波乱万丈の中、始まっていたことは読者の方々の記憶にも新しいのではないだろうか。
 

▲こちらは『シノアリス』リリース後のメンテナンス状況について、スクウェア・エニックスのプロデューサーである藤本善也氏がTwitterで当時を振り返ったもの。覚張氏は、稼働が安定に至るまでメンテナンス時間がプレイ可能時間を超えたばかりか、プレイ可能時間もまともに遊べる状況ではなかったと述べた。
 
では、このような状況の中スタートした『シノアリス』は、どのようにして安定化を図っていったのだろうか。今回のセッションでは、ポケラボで行われた対応から5つのポイントについての話が展開された。


 
1.見積もり
まずは見積もりについて。開発当時は、事前登録者数50万人という数値より、過去タイトルの傾向からDAU30万人、同時接続10万人を予想した負荷検証を行っていたが、実際はその予想を遥かに超える10倍以上、約120万人(※リセマラを除く)の流入があり、サーバーがダウンしてしまったとのこと。こうして、そもそもが想定外のところから始まってしまい、共通基幹システムが詰まってしまっていたため、リリース直後のメンテナンスではひたすらサーバー台数を増やし続け、インスタンス数(コア数)を20倍にまで増強したのだと覚張氏は語った。
 

▲右側のグラフが表側のシステムのrps、左側のグラフが裏側のシステムのrpsとなる。表側がピーク時で5万5000、裏側もピーク時で4万ほどの数値にまで登ったという。これほどの結果はグリーグループ全体で見ても珍しいとのこと。
 

▲こちらはトラフィックのグラフ。ピーク時には28ギガbpsまで数値が上がっている。直後に数値が落ちているのは、メンテナンスに入っているためだと説明した。また、トラフィックが低い部分はメンテナンス中にもアクセスがあったためとのこと。
 
2.CDN Quota
続いてはCDN Quotaについて。
 
『シノアリス』は、ゲームを始めた直後に10連ガチャを引ける仕様となっていたため、いわゆるリセマラを行うユーザーが想定以上に発生し、その結果、帯域が枯れてしまったのだという。今でこそリセマラはダウンロード数に含まれないようになっているが、当時はリセマラも数に数えられていたためこの選択をしたのだと覚張氏は経緯を説明した。
 

▲リセマラ時点では300メガbpsほどリソースをダウンロードすれば済む仕組みとなっていたが、あまりの数の多さに間に合わなかった。
 
3.Varnish導入
3つ目はローカルプロキシ「Varnish」の導入について。下記の通り、『シノアリス』はクエストやGvG、チャットなど至るところでマルチ通信システムを用いている。
 

 
これが原因となり、ELBのIPをキャッシュし続けてしまい、ELBのスケールが全く見えなくなったという問題が発生。最初はコードでの対応を検討したが、それでも解決できなかったため、急遽ローカルプロキシ「Varnish」を導入したという経緯を説明した。
 
なお、Apacheは試したところ思ったような挙動に改善されず。Nginxは試していないが、グリー社内にVarnishに詳しい人員がいたことからVarnishが選択されたのだと覚張氏は理由を述べた。
 

 
4.AWS instance
続くパートでは、EC2 650台、RDS 200台という驚異の数値に会場からは驚嘆の声も。ここまで数が膨れ上がった経緯について覚張氏は、思い通りの性能が出なかったと説明した。システム改善ではなく、単にトラフィックが多い状態だったため「この頃は何が何だか分からない状態だった」と覚張氏は当時を振り返った。
 

▲上層部からは「コスト度外視でどんどん積む」というお達しもあったのだとか。
 



▲EC2とRDS、m4.16xlargeがどのような推移で増加していったかのグラフも公開された。「他のサーバーも使用していたので実際、全てを合わせると1000台以上になっていたかも……」と話す覚張氏。
 
5.追加sharding
最後は追加shardingの話を展開。非バトルコアDBは10台→40台に、バトルコアDBは10台→80台にまで膨れ上がった。
 
覚張氏は、基本的にshardingする際は割りやすい数に設定するが、未曾有のユーザー数により新規分割を余儀なくされ最終的に管理を行いにくい数値になってしまったと話す。さらに、約半月に渡る連日の作業で疲労がピークを迎えてデータを2回飛ばしたとの話も。
 

▲前田プロデューサーに睨まれながら作業をしていたという覚張氏。「疲労がピークを越えて単語が頭に浮かばなくなった」、「頭が回らず割り算ができないのでエクセルを使用していた」など、当時の壮絶なエピソードを明かした。
 

▲ここまでのまとめ。
 
覚張氏は、今回のセッションで紹介した出来事はごく一部だとし、当時は「メンテナンス解除ツールが出回った」というデマに対する対応や、2週間泊まり込みで作業をしていたのに会社に電気が点いていないという噂が立つような事件もあったと振り返った。
 
『シノアリス』は、これまでApp Store売り上げランキングで首位を獲得したこともあるが、リリース時にこれだけいろいろなことがあったからこそ覚張氏は、2017年6月12日に2位を獲得したときの方が思い出深いと語る。
 
【関連記事】
【App Storeランキング(6/12)】度重なるメンテにもかかわらず『SINoALICE ーシノアリスー』が2位に 『グラブル』は10連ガチャ実施で71→4位

 
これらの経験をもとに、覚張氏は「メンバーのモチベーションの保ち方」を発表。
 

▲当時は差し入れの栄養ドリンクがケースで置かれていたり、前田社長からピザが振る舞われたという話を披露した。また、周りから体調を気遣われることも多く、ブラックなプレッシャーの掛け方をされない点は良い会社だと感じたと振り返った。
 
そして、『シノアリス』の経験を経て、後に行っている対応として以下の3点を紹介した。
 



▲体力勝負と言われるエンジニアにとって、最後の最後で大切になるのは「やってやろう!」という気持ちの部分になると切実な想いを語った。
 
セッションの最後に覚張氏は、リリース後の負荷が凄いときは何が起こっているか分からないが、冷静になって物事を整理して考えることが大切であると話す。「リリース後はユーザー様もおられるので迅速な対応は求められますが、エンジニアの方々には、最後まで逃げずにやり切ってほしい」との想いを述べた。
 

▲「安定なくして休息はなし」と語る覚張氏は、約半月の泊まり込みで稼働を安定させた後、自宅へと戻ったが「当時1歳だった子供が少し大きくなっていました」とのユニークな言葉で講演の締めとした。

 
(取材・文 編集部:山岡広樹)
 

 
■『SINoALICE(シノアリス)』
 

公式サイト

公式twitter

App Store

Google Play



©2017 Pokelabo Inc./SQUARE ENIX CO., LTD. All Rights Reserved.
株式会社ポケラボ
http://pokelabo.co.jp/

会社情報

会社名
株式会社ポケラボ
設立
2007年11月
代表者
代表取締役社長 前田 悠太
企業データを見る