気になっていた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の実行計画を確認する程度で、コードには一切手を入れる必要はありませんでした」と強調する。
障害や更新時の切り替えにともなう「ダウンタイムも極めて短い」
既存のデータベースと同程度のスペックであれば、TiDBのほうが性能は上だった。鈴木氏が構築したアプリケーションをTiDBに移行した結果を見ても、従来の1.7倍程度の処理性能があったという。さらにアプリケーションを変更する必要がないほどMySQLとの互換性も高く、その点も評価できる。そして何よりも重要なのは、障害や更新時に復旧のためのダウンタイムを大幅に短縮できることだ。
また、運用の苦労の軽減度合いで言うならば「少なくとも従来の3倍以上は楽になるでしょう」と前島氏。運用統制部推進課の木村大地氏は、検証時の障害の試験結果を見た際に「結果が良すぎてテストが足りていないのではと思いました」とも話す。
もう1つTiDBの優れている点が“拡張の柔軟性”だ。TiDBではSQLの処理を担うTiDB Clusterとデータを格納するTiKV Clusterが独立している。そのため「SQL処理の負荷が高ければSQLエンジン部分、容量を拡張したければストレージだけを拡張できます。ニーズに応じて別々に拡張できる点はポイントが高いですね」と前島氏は語る。
これらの点からSBペイメントサービスは「TiDBが決済サービスの本番環境にも有効だ」と判断した。とはいえ、安定稼働している既存の決済システムにおいてドラスティックに入れ替えるリスクは高い。かといって小規模でビジネスインパクトの小さなシステムで採用しても「TiDBの良さが発揮できません」と宝本氏。そこでTiDBの性能を発揮できそうな新規の決済システムでの採用を決めたという。
対象となった決済システムは、今後大きく成長が見込めるオンライン決済のシステム。順次拡張することが必須であり、柔軟に拡張できるTiDBが最適だと判断した。なお、この新規決済システムプロジェクトは順調に進み、TiDBベースで無事に2023年10月にカットオーバーを迎えている。「国内では恐らく知らない人はいないと言っても過言ではないサービスで、『成長が見込める』と想像できるデータ量をはるかに上回ります。これは今後も規格外の規模で成長していくことが予想されています」と髙野氏は話す。
SBペイメントサービスにとって、本番システムにTiDBを適用する初めてのプロジェクトだったが、大きなトラブルもなく極めて順調に推移したという。一部パーティション単位でデータを管理しているテーブルを、必要がなくなった際にデータをドロップすることでデータベースの肥大化を防ぎたいとの要望があった。これを本番のワークロードに負荷なく実施する方法に悩んだが、PingCAPに問い合わせたところ“Dumplingコマンド”を利用する方法を提案してくれ、迅速に解決できている。
PingCAPのサポート体制は、PoCから本番に至るまで「かなり満足度が高い」と前島氏は話す。障害テストの際にも、通常のクラウドベンダーでは受け入れてくれないようなサービスインスタンスを落とす要求にも迅速に対応。他にも本番の決済システムで一部のクエリ処理が遅くなったものがあったが、PingCAPが内部解析し、どのように対処したら良いかを提案している。「本番運用が始まってからも性能の変化を見ていてくれ、PingCAP側から問題が発生する前に声がけしてくれるため、高い安心感があります。PingCAPのサポートは、感動するほどのレスポンスの速さ、対応の手厚さがあると思います」と髙野氏は話す。
「決済システム」など、ミッションクリティカルで主流になるか
一連のプロジェクトを通じ、TiDBの良さは実感している。その上で今後は「誰もが知っているデータベース製品となるよう、有名になって欲しい」と前島氏。運用面での手厚さに加えて、現状のクラウド版のサービスはマルチAZで可用性を担保しているが、今後はサイト障害などに対応できるようなマルチリージョンも選択できるようになればと期待を述べる。
また木村氏は、クラウド版のTiDBの管理コンソールでは、ほとんどの管理作業がクリックだけで完了すると評価。そこに含まれている監視用ダッシュボードで、これまで見えなかった運用管理の無駄や課題にも気づけるという。
今回、SBペイメントサービスが新たな決済システムでTiDBを導入し、運用が成功したことを受けて「TiDBは、当社における主流なデータベースの1つに位置づけられるでしょう」と宝本氏。今後ビジネスが成長していくにつれて、TiDBを採用するシステムは確実に増えるだろうと話す。より広範囲にわたりTiDBの採用を増やしていくためにも、PingCAPにはTiDBの導入事例をより多く作ってもらい、その波にSBペイメントサービスも乗りながら一緒に市場を盛り上げていきたいとした。