事例公開日:2022年7月14日
ブラウザゲームとインターネットサービスを提供するCTW株式会社は、2013年に設立し、現在では日本だけでなく、ヨーロッパ、アメリカ、韓国、台湾など、7つの国と地域でサービスを展開する。2017年から提供するHTML5の技術を活用して開発された「G123.jp」は、ダウンロード不要で厳選された高クオリティゲームを提供するインタラクティブプラットフォームだ。サービスが急速に成長し、現在のユーザー数は全世界で5,000万人を超えている。「ビビッドアーミー」などのさまざまなゲーム商品が人気コンテンツとなり、凄まじい成長を遂げた。
CTW株式会社 執行役員 兼チーフデータアーキテクト 覃 子林氏 (左)
執行役員 兼チーフエンジニア 侯斌氏 (右)
「毎日何100万ものデータがTiDB Cloudに同期されています。今では、Aurora MySQLで対応していた時と比較し、3倍もの処理を行っています。クエリと書き込みの機能が改善され、Raftプロトコルに基づくデータ同期によってデータ遅延問題も解決しました。ネイティブにサポートされているオンラインDDLにサードパーティのツールを使用する必要なくなりました。同時に、TiDBにはカラム型ストアのTiFlashが組み込まれているため、アプリケーションを変更せずに分析パフォーマンスを向上させることができました」
オンラインゲームの勝負は「1秒以内」で決まる
G123.jpは、インターネットに繋がりさえすれば、プレイする環境の異なるユーザー同士でも、Webブラウザ上でPCまたはモバイル端末からゲームを楽しむことができる。ダウンロードや会員登録が不要なため、ゲームを開始するまでわずか5秒という短時間でゲームの世界に入り込めることが特徴だ。G123.jpは、端末ベースでユーザーを定義することができ、全世界でサービスを提供するため、データベースの容量は急速に拡大し続けている。
「CTWは、ユーザーにより良い体験を提供するため常に努力しています。CTWの中核的なサービスのひとつである広告は、ユーザーのプロファイルを分析して最適な広告を出稿します。ユーザーのコンバージョン率を上げるため、出稿を1秒以内に完了させる必要があります。これは顧客獲得コストに直結し、サービスのコア競争力でもあります。つまり、顧客獲得の勝敗が1秒以内に決まるのです」と執行役員兼チーフデータアーキテクトの覃子麟(チン ツリン)氏は述べる。
ビジネスの急速な発展に伴うデータ増加で直面する課題
しかし、ユーザーやデータの量が増えるにつれ、安定したデータサービスを提供することは困難になっていった。開発当初、Amazon Web Services(AWS)にサービスを構築し、Amazon Aurora MySQLでデータサービス、Amazon Redshiftでデータ分析を実施していた。ビジネスの急速な発展に伴い、リアルタイムのデータ更新で使用されていたRedshiftは、広告配信の要件を徐々に満たさなくなっていった。
また、1つのテーブルのデータ量が1億に増えると、データベースのメンテナンスは難しくなる。データベースのアップグレードとメンテナンスでは毎回1か月以上前に計画する必要があった。当時は深夜3〜4時にメンテナンスを実施していたが、ビジネスが世界規模になるにつれ、ダウンタイムのメンテナンスウィンドウがなくなっていき、オンラインでの変更が必須となっていった。Auroraの場合、DDLの変更に数時間かかったり、リソース不足のためにジョブが失敗する状況も発生するようになった。更に、Aurora Serverlessを使用しており、binlog機能がないためデータ同期ができず、メンテナンス時ダウンタイムが発生するようにもなっていた。このような環境下、課題の解決方法だけではなく、データサービスとデータ分析を1つのデータベースで実行する可能性を模索し始めた。
MySQLと互換性があるマネージドサービスTiDB Cloudに移行
データベースの選択は簡単ではない。性能要件を満たすだけでなく、CTWの「クラウドネイティブおよびクラウドニュートラル」という技術戦略の方向性に準拠し、移行コストを可能な限り最小限に抑える必要がある。
「HTAPを最初に見たとき、これだ、と思いYugabyteとTiDBを調べました。Yugabyteは、PostgreSQLインターフェースであり、TiDBはMySQLと互換性がありました。その中で、TiDBは弊社の技術戦略の方向性に沿ったk8s Operatorも提供していて、MySQL互換によって移行コストが低いため、TiDBを試してみることにしました」と執行役員兼チーフエンジニアの侯斌(コウ ヒン)氏は述べる。
TiDBは、MySQLとの互換性が高いためアプリケーション側で変更を要する場所を最小限に抑えられ、外部キーに対応する程度のいくつかの改修にとどめることができた。
「TiDBが提供するK8Sオペレーターのおかげで、クラウド上に素早くセットアップすることができました。 ストレージとコンピュートを分離したアーキテクチャにより、水平方向の拡張が容易で、大容量のデータでもパフォーマンスが保証されます。 3つのアベイラビリティゾーンにデータが保存されているため、もはや単一障害点を心配する必要はありません。行と列のストレージの統一されたアーキテクチャにより、データサービスとデータ分析を1つのシステムで提供することができます」(覃氏)。
ただし、柔軟性の高いアーキテクチャでは、システムを完全に理解して適切に制御する必要があることも、その後明らかになった。
「TiDBを導入して、しばらくは順調に稼働していたのですが、IaaSサービスがダウンしたときの障害に対応するには、TiDBを十分に理解していないことに気づきました。 そんな時、PingCAPがTiDBのホスティングサービスであるTiDB Cloudを提供していることを知り、早速試してみて移行することにしたのです」(侯氏)。
TiDB Cloudに移行することで処理能力がAWS Aurora使用時と比較し3倍に
アプリケーションで既にTiDBを使用していたため、TiDB Cloudを使用する際にシームレスに切り替えることができた。VPCピアリングでネットワークに接続した直後に使用することができた。
「毎日何100万ものデータがTiDB Cloudに同期されています。今では、Aurora MySQLで対応していた時と比較し、3倍もの処理を行っています。クエリと書き込みの機能が改善され、Raftプロトコルに基づくデータ同期によってデータ遅延問題も解決しました。ネイティブにサポートされているオンラインDDLにサードパーティのツールを使用する必要がなくなりました。同時に、TiDBにはカラム型ストアのTiFlashが組み込まれているため、アプリケーションを変更せずに分析パフォーマンスを向上させることができました」(覃氏)。
そして、マネージドサービスのTiDB Cloudを使うことにより、Aurora使用時と同様に、データベース移行後の運用や保守の負担もなくなった。
「現在、TiDBはユーザーセグメント、広告データ、キャンペーンデータの3つのデータサービスで使用し、安定稼働中です。このようなシステムのパフォーマンス向上は、ユーザーエクスペリエンスの向上にも大きな影響を与えます。安定して広告データを提供することにより、サービス、それは顧客獲得のコストをより減らすことができます」(覃氏)。
TiDB検証時のPingCAPからの手厚いサポート
TiDB Cloudは、マネージドサービスだが、さらに重要なのは、PingCAPが優れたサポートサービスを提供しているということだ。
「データベースの移行中に障害やパフォーマンスの問題が発生した場合、PingCAPの技術スタッフが迅速かつ効率的なサポートを提供してくれました。これを行うのは簡単ではありません。顧客の要求をすばやく理解し、製品を十分に理解している必要があります。開発元であるPingCAPからの直接サポートのおかげで、以前は解決できなかったいくつかの問題にも迅速に対応することができました」(侯氏)。
TiDB Cloudへの移行に関する議論は2021年10月に始まり、約1か月間の検証が行われた。移行は2022年1月に開始され、わずか1か月で完了した。将来的にはTiDB Cloudでより多くのデータサービスが実行されることが期待される。