数万人規模のイベントを支えるピグパーティのシステム負荷対策

執筆:橋川 丈一郎

  • 鬼塚美帆
    2012年に新卒入社して、いくつかの部署を経て8年ほど前からピグ事業部に所属。1年半前からピグパーティの開発に参画し、現在はサーバーチームのリーダーを担当。
  • 松岡穂高
    2022年に新卒入社し、ピグパーティに配属。現在はサーバーチームでSRE領域のリーダーとして、インフラやアプリケーションの開発、負荷対策などを担当。

はじめに

近年のピグパーティでは、数万人のユーザーが集まるアプリ内のイベントが何度か開催され、盛り上がりを見せています。そのような大規模イベントを支えるため、開発チームでは負荷対策を目的としたシステムの刷新を行いました。

今回は、サーバーチーム全体のリーダーを勤める鬼塚さんと、同じくサーバーチームでSRE領域のリーダーを勤める松岡さんに、イベントに向けた負荷対策の内容を中心に、システムの変遷や若手エンジニアの成長も絡めてインタビューしました。



システムの歴史と負荷対策の背景

ー システム目線でのピグパーティの歴史についてお聞かせください。


鬼塚:ピグパーティはピグの中では初めてのネイティブアプリとして、約9年前にリリースしたサービスです。その当時はPCサービスがピグ事業の主軸だったので、チャレンジで作ろうという感じで始まったもので、リリースしてから5年ぐらいはユーザー規模がそこまで大きくない状態だったんです。ただ、PCサービスがFlash Playerのサポート終了に伴って2020年にクローズをすることになり、そのタイミングでユーザーが一気にピグパーティに来てくれて、事業としてもピグパーティにさらに注力するようになりました。そうしてお客様がどんどん増えていく中で、システムの負荷も高騰してきたという感じですね。


ー ピグパーティのシステム負荷の特徴を教えてください。


松岡:ゲーム寄りのサービスなので、リアルタイム通信が活発に行われますし、イベントやボーナスタイムのようなものがあると負荷がグッと上がったりすることが多いです。10,000人以上のユーザーが急に増えるみたいなことはよくありますね。あとは学生のユーザーが多いので夏休みや年末年始は負荷が高くなる傾向はあります。ピグパーティはVTuberとの親和性が高いこともあって、最近は大きなコラボイベントを開催することが何度かあり、それが今回の負荷対策のきっかけになりました。

イベントに向けた負荷対策の取り組み

ー どのようなイベントが開催されたのでしょうか?


鬼塚:有名VTuberさんにアプリ内でパーティを開催していただいて、そのパーティをお客様が観覧できる機能を通じて交流するようなイベントです。去年の夏、冬と立て続けにイベントがあったのですが、どちらも集客力の高いVTuberさんなので、これまでに比べて圧倒的に多くのお客様が集まり、なかなかにシステム負荷の高いイベントとなりました。


松岡:元々は内輪でコミュニケーションを取るのが主流の遊び方だったので、観覧機能も元々は数人から数十人ほどの規模で交流する想定で作られたものだったのですが、今回のように有名人が開催するような規模感だとどうしても負荷に耐えられないという課題が出てきましたね。


ー ユーザーの遊び方の変化によって負荷の傾向も変わっていったのですね。イベントに向けてどのような負荷対策を行いましたか?


松岡:夏のイベントに向けては、スケジュールの兼ね合いで直前になって負荷対策をする必要が出てきました。そのため根本的な改善は間に合わなかったので、サーバーのスペックを上げたり、負荷の高い機能を制限することで対策していました。なんとか乗り切ることができたのですが、今後もイベントが計画されていたので、更なるユーザー数の増加を考えると根本改善が必須になってきました。


ー そこから冬のイベントに向けて根本改善を行ったのですね。


松岡:はい、まずは本番環境と同等スペックの負荷試験環境を整え、観覧機能のボトルネックの調査から行いました。そこで、配信のシステムで利用しているRedis関連のボトルネックが見つかったので、Pub/Subを導入したり、バージョンを上げてリードレプリカを導入するなどの対策を行うことで、ユーザー数が増えても負荷が増えにくく、また負荷が増えたとしてもスケールしやすい構成にすることができました。またアプリのクライアント側でも、イベントの画面に遷移するまでの導線をシンプルにすることで余計なAPIコールをなくしたり、行動ログの収集経路を変えてサーバーを経由しないようにするなどの対策を行い、rpsはかなり削減することができました。


ー 負荷対策の結果はどうでしたか?


松岡:対策前後の構成で負荷試験をして比較をすると、対策後は以前の10倍以上の観覧人数に耐えられることが確認できました。実際に冬のイベントでは夏の2倍近くのユーザーに観覧機能を利用していただくことができ、問題なくイベントを終えられたので、実績としても残すことができたと思っています。



若手エンジニアの活躍と成長

ー 松岡さんは新卒2年目の若手で、負荷対策のリードを経験してみていかがでしたか?


松岡:プレッシャーはすごく感じました。数万人レベルの規模のユーザーがたった一時間のイベントを楽しみにしてくれているのに、サーバーを落とすわけにはいかないので。イベントが開催できて当たり前、普通にプレイできて当たり前の世界ですが、その品質を保つためには裏でエンジニアの努力が必要なんだと感じました。


ー 良い成長機会になってそうですね。


松岡:そうですね、ユーザー目線だったり事業目線で色々仕事を考えられるようになったというか、当事者意識が高まったという点で成長を実感しています。


ー 鬼塚さんは上司として、松岡さんにSREリーダーを任せてみていかがでしたか?


鬼塚:弊社あるあるですが、若手に大きな仕事を丸投げして、失敗してもいいからとりあえずやってみようという文化があるので、そんな感じで任せてみました。夏の時点ではリーダーになってから日が浅く、前任のリーダーに頼りつつだったのですが、その後ぐらいからKPTを実施して反省点をまとめたりというリーダーらしい動きが出てきて、成長しているなと思ってました。さらに夏の反省を生かして、冬の負荷対策では自らどんどん動いてくれて。SRE系のタスクは全部自分で決めて、メンバーに割り振りながら進めたりしてくれたので、仕事の進め方の面でも成長が見られて、任せて良かったと思っています。

今後の展望

ー 最後に、ピグパーティのシステムにおける今後の展望をお聞かせください。


鬼塚:観覧機能の負荷対策は今回で一息ついたという感じなので、次に優先すべきはアプリケーション開発かなと。ただ、他にも大規模なユーザー数を想定していなかった機能はあるので、同様に刷新していく必要があると思っています。


松岡:長く運用しているサービスだとどうしても負債は溜まっていってしまうんですよね。必要以上に複雑になっている箇所が多くて。そういうのをどんどんシンプルにしていきたいですね。もちろん新機能の開発もやっていきたいので、それらも含めて上手くバランスを取りながら進めていけたらと思っています。

おわりに

今回のインタビューでは、事業の成長に伴ってシステムも変化が求められ、成長していく過程を見ることができました。攻めの機能開発だけでなく、負荷対策のような守りの開発もエンジニアの腕の見せ所ですね。ユーザーが安心して遊べるプラットフォームとして、今後のピグパーティのシステム運用にも期待です。

  • 執筆橋川 丈一郎

公開日:

最終更新日: