【CEDEC 2020】『あんさんぶるスターズ!!』がリニューアル&新作同日リリースを成し遂げられたワケ…運用を支えたインフラ技術が明らかに
コンピュータエンターテインメント協会(CESA)は、9月2日~4日の期間、オンラインにて、国内最大のゲーム開発者向けカンファレンス「コンピュータ・エンターテインメント・デベロッパーズ・カンファレンス 2020」(CEDEC 2020)を開催した。
本稿では、9月3日に実施された講演「『あんさんぶるスターズ!!』リニューアルと新作の同日リリースを支えたインフラ技術」のレポートをお届けしていく。
セッションには、Happy Elements インフラグループグループリーダーを務める鷲見啓志氏が登壇。人気タイトル『あんさんぶるスターズ!』のリニューアルと新作の同時リリースというチャレンジングな計画の、1年強に渡る準備期間の詳細と得られた知見などについて、インフラエンジニアの目線からの紹介が行われた。
▲鷲見啓志氏。エンターテインメント系企業における携帯電話・スマートフォンゲームでのエンジニア・プロジェクトマネージャー・ディレクター・プロデューサーの経験を経て、Happy Elements株式会社に入社。現在は、ゲームサーバーのクラウド導入・移行・運用をタイトル横断で担当するインフラグループのリーダーとして、複数タイトルのサーバーインフラ面でのサポートに携わる。
●リニューアル前の課題と状況について
『あんさんぶるスターズ!!』とは、2015年4月にリリースした男性アイドルの育成ゲーム『あんさんぶるスターズ!』をリニューアルした作品。従来のプレイスタイルで遊べる『あんさんぶるスターズ!!Basic』と、新作のリズムゲーム『あんさんぶるスターズ!!music』の二作品がリリースされている。
▲2020年3月15日リリース当日の『あんさんぶるスターズ!!』ダウンロード数は約140万件。2020年4月10日にTwitter社のブログで公開された記事では、世界中で今年最もツイートされたゲームのトップ10に入るなど、凄まじい人気ぶりを見せた。
2019年でサービスを提供しているゲームのタイトルのAPIサーバーについては、オンプレミスのデータセンター環境上で物理サーバーが稼働。運用は各ゲームタイトルのエンジニアが行なっていたという。
鷲見氏は2019年時点でのインフラ関係の課題について、以下の3つを挙げていく。
①インフラの技術的負債
インフラ技術基盤はリリースを優先していたためメンテナンスが行われておらず、すっかり古くなってしまっていたそうだ。バージョンアップ・アップデート・新技術の採用も先送りにしていたため古いままの構成となり、技術的負債が蓄積してしまったという。
②インフラ運用知見の分散
各タイトルごとに「熱狂的に愛されるコンテンツ」作りというミッションの下でゲーム制作に邁進していった結果、タイトル間のコミュニケーションはやや疎遠に。タイトルごとの知見が、会社で共有されなくなってしまっていた。
▲スラッグなどで重要なバグ、不具合情報などは共有されていたが、細かな知見は共有されないという状況だったそうだ。
③インフラリソースの無駄遣い
スパイクに合わせてサーバーを調達していたため、スパイク時のサーバー以外のサーバーリソースが無駄になってしまっていた。また、サーバーを調達するリードタイムに2週間ほどかかってしまいまうため、突発的なスパイクに対応できないといった問題も抱えていたそうだ。
こういった課題の解決のため、Happy Elementsは2019年1月、全タイトル横断でのインフラを運用するインフラグループを設立。クラウド化の推進・技術的負債の返済、リソースの無駄の排除、インフラ運用知見の集約・共有化を目指すように体系が変化していった。
▲クラウドベンダーはAWS(Amazon Web Services)が使用されている。
『あんさんぶるスターズ!!Basic』のインフラ技術の負債の返済アプローチについては、前作『アンサンブルスターズ!』の既存のリソース・ノウハウを利用したという鷲見氏。OSのバージョンアップといった「放置しつづけると重要なトラブルが発生するような負債」、開発言語のメジャーバージョンアップといった「修正すると性能が大幅アップするような負債」に優先的に取り組んだと続けた。
一方、『あんさんぶるスターズ!!Music』の負債返済アプローチでは、クラウド利用の第二世代の使い方を参考。コンテナ技術の導入を決定。世間の技術トレンドにも追いつき、新しいアーキテクチャに刷新がされている
▲『あんさんぶるスターズ!!Basic』では、Ruby2.2からが2.6に、Railsが4.1から6.0に技術構成が大きく変わっている。
▲『あんさんぶるスターズ!!Music』では、コンテナに関連する技術が使用されるようになった。
●『あんさんぶるスターズ!!Basic』&『あんさんぶるスターズ!!Music』の移行について
続いて、鷲見氏は『あんさんぶるスターズ!!Basic』のクラウド移行の際の計画について紹介。『あんさんぶるスターズ!!Basic』は『あんさんぶるスターズ!』のリニューアル・大型アップデートタイトルのため、既に稼働中のサーバーアプリが存在している。
本番環境でのクラウド利用は初めてとなるため、AWSのリフト&シフトの2段階移行を計画したが、Cassandoraのデータ移行の段階で断念。リニューアルのタイミングでAWS上に移行し、サーバーアプリをリニューアルするという、一斉移行に切り替えたと話した。
DAU(リリース当日のユーザー数)は50万人、アクセス数を10000RTS(Request Per Second)と想定。想定のユーザー数・アクセス数を迎えるため、インフラグループではデータベースの水平分割、複数の目的別の負荷試験、APMを用いたパフォーマンスチューニングを行っていく。
キャパシティの設計では、設定想定アクセス数をさばくための、サーバースペック・台数を調整していく。『あんさんぶるスターズ!!Basic』ではCPU・メモリ・スレット数を、『あんさんぶるスターズ!!Music』ではCPU・メモリ・コンテナ数・スレッド数といった様々な組み合わせでパフォーマンスを測定。これら負荷試験の結果を、DATADOGを中心にモニタリングしていくという手段となる。
▲リリース当日のトラブルに備え、AWSのエンタープライズサポートを契約している。
準備のかいあって、『あんさんぶるスターズ!!Basic』と『あんさんぶるスターズ!!Music』は見事3月15日の同時リリースに成功した。リリース後に関しても、インフラ起因による大きな障害も発生していないそうだ。
また、リリース後しばらくはサーバーを多めに見積もって利用するなど、コストがかなり増大した状況が継続していたという。ゲーム内イベントの運用を経て恒常的に必要なサーバー台数が把握できたため、サーバースペックの見直しと台数の減少を実施。
さらにはイベントの実施状況に合わせて台数を変更するといったスケーラブルな運用体制を構築したという。スポットインスタンスとリザーブドインスタンスの活用により、コストはリリース月の3分の1ほどに圧縮できたと説明した。
鷲見氏は最後に、「本セッションの情報・知見が皆様の今後のゲーム制作の一助となりますと幸いです」とメッセージを送り、講演を締めくくった。
(取材・文 ライター:島中一郎)
■『あんさんぶるスターズ!!Music』
■『あんさんぶるスターズ!!Basic』
©2014-2019 Happy Elements K.K