事例公開日:2022年7月13日
株式会社カプコンは、全世界累計8,500万本超の大ヒットゲーム『モンスターハンター』シリーズ (2022年7月13日時点)、サバイバルホラーゲーム『バイオハザード』シリーズなど、個性あるタイトルを全世界でヒットさせているエンターテインメント企業である。同社のCS制作統括デジタルサービス企画部デジタル基盤部インフラ基盤チームはインフラ担当としてゲームシステムを支えるサーバーやネットワークの設計、構築、運用をワンストップで行っている。近年ではゲームコンテンツのオンライン配信やグローバル化が進み、パブリッククラウドサービスを積極的に活用している。
彼らは新オンラインゲームのコア部分をGoogle Cloud上に構築することを決定し、データベースの検討を開始した。オンラインゲームのデータベースは想定外のユーザーの増加、シナリオやアイテム、突発的なキャンペーンやイベントの追加など、当初の想定を超えた拡張を迫られることもあるため、高い柔軟性が求められる。そしていくつかの選択肢から、MySQL互換でマネージドサービスのTiDB Cloudが実運用に耐えられると評価し導入を決定した。
株式会社カプコン CS制作統括デジタルサービス企画部 デジタル基盤部 インフラ基盤チーム 森田 亮平 氏
「エンジニアの皆さんはグローバルチームだと思いますが、問い合わせなどに対して対応が早く、たいへん満足しています。検証時に選択できるインスタンスタイプが少なく柔軟性が低いとリクエストしたのですが、即座にインスタンスのラインナップ追加対応をいただけました。ほかのサービスでは考えられないスピード感です」
快適なゲーム環境の提供には柔軟なインフラが必要
オンラインゲームは同時接続者数がダイナミックに変化する事への対応や、世界各国のユーザーが体験を損なわずにプレイできる事が求められる。そのためスケールの柔軟性や、サービスを展開している国に近いサーバー配置を行う必要があり、今回の新オンラインゲームではパブリッククラウドサービスのGoogle Cloudを利用することを決定した。そして、その中でユーザーデータを扱うAPIサーバーで使用するDBの選定がインフラ基盤チームの課題の一つとなった。
「オンラインゲームでは、新しいゲームシナリオやアイテムの追加、突発的なイベントにより新しい遊び方を増やしていきます。DBには、当初の想定にない要素を追加することが非常に多くあります。要件が増えれば負荷も高まり、当然DBのパフォーマンス要求も増えていきます。こうした可変要素にも対応でき、Google Cloud環境に最適なDBを模索していました。」とインフラ基盤チームの森田亮平氏は語った。
さらに、DB運用中の障害対応や性能チューニングなど、DB専任者に特化された作業をアウトソースしメイン業務に集中することもマネージドDBを利用する理由の一つだった。
複数のマネージドDBを検討しMySQL互換かつ柔軟なTiDBに出会う
新たなオンラインゲームのためのマネージドDBの候補として、Google Cloud以外のIaaS上で稼働するものも含め複数の候補が上がっていたが、RDBMSかつ柔軟な性能のスケーリングの要求に合う決定的なサービスを見つけられずにいた。そして、この過程で森田氏はPingCAPから「TiDB Cloud」の提案を受ける。
TiDBには、MySQLと互換のインターフェースを持ちながら、分散型アーキテクチャで柔軟に拡張できる特性がある。SQLを解釈するTiDBレイヤーとデータストアレイヤーであるTiKVの2レイヤーで構成され、各レイヤーは需要に応じて拡張、縮退できる。
森田氏は「CNCF (Cloud Native Computing Foundation) が、TiKVをホストしていたことは知っていました。今回TiDB Cloudの提案を受けて、すぐに自社環境でOSS版を検証しました。これがマネージドサービスで実装されるなら、運用負荷の軽減が本当にできる!と可能性を感じて、本格検討することを決めました。」と当時を振り返る。
機能・運用・性能・拡張性・耐障害性コストを検証し、採用を決定
森田氏と担当プログラマーは大きく4つのポイントを評価する為にTiDB Cloudの検証を実施した。
- MySQLとの互換性
- 運用面 (新たな学習コストの有無)
- 性能面 (秒間1,000リクエスト)
- 耐障害性
まず、TiDBの製品特徴の一つであるMySQLとの互換性の部分については、スキーマ構造やSQLのレベルでプログラマーが吸収できないような差分は無く、スムーズに検証用アプリケーションが構築できたという。
次に行ったのは運用面の確認だ。他社マネージドDBサービスからの運用移行を想定しTiDB Cloudの管理コンソールでの操作性、ダッシュボードでのリソースモニタリング、クエリの詳細分析など、問題無く運用移行できる事を確認した。
森田氏は「管理コンソールやダッシュボードを開くと、ドキュメントを読まなくても直感的に進められるほどシンプルで扱いやすいと感じました。」と評価した。マネージドサービスという言葉通り、シンプルかつ学習コストを抑えてスタートできるという結論に至った。
性能面の検証では、新タイトルで定めたDB選定指標を問題なくクリアすることができた。また、DB稼働中に性能をスケールさせてもゲームの品質に全く影響が出ないことを確認した。クリック一つで、必要な時に必要な分だけサーバーをスケールアウトする事ができる部分に改めて魅力を感じていただいたテストシナリオとなった。
耐障害性の検証ではTiDB CloudのSREチームの協力のもと、最も縮退している状況を想定したパターンとして3台構成のTiKVを1台停止させ、性能劣化の環境を擬似的に作りだし性能劣化時のベンチマークや自動復旧の動作確認を行なった。
「QPS (秒間クエリ数) は一時的に3分の2まで低下しましたが、徐々にQPSは戻っていき、TiKVの停止から15分後には、自動で3台構成に復旧していました。復旧中でもコネクションは維持されたままで、ゲームアプリ側のエラーには至りませんでした。」(森田氏)。
こうした一連の評価の結果、Google Cloudにおける動作の安定性やMySQL互換によるベンダーロックインの回避等のメリットからTiDB Cloudが採用になった。ただし、利用しているシステム監視ツールPrometheusとの連携が難しかった点や検証当時、選択できるインスタンスタイプの少なさをPingCAP担当者はご要望として受領した。
森田氏は「本案件の検証後、さっそく当初よりもゲームの要件が増え、DBへのアクセスが想定の数倍になることがわかりました。今後、さらに大規模な試験を予定していますが、そこでも期待する性能を発揮してくれると思います」と語った。
また新オンラインゲームでは、複数の開発環境を1つのクラスタに集約する事でコストの節約に寄与している。
PingCAPの柔軟で迅速な対応も評価今後のTiDBの普及・発展に期待
頂いた評価には、PingCAPの対応力も含まれている。提案から導入に至るまで、PingCAPチームと森田氏はチャットで意見交換をし、本番運用を想定したダッシュボードからの問い合わせのやり取りを実施する事でスピーディーな対応を肌で感じていただいた。こうしたやりとりから、森田氏はPingCAPの技術力やサポート対応について「エンジニアの皆さんはグローバルチームにも関わらず、問い合わせに素早く対応していただき、たいへん満足しています。検証時には、選択できるインスタンスタイプが少なく柔軟性が低いとリクエストしたのですが、即座にインスタンスのラインナップ追加対応をいただけました。他のサービスでは考えられないスピードです」とコメントした。
最後に、森田氏はTiDBの普及に期待を寄せ「TiDBが普及すれば、関連ナレッジが広がり、日本のコミュニティでの情報収集や意見交換がしやすくなり、運用のしやすさにもつながると思います。」と語った。