気になっていたNewSQL ビジネスの拡大に追随できるのかを検証
多様なオンライン決済サービスがここ数年で急速に普及するとともに、それを支える決済システムには柔軟な拡張性が求められる。まさにミッションクリティカルともいえる厳しい要件を満たすデータベースとして、SBペイメントサービスが新たに選んだのがNewSQLデータベース「TiDB」だった。
ソフトバンクグループは決済領域にPayPay社とPayPayカード社、SBペイメントサービスの3社を擁しており、PayPay社とPayPayカード社がコンシューマ向けの決済サービスを担い、SBペイメントサービスでは決済サービスの加盟店開拓など、主にBtoBの決済サービス事業を展開している。ECサイトのオンライン決済はもちろん、リアル店舗での多様な決済サービスが選べる端末導入など、ニーズにあわせて幅広く対応しており、プリペイドカード発行やソフトバンク社と共同でキャリア決済システムの運用も担う。
「当社は多岐にわたる決済サービスを提供しています」と話すのは、システム本部長を務める宝本卓氏だ。多様な決済サービスを提供する同社では、極めて“信頼性の高い”システムインフラが欠かせない。その上で、今後のビジネス拡大を見据えると、“柔軟な拡張性”があることも重要だ。「オンライン決済は、秒間で数百のトランザクションが発生するような世界です。その負荷に耐えられる良い製品がないかと探していました」と宝本氏。その要求を満たすものとして「分散データベースにはとても興味をもっていましたね」と話すのは、システム運用統制部長の鈴木順也氏だ。
分散データベースの中でも、ACID(Atomicity Consistency Isolation Durability)特性を維持しながら、オンライントランザクション処理の負荷に対してもNoSQLデータベースと同等の拡張性を発揮する“NewSQL”に注目していたという。とはいえ、NewSQLは癖が強くて使い勝手が悪いイメージもあったといい、採用に至るほどのデータベースは簡単に見つからなかった。
実は、2021年11月頃から新しいデータベース技術を本格的に探し始めていた時点では、当時評判が良かった、とある分散データベースが第一候補だったという。「ただ、そのデータベースは弊社で利用実績の無いデータベースエンジン互換で、かつ国内事例が少なく、採用には至りませんでした」と鈴木氏。その後、2022年初頭に新たな候補として挙がったのがTiDBだった。
TiDBは、SBペイメントサービスで数多く利用しているMySQLと互換性があることはもちろん、何よりもソフトバンクグループの一部企業で既に利用実績があったからだ。さっそく情報収集を行うと、7月にはユーザーカンファレンス「TiDB User Day 2022」にも参加。「何よりも驚いたのは、カンファレンスへ参加しているユーザーの熱量がとても高かったことです。『サポートが良い』とベンダーではなくユーザーが強く薦めている姿を見て、『これは本物だな』と思い、すぐに使ってみようとなりました」と鈴木氏は言う。
このとき、PingCAPからクラウド版のマネージドサービスの提供も始まっており、これを利用すればすぐにTiDBを利用できる状況に変わっていた。そこで2022年末から翌年にかけ、まずはPoCを実施してTiDBを評価。「既存のMySQLベースで動いているアプリケーションにおいて、TiDBに替えても利用できるかを確認しました」と説明するのは、運用統制部推進課の前島竜太郎氏だ。PoCでは、同様の構成で既に利用しているデータベースと比較し、どのくらい性能が出るのか検証も実施している。
なお、検証ではプラットフォーム運用管理担当者とアプリケーション担当者の協力体制で実施。既存の開発環境で新たにTiDBを用意し、本番相当のワークロードだけでなく、より負荷をかけるためのワークロードも用いてテストした。また、障害試験も実施し、PingCAPの協力を得ることで実際にインスタンスを落とし、どのように復旧できるか念入りに確認している。
検証の結果、性能面で既存のデータベースを超える件数を十分に捌けることが確認できた。さらに、アップデートや障害時に既存のデータベースで発生していた、リードレプリカの切り替えにともなうダウンタイムがTiDBでは大幅に短縮できたという。「切り替え時間を大幅に短縮できる点は、分散データベースを謳うTiDBの強みを感じましたね」と運用統制部推進課の髙野はいね氏。MySQLとの互換性に関しても、今回検証したアプリケーションでは「データベースの接続先をTiDBに変更し、SQLの実行計画を確認する程度で、コードには一切手を入れる必要はありませんでした」と強調する。