雑誌 Software Design 2023年12月号:インタビュー「『リヴリーアイランド』リブート後の改善への取り組み」井上真悟・髙藤佑馬【後編】
この記事は「Software Design 2023年12月号」に掲載された記事を許諾を受けて転載しています。
Web3の新時代を拓く ココネのエンジニアリング力を探る
世界に愛されるデジタルワールドでトップレベルの実績
第6回 『リヴリーアイランド』リブート後の改善への取り組み
2003年に誕生した人気のペット育成アプリ『リヴリーアイランド』は2019年にいったん終了したものの、ココネが権利を取得し、2021年7月にスマホアプリとしてリブート(再始動)することになった。リリースから1ヵ月で30万ダウンロードを記録するなど、予想以上の人気にチームはサーバ負荷の対策に追われたことも。今回はリリース後の改善の取り組みについて、ココネ リヴリープロジェクト 井上真悟氏と同 髙藤佑馬氏に聞く。
━━自己紹介をお願いします。
井上真悟(以下、井上) ココネ リヴリープロジェクト 井上真悟です。主にクライアント開発を担当しています。推しリヴリーはトビネです。
髙藤佑馬(以下、髙藤) 同じくリヴリープロジェクト 髙藤佑馬です。主にサーバ開発・運用を担当しています。推しリヴリーはピグミーです。
データベースはフルマネージドサービスに移行
━━「リヴリーアイランド」について簡単に教えてください。
井上 お客様は自分の「アイランド」に自分の分身であるホムとリヴリーを住まわせ、独自の癒やし空間を作りあげることができます。画面に表示できるリヴリーは最大で3匹。与えるエサ(虫)の色でリヴリーやホムの髪の色が変化したりし、ガチャで得られるアイテムはホムの着せ替えやアイランドのデコレーションに使えます。
髙藤 リヴリーはエサやりやシャワーなどのお世話を怠ると、アイランドから離れて放浪してしまうこともあります(※)。愛着を持って育ててあげてください(笑)。友だちのアイランドを訪問するなどのコミュニケーションも楽しめます。
※取材時点での仕様。2023年10月時点では、放浪が発生せず、継続してお世話可能な形になっています。
━━リリース直後は想定以上の負荷で対策に追われたそうですね。
髙藤 これまでアプリの立ち上げをいくつか経験してきましたが、事前予想の負荷を大きく上回ったのは『リヴリーアイランド』が初めてでした。まずはデータベース(MongoDB)を稼働させているAmazon EC2のインスタンスを強力なものに変更しました。インフラチームの協力を得て、プライマリとセカンダリのスケールアップを順番に行うことで、ダウンタイムなくうまく達成し、乗り切ることができました。
――以降はどのような改善に取り組んでいますか?
髙藤 データベースに関するコードや重いクエリにチューニングで改善を加えたほか、EC2で稼働させているMongoDBをフルマネージドサービスのMongoDB Atlasに変更しました(図1)。コストは上がりますが、管理画面でパフォーマンスがリッチに可視化されたり、Performance Advisorの機能が便利だったりして、まさにフルマネージドのサービスの恩恵を受けられています。
井上 稼働状況がグラフィカルに表示されるので、どれだけリードやライトが走っているか、どれだけコレクションにアクセスが来ているかなどがわかりやすいです。
髙藤 ほかにも「ここにインデックスを張るといいですよ」などパフォーマンスを改善するためのアドバイスをしてくれる機能もあります。『リヴリーアイランド』は負荷が高いので貴重です。
井上 EC2インスタンスのリタイアから解放されるのも大きいですよね。
髙藤 そう。当時、AWSからのインスタンスのリタイア通知は一番見たくないメールでした。基本的には対象のインスタンスを停止したあと、起動させる必要があります。フルマネージドサービスなら、そうした保守からは解放されます。
━━クライアント側ではサブスクを導入したとか。
井上 サブスク利用者限定のアイテムやエサを利用できます。ココネにはすでにサブスクのためのビリングシステムがあるので、それを実装すればよく、大きな手間にはなりませんでした。
末永く愛着を持ち、楽しんでもらえるように
━━2023年のリブート2周年も盛り上がったそうですが、今後はどのような改善や発展を考えていますか?
井上 リヴリーの種類や限定アイテムなど、コンテンツの拡充は今後ずっと続けていく必要があります。加えて今後もずっとお客様がリヴリーと長く一緒に暮らせるように、機能の拡充や発展も進めていきます。お客様が「これがうちの子です」と喜んで友だちと見せ合うとか、愛着を持って楽しんでくれるといいですね。
髙藤 サーバ側はEC2インスタンスで稼働しているものを、ECSのコンテナでオートスケールしやすい環境に移行していくことを考えています。ほかにもオブザーバビリティのためのツールを導入して、SREの取り組みも進めていこうとしています。
井上 クライアント側だと、Unityのアップデートが定期的に直面するやや重たいタスクですね。ほかにもアセットバンドルの最適化が課題です。アプリに埋め込まれているアセットが多いので、不要なものは外に出して、必要なときにダウンロードできるようにしていこうと考えています。そうするとお客様のダウンロードを減らせて、より快適にアプリを使えるようになります。
髙藤 サーバの負荷も減ってうれしいです(笑)。
━━ココネで働く魅力はどんなところにありますか?
髙藤 ありがたいことに、どのアプリにも多くのお客様がいらっしゃるので、大規模なサービスの開発に興味がある方だといい経験になると思います。ぐんぐん伸びるようなサービスを支えてみたいという意欲をお持ちなら、ぴったりです。とくに、お客様の視点に立ち、どうすればよりよくなるかと自主的に考え、「ここを改善したいです」と工夫したいところを提案してくれるような積極性があるエンジニアに来ていただけたら、とてもうれしいです。
井上 ココネはサービス開発のサイクルが早いのも特徴です。たとえば、今開発している機能が来週にはリリースされるなど、すぐに世に出ることも珍しくありません。お客様からの反応もダイレクトに返ってきます。この手応えを楽しめるといいですね。自分を成長させるモチベーションになると思いますよ。
※リヴリー本編とは別軸(メタ的)に、裏話や想いについて語っておりますのでご注意ください
【関連記事】
・雑誌 Software Design 2023年11月号:インタビュー「歴史ある『リヴリーアイランド』がスマホアプリで再出発」井上真悟・髙藤佑馬【前編】
・新卒エンジニア研修レポート〜AWS JumpStart for NewGrads
・開発本部長に聞くココネエンジニアの「攻め」と「守り」