モバイルオンラインゲームの企画・開発、運営を行うgumiは、アニメ「ジョジョの奇妙な冒険」の新作アプリゲーム「ジョジョの奇妙な冒険 オラオラオーバードライブ」において、インフラ構成を刷新した。長年運用してきたAmazon Auroraによるシャーディング構成から、分散型SQLデータベース「TiDB Cloud」へ移行している。大規模トラフィックが前提となる大型IPタイトルで、なぜ新たなアーキテクチャの採用に踏み切ったのか。
Auroraによるシャーディング運用の限界……「TiDB」に白羽の矢
gumiといえば、長年にわたりモバイルゲーム業界で、高度な技術力を有してきた企業だ。これまでデータベースに関しては、大量のトラフィックを安定して処理するため、水平分割(シャーディング)を中心としたアーキテクチャを採用してきた。
具体的には、Amazon Auroraをベースとして、アプリケーション側のライブラリで分散トランザクションやデータ分割を制御するような形だ。この構成で十分な実績を積んできたが、運用面では課題もあった。
「データベースを物理的に分割して負荷を分散させる手法は、スケーラビリティを確保できる反面、構成変更のたびにメンテナンスが必要になります。ユーザーのデータを守るために不可欠な処理とはいえ、スケールイン/スケールアウトの際にサービスを停止しなければならない点は、機会損失や運用コストの面で長年の課題でした」と、gumi CTOの清水佑吾氏は語る。
清水氏が率いるインフラチームでは、既存の構成に安住することなく、常に次世代の技術トレンドを注視してきた。データの分散処理に関しても、AppleによるFoundationDBの買収やGoogle Cloud Spannerの登場など、データベース層で分散処理を行う「NewSQL」の動向を追いかける中、数年前から有力な選択肢としてリストアップされていたのが「TiDB Cloud」だ。
「社内の分析基盤や小規模なツールではTiDB導入の実績があり、MySQL互換であることや運用の手軽さは把握していました。しかし、ゲームの本番環境、それも大型タイトルとなると話は別です。技術的に有望であることは理解しつつも、実際に採用するには適切なタイミングと案件が必要でした」(清水氏)
そして、実際にTiDB Cloudを本番導入する好機は、「ジョジョの奇妙な冒険 オラオラオーバードライブ」のプロジェクト始動とともに訪れた。gumiの福岡拠点でアプリケーション開発を主導する的野礼峰氏から、「新しいデータベース技術を使いたい」との要望が上がったのだ。
的野氏は、「従来の水平分割・垂直分割におけるアプローチは、エンジニアに高度な知識が求められます。一方、新しいメンバーが参画した際の学習コスト、開発の労力は削減したいと考えていました。また、物理サーバーを大量に並べた際の管理コストや、後から構成を変更する難しさも懸念点でした。そこで、柔軟に対応できるTiDBのメリットを享受したかったのです」と説明する。
こうしてインフラチームが温めていた技術戦略と、アプリケーションチームのニーズが合致し、gumiにおけるTiDB Cloudの導入プロジェクトがスタートした。
TiDB検証で直面した2つの課題 gumiはどう乗り越えたのか
TiDB Cloud導入に向けて検証が始まったのは、リリースの約半年前(2025年3月頃)のこと。比較対象は、gumiで使い慣れているAmazon Auroraだ。
検証の過程で、2つの技術的課題に直面する。1つ目は、採用しているWebアプリケーションフレームワーク「Django」とTiDBの相性だ。TiDBでは、クラスタ化インデックスとしてのプライマリキー設計が性能に直結する。そのため、アクセスパターンに沿った複合主キー/複合インデックス設計が推奨されるが、10年以上にわたりDjangoは標準機能の複合主キーとしてサポートされていなかった。
gumiの井上虎太郎氏は、「DjangoのORM(Object-Relational Mapping)が複合主キーに対応していないことは、TiDBの性能を引き出す上で問題となります。もし公式対応がなされなければ、社内でDjangoのORMを独自改修して対応することも考えていました。しかし、後のメンテナンスを考えると、避けたかったのです」と振り返る。
このとき、偶然にも検証を進めていた時期に幸運が訪れる。Djangoのコミュニティで長年議論されていた複合主キー対応のプルリクエストがマージされ、公式機能としてリリースされたのだ。
「通常であれば次のメジャーバージョンまで待たされるような機能追加が、たまたま検証のタイミングでリリースされました。これにより標準機能のままで、TiDB推奨のデータ設計が可能になったのです」(井上氏)
2つ目の課題は、レイテンシーの問題だった。従来のAmazon Aurora環境では、多少非効率なクエリ(いわゆるN+1問題など)があっても、単一リージョン内での低レイテンシーなアクセスに支えられ、目立った遅延は現れにくかった。一方、TiDBのような分散型アーキテクチャでは、ノード間通信などのオーバーヘッドが積み重なるため、同じN+1クエリでも分散配置されたデータに対して多数のラウンドトリップが発生し、高レイテンシーとして顕著に表れるケースがある。
そこでgumiでは、データベース側のチューニングだけでなく、社内ライブラリ自体の改修を実施した。同社 井上氏は、「TiDBの特性に合わせて、N+1問題が発生しないようにクエリを最適化し、既存の社内フレームワークをTiDBに対応させる形でチューニングを行いました。Amazon Auroraと同等のレスポンスとはいきませんが、実用に耐えうる性能を確保できています」と述べる。
負荷試験で見えたディスク性能の限界 ピンチを救ったPingCAPのサポート
アプリケーションの実装が進み、リリースに向けた最終フェーズにおける負荷試験において、新たな問題が明らかになった。想定していたリクエスト数(RPS)に対し、パフォーマンスが伸び悩む事象が発生したのだ。
このとき、ボトルネックとなっていたのはディスクの書き込み性能(IOPS)だった。分散データベースであるTiDBは、計算リソースとストレージリソースを独立してスケールできる強みをもつが、特定の構成ではディスクI/Oが限界に達していた。
この問題について、TiDBの開発元であるPingCAP社がサポートに入っている。井上氏は、「負荷試験の期間中は、1日に何度も問い合わせを行うほど密に連携をとりました。夜間の問い合わせにも即座に対応してもらえ、パラメータの調整や構成の見直しについても、具体的なアドバイスをもらえたことが問題の解決につながりました」と語る。
従来のデータベースであれば、ディスク性能を上げるためにはインスタンスタイプを変更したり、データの再配置を行ったりする。そのため、長時間のメンテナンスが必要になるケースは多い。一方、TiDBは稼働したままノードを追加し、リソースを拡張できる。
gumi 古谷正一氏は、「ディスク性能が足りないと判明した際にも、ダウンタイムなしでディスクリソースを追加(スケールアウト)することで解決できました。リリース直前の切迫した状況下、サービスを止めずに性能問題を解消できたことは、TiDBのアーキテクチャならではの強みだと実感しました」と話す。
こうしてgumiでは、アプリケーションのコードを大きく変更することなく、インフラ側のスケール操作とチューニングにより、本番運用に耐えうる環境を整えた。バックアッププランとして用意していたAmazon Auroraへの切り戻しを実行することなく、TiDB Cloudによる大型タイトルのローンチを無事に迎えられたのだ。
TiDB運用で実感した「メンテナンスフリー」の価値
2025年9月25日、「ジョジョの奇妙な冒険 オラオラオーバードライブ」は無事にリリースを迎えた。リリース直後の突発的なアクセス増に対しても、事前の負荷試験とチューニングの成果により、大きなトラブルなく乗り切れた。
運用後、TiDBの効果を最も感じているのは、「スケーラビリティと柔軟性」だ。
「リリース直後は過剰にリソースを用意していましたが、アクセス状況が落ち着いてきたタイミングでスケールインを実施しました。従来であれば、この作業のために深夜メンテナンスを計画し、ユーザーにサービス停止を案内し、エンジニアが待機する必要がありました。しかしTiDBでは、サービスを稼働させたままノード数を減らすだけで完了します。ユーザーへの影響も皆無でした」(清水氏)
[画像クリックで拡大]
的野氏も「アプリ内のイベントにあわせて負荷が高まった際も、『ちょっと重くなってきたからノードを足そう』という判断が即座にできます。計画停止の調整コストや機会損失を考慮せず、必要なときに必要なだけリソースを増減できる。これは担当者の精神的な負担を大きく下げてくれます」と、現場視点でのメリットを強調する。
また、副次的なメリットとして、開発環境のコスト削減効果もある。gumiでは多くの開発プロジェクトが並行して走るため、開発環境のデータベースコストがかさみやすい。しかし、開発環境に「TiDB Cloud Serverless」を採用したことで、Amazon Auroraを使用していた頃と比較してもコストを圧縮できている。
今回の成功を受けて清水氏は、「社内でもTiDBの有効性が証明されました。今後も新規タイトルにおいて、シャーディングが求められる案件では積極的に検討していきます」と話す。
シャーディングによる複雑なアプリケーション実装、スケーリングにともなうダウンタイム……これらから解放されたgumiのエンジニアたちは、より本質的な“おもしろいゲーム開発”へとリソースを割くことができる。まさに同社の取り組みはゲーム業界のみならず、高トラフィックなサービスにおいて分散データベースを採用する際の成功モデルとなりそうだ。
この記事は参考になりましたか?
提供:PingCAP株式会社
【AD】本記事の内容は記事掲載開始時点のものです 企画・制作 株式会社翔泳社
この記事は参考になりましたか?
この記事をシェア
