ヒットメーカー★サムザップの流儀

第1回 大人気ゲームのバックエンドを支えるエンジニアが説く!

この記事を読むのに必要な時間:およそ 3 分

本格戦国RPGとしておよそ3年もの間,ランキング上位に位置し続けているスマートフォン向けゲーム「戦国炎舞 - KIZNA - 」⁠以降,戦国炎舞)⁠開発運営元である⁠株⁠サムザップにて,そのインフラの設計やサーバサイドの開発はどのように行われているのかを,サーバサイドエンジニアの中村一謹氏,そしてインフラエンジニアである富塚真氏写真1にお話を伺いました。

写真1 今回お話を伺った中村一謹氏(左)と富塚真氏(右)

写真1 今回お話を伺った中村一謹氏(左)と富塚真氏(右)

1日1億リクエストを処理する強靱なバックエンド

――まず,戦国炎舞のサーバサイドの構成を教えていただけますか。

富塚:Linux,Apache,MySQL,PHPのいわゆるLAMP構成で,それにmemcachedやRedisを組み合わせています。MySQLに瞬間的なアクセスが集中しないように,フロント側でmemcachedに入れて,さらにレスポンスを求める処理にRedisを使う形です図1)⁠

図1 戦国炎舞 - KIZNA - のバックエンドシステムの構成図

図1 戦国炎舞 - KIZNA - のバックエンドシステムの構成図

――戦国炎舞のリクエスト数はどの程度なのでしょうか。

中村:サイバーエージェントのゲーム事業に携わる子会社11社のグループをSGE(Smartphone Games and Entertainmentの略)と呼んでいるのですが,そのSGEの中でも戦国炎舞はリクエスト数が多い部類になります。このゲームはいわゆるGvG(Guild vs Guild)と呼ばれる種類のゲームで,戦国炎舞は1日に3回大規模バトルである「合戦」が開催されます。30分間で獲得した「合戦ポイント」で勝敗が決まるのですが,この間のリクエスト数がおおよそ3,000万で,これが3回あるので1日あたり約1億リクエストになります。

富塚:このGvGが戦国炎舞のおもしろさの肝になっているので,そこでユーザーがストレスなく遊べるかどうかが一番大変なところです。

中村:「合戦」は約20名対20名の戦いになるため,1つのレコードに対して最大で同時に40件のリクエストが発生する可能性があります。そこでデータの不整合が起きないようにというのが,最も注意している部分です。ただ整合性を保つことだけを考えて,ロックをかけてガチガチに固めてしまうとレスポンスにも影響しますから,そのバランスがポイントになっていますね。

MySQL+Redisの組み合わせで永続性とレスポンスを両立

――同時リクエストが発生した際,ロック処理を適切に行いつつレスポンスを担保するのは難しい部分だと思いますが,どういった工夫をされているのでしょうか。

画像

中村:戦国炎舞をリリースした当初は,不整合が起きないようにロックをしっかりかけるなど堅めの設計にしていました。それでもゲームをリリースして時間が経ち,遊んでいただけるユーザーが増えてくると,どうしてもレスポンスが悪くなる面があったんです。もちろんロックは今でもかけていますが,絶対不整合が起きてはならない部分とそうでない部分を分け,優先順位を付けて処理するような形に改善しています。具体的には,GvGでメインに使うデータに関しては現在はほとんどRedisを使っていて,GvG以外のユーザーデータなどに関してはMySQLを使う形です。

――Redisに書き込むのはどういったデータでしょうか。

中村:基本的には揮発性の高いデータですね。保存期間も短期間で,あとあと必要になるデータはMySQLに書き込んでいます。

富塚:Redisはファイルにも書き込めるので,永続性を担保することも不可能ではありません。ただ,データの更新量が膨大なため,ファイルに書き込んでしまうとパフォーマンス面でかなり厳しくなってしまいます。そのため,レスポンスを重視する方向にシフトしました。現在はほぼオンメモリだけで使っている状況です。

――日々運用されている中で,課題に感じていることはありますか。

中村:1つはユーザー数の増加による負荷の問題ですね。またサービスを開始してから3年間が経過し,蓄積されたマスタデータやログが膨大になっているんです。その影響で突然パフォーマンスが低下することもあり,その大量の情報をどうするかは悩ましいところです。

――増え続けるデータをどうするかは,インターネット上でサービスを提供するうえでなかなか答えが出ない問題だと思いますが,それに対してどのような解決策を考えているのでしょうか。

中村:ユーザーからの問い合わせの中でも,特に金銭に絡む部分はすべて残す方針にしています。それ以外のデータ,たとえば数年前のイベントのデータといったものは,いったん別のサーバに移して,運用中のサーバからは削除する方針で対応しています。

バックナンバー

ヒットメーカー★サムザップの流儀

コメント

コメントの記入