DMM.comが認証基盤をオンプレミスからクラウドへ、 移行先のデータベースとしてNewSQLを評価した結果とは?[PR]
多くのシステムにおいて、データの永続的な保存、検索、変更などの役割を担うデータベースはもっとも重要な基盤となります。その基盤をオンプレミスからクラウドへ移行する際、多数あるクラウドデータベースの中からどれを選択するのかは、システムの今後の発展や将来性を左右しかねない非常に重要な問題です。
まさに現在、その問題に直面しているネットサービス大手の合同会社DMM.comは、同社の重要な基盤となるデータベースをクラウド化するにあたってPingCAP社が提供する「TiDB Cloud」に注目し、評価を実施しました。
その結果を、株式会社インサイトテクノロジー主催のイベント「db tech showcase 2022 Tokyo」(2022年11月16日から18日)で行われたセッション「DMMの取り組み最前線 ~フルマネージドNewSQLであるTiDB Cloudの可能性~」で発表しています。
発表を行った合同会社DMM.com プラットフォーム事業本部 平賀由利亜氏は、MySQL互換のNewSQLである「TiDB Cloud」の評価を行ったところ、性能面、運用面、移行性のすべてで移行先として十分検討に値すると結論づけました。

クラウドへの移行が検討されているDMMの重要なデータベース基盤とはどのようなものであるのか、そしてクラウド移行のための要件と評価結果は具体的にどのようなものだったのでしょうか。
発表が行われたセッションをダイジェストで紹介しましょう。
認証認可のアプリケーションをクラウド化へ
合同会社DMM.com プラットフォーム事業本部 平賀由利亜氏。DMMについて、売り上げ約3055億円、会員数は約3914万人、企業数は約60事業の事業会社と紹介します。

平賀氏が所属するプラットフォーム事業本部では、認証機能や購入機能などDMM.comのさまざまなサービスで共通利用される機能を提供しています。「仮にこのプラットフォーム事業本部の基盤に不具合が起こると、それがそのままDMM.comのサービスの不具合になってしまう、非常に重要な基盤です」(平賀氏)。
そして、認証認可基盤の信頼性向上のためにアプリケーションをクラウド化するプロジェクトが発足。まずはオンプレミスで稼働中のアプリケーションとデータベースのクラウド移行を行うための一歩目として、移行先のデータベースを選定するための検証を行うことにしたとのこと。
6つの要件を満たすTiDB Cloudを検証
平賀氏によると、移行先となるデータベースの要件は6つ。

今回移行する予定のデータベースは認証認可に関わるため、リクエスト数が非常に多く、しかもリクエストのレイテンシが大きい場合やダウンタイムがあると、DMM.comの多くのサービスに影響します。そのため、要件の1つ目としてダウンタイムがないこと、2つ目として負荷に耐えられること、これが大事な要件となるわけです。
さらに、このデータベースはアプリケーション開発者が管理する必要があるため、フルマネージドなサービスであることが求められます。これが3つ目の要件となりました。
4つ目から6つ目の要件となっている、Writeがスケールする、強整合性、データにリレーションを持たせることができる、などについては、直近で必要な機能というわけではないものの、将来性を見越した要件となります。
こうした要件を満たすデータベースとして注目されたのが、スケーラブルな能力を持つリレーショナルデータベースとして、いわゆる「NewSQL」と呼ばれる新たな分野のデータベースであり、まず候補に挙がったのはその代表的なGoogleのCloud Spannerだったと平賀氏。
「Cloud Spannerの検証だけをしようと思っていたときに、TiDB Cloudの存在を知りました」(平賀氏)。
「TiDB CloudはフルマネージドのNewSQLで、AWSとGCP両方で利用できて、MySQL互換のデータベースです。MySQL互換であることは今回の要件には含まれていませんが、オンプレミスからの移行が楽そうな点が私たちに刺さりました。
というのもDMM.comのオンプレミスではMySQLを使っているアプリケーションが多く、今回移行予定の認証認可のアプリケーションでもMySQLを使っています。MySQL互換であればクラウドへ移行してもアプリケーションの修正工数が少ないことが期待できます。
TiDB Cloudは前述の要件も満たしていて、さらにMySQL互換という利点もあったために、今回検証することに決めました」(平賀氏)。
2万QPSの負荷に耐えるか、性能面の検証
このように6つの要件を満たしつつMySQL互換という利点を備えたTiDBについて、下記の検証が行われました。検証には以下の3つの軸を用意しました。

性能面では、認証認可基盤で発行されるクエリを一部模したものを使い、既存のアプリケーションで受けている負荷に対応できるかを検証しました。
具体的には2万QPS(Query Per Second)の負荷に耐えるか、そして99パーセンタイルのレイテンシが100ミリ秒以内に収まっているかどうかです。

負荷試験ツールにはGo言語で試験スクリプトが記述できるLocustを採用。テーブルスキーマは移行先のアプリケーションと同じ構造の単一テーブルで、6000万件のダミーデータを登録。ただしデリートの検証時のみ3億件のうち6000万件のデータを削除しています。
検証のために用意されたTiDB Cloudの構成は、今回の移行先の候補となっているGoogle Cloud上にシングルクラスターで、TiDBのバックエンドのうちSQL文を処理するTiDB Serverが2インスタンス、データを処理するTiKV Serverが3インスタンス、ストレージが500GBという構成で構築しました。

さらに設定として「store-io-pool-size」を有効化することで、TiKVのライト時のデータとログの書き込みが並行処理されるようにしています。
これらの構成を用いた検証結果のサマリーが以下です。
既存のアプリケーションと同程度の負荷をかけたときに、99パーセンタイルのレイテンシが100ミリ秒以内に収まっています。

スループットを見ても、2万QPS以上に問題なく対応。

MySQLのエコシステムを利用できるのはとても魅力的
続いて運用面と移行面についての調査結果について。

運用面の評価としては、実績のあるクラウドサービスと同等の運用性があると判断。Datadogのようなサードパーティのプロダクトとの連携サポートもある点は好評価です。

移行については。MySQLのエコシステムを利用できるのはとても魅力的です。
「実は検証を始める前に、オンプレミスのJavaのアプリケーションからTiDB Cloudへの疎通確認をしました。アプリケーションコードの変更はほとんどなく、接続先のIPアドレスを変更したくらいで確認できました」(平賀氏)。
データのマイグレーションについても、ツールによって容易かつ安全に実現できそうという調査結果となりました。
移行先のデータベースとして十分検討できる
セッションの最後として、平賀氏は「QPS、レイテンシの要件は十分に満たしていたと感じています」とした上で「メンテナンスやスケールイン/スケールアウトでダウンタイムがないことはとても魅力的です」と説明。

そして「MySQL互換があるというところがやはりとても強くて、実際のアプリケーションコードの改修コストが低いところも魅力的です。まとめると、MySQL互換のNewSQLであるTiDBは、移行先のデータベースとして十分検討できることが分かりました」と、結論付けました。
(本記事はPingCAP株式会社提供のタイアップ記事です)
あわせて読みたい
RubyのYJITコンパイラをShopifyが本番に投入、Railsアプリを高速化。Rubyも本格的にJITの時代へ
≪前の記事
Electronライクな新フレームワーク「Gluon」登場。Chromium内蔵せずWebブラウザを利用、Node.jsだけでなくDenoとBunにも対応