なぜTiDBに決めたのか? ビジネスを考慮した「拡張性」が鍵に
Stella AIのような新サービスを市場に展開する際には、何よりスピードが求められる。その上で将来的に数万から数十万のユーザーに広く利用してもらうため、認証などのセキュリティ対策、高いレベルでの信頼性や安定性の確保も欠かせない。
今回、Stella AIのサービスプラットフォームに選定したのは「Google Cloud」。源氏ら開発チームは、前述したような高いレベルの要件を満たすためには、なるべくGoogle Cloudに集約した形で開発・運用すべきと考えていた。特に重要視したのは、サービス利用の度に発生するデータを適切に管理するためのデータベースだ。当初データベースには、使い慣れたMySQLの利用を想定していたものの、「ユーザーが増えてスケールした際には、書き込み処理がボトルネックになるのでは」との懸念があったと源氏。実際にデータベースの本格的な検証が始まったのは、サービス公開の約3ヵ月前にあたる2024年9月のことだった。

まず検証にあたり、ユーザー数に比例してデータ量やトランザクションが増えていく利用ログなどのデータ管理には、先述した理由からもNewSQLデータベース「Cloud Spanner」が候補に挙がったという。とはいえ、開発チームメンバーにおけるCloud Spannerの利用経験は少なく、使いこなしていくには相応の学習コストが発生することも予測された。
このとき、もうひとつの候補となったのが「TiDB」だ。開発メンバーの1人が、大きな拡張性が求められるゲーム業界で良く使われており、既に実績があることを知っていた。そこでTiDBについても調査してみると、MySQLとの互換性が高く、これまで蓄積してきたスキルが活用できることが判明。MySQL Workbenchなどのサードパーティーツールも利用できるため、開発生産性は高くなると判断できた。また、マネージドサービスの「TiDB Cloud」ならば、Google Cloudでも利用できるため、インフラの調達や運用管理の手間も削減できる。その上で無料枠もあり、開発・検証環境の用意も迅速にできると考えた。
実際の検証では、拡張性についても想定通りの性能が得られることを確認。将来的にスケールさせた際のコストについても、十分に予算内に収まると試算できた。これらの結果からStella AIではTiDB Cloudの採用に至ったという。
「MySQLとの互換性の高さは大きなポイントでした。その上でサービス拡大にも十分に対応できるデータベースを選びたいと考えました」と源氏。木本氏も「将来的にサービスが大きく成長した段階で、データベースを入れ替えることは大きな手間になります。そのため、小さく安価に始めるのではなく、最初から大規模なサービスに対応できることが重要な要件でした」と説明する。