ITmedia NEWS >

「Fate/Grand Order」ユーザー爆増の裏側で、エンジニアが挑んだデータベースとの戦い(2/2 ページ)

» 2019年07月24日 06時00分 公開
[片渕陽平ITmedia]
前のページへ 1|2       

 そこで、こうしたリスクを改善するべく“大手術”を決断し、データベースの分割方法を「水平分割」に変更。ユーザーのレベルや経験値などでデータベースを分けるのではなく、ユーザーのIDごとにデータを分け、格納するデータベースを分割した。

photo 垂直分割から「水平分割」(同テーブルのID単位での分割)に変更

 甲さんらは、今後のユーザーの増加を見越して、データを何分割するかを検討した。分割し過ぎてデータベースが過剰になったり、逆に不足したりすることがないよう、本番同様の環境をクラウド上に構築し、実際のデータをバックアップして負荷試験に使用。試験の結果、20分割が適当と判断した。

 新しく20分割したデータベースにデータを移行させる際は、AWSのマイグレーションサービスを利用し、ゲームのサービスを止めずに進めた。その際、本番環境で動いている、移行前のデータベースが影響を受けないように、レプリケーションを作り、そこから新しいデータベースに移行するように工夫した。

 ただ、AWSのサービスでは、移行したデータに抜け落ちがないかの確認が難しかったという。「(AWSの)検証機能は、1つのデータベースから1つのデータベースに移行する場合しか使えず、今回のように複数のデータベースに移行するとなると使えなかった」

 そこで20分割した新しいデータベースを、マイグレーションサービスを使って再び元のデータベースに戻し、移行前のデータベースと比較。データの抜け落ちがないことを確認したという。

 「あらかじめ移行ツールが用意されているので、本来やるべき作業を軽減でき、検証などの作業に時間を割けることが、クラウドサービスのメリットと感じた」(甲さん)

エンジニアの増員も成功要因

 移行作業は、社内のメンバー5人で実施。普段は、FGOに新機能が追加されるとき、データをやりとりするプログラムを改修したり、保存先のデータベースを設計したり――といったサーバ運用・開発をしているエンジニアの中から、移行作業の専属のチームを結成し「万全の体制で臨んだ」。

 甲さんは「FGOではほぼ毎月、新規のイベントを実施したり、機能を追加したりして、その実装に人員を割いている。そのため、データベースの課題の解消が後回しになってしまった」と振り返る。社内のエンジニアが十分に増え、そうした課題を解決できる体制が整ったことも、移行が成功した要因という。

 こうしてボトルネックを改善したFGOだが、ゲーム内イベントが始まった直後は負荷が重くなるなど「別の部分で問題と感じているところもある」(甲さん)。サービス開始から4周年を迎える7月末に向け、改善を進めているという。

前のページへ 1|2       

Copyright © ITmedia, Inc. All Rights Reserved.