一般社団法人日本CTO協会が協会会員と招待客の方々に感謝を伝えるべく開催したオフラインイベント「#ThanksGivingDay2022」。
本記事では、スポンサー企業と協会理事により対談形式で行われた5つのセッションから、「データベースのスケーラビリティと多様化は必要か?」をご紹介します。
登壇者紹介
藤門 千明 氏
一般社団法人日本CTO協会 理事
Zホールディングス株式会社 専務執行役員 Co-GCTO AI CPO
静岡県生まれ。2005年に筑波大学大学院を卒業後、ヤフー株式会社に新卒入社。 エンジニアとして「Yahoo! JAPAN ID」や「Yahoo!ショッピング」「ヤフオク!」の決済システム構築などに携わる。決済金融部門のテクニカルディレクターや「Yahoo! JAPAN」を支えるプラットフォームの責任者を経て、2015年にヤフー株式会社CTOに就任。 2019年10月にZホールディングス株式会社 常務執行役員 CTO、ヤフー株式会社 取締役 常務執行役員CTOに就任。2022年4月より現職。
林 正記 氏
PingCAP株式会社 Japan CTO
外資系メーカーにて、プロダクトマネージャ・プロダクトマーケティングとして市場開拓に従事。その後、同社にてプリセールスとして直販・間販を通じた提案活動を実施。PingCAP入社後は、プリセールスとしての活動だけではなくJapan CTOとして国内ユーザーのニーズを海外R&Dチームにフィードバックし、製品の認知度を高める活動を積極的にしている。
ユーザー数・データ量の増加にどのように対策しているか(スケーラビリティ)
[藤門]
起こりうる問題にはさまざまなパターンがありますが、大きく3つに分類されます。
1つ目は、事業計画以上にユーザー数などが伸びてしまったパターン。2つ目は、キャンペーンや季節のイベント事で一時的かつ爆発的にトラフィックが増加してしまったパターン。3つ目は、ログなどのデータが増えていくことにより、徐々に性能劣化してしまったパターン。
「この場合はこうする」というのはあまりなく、事業・サービス・計画・アプリケーションなどのデータストアでない部分も含め、ペインに対する対策を講じていく必要があります。
ただし大前提として、技術選定やアーキテクチャを考えるフェーズをシビアに行っていないと、後々の対応が困難になってしまいます。そのため、最も基礎的な対策としては技術選定やアーキテクチャにあります。
[林]
非常に面白いですが、難しい部分でもありますね。
技術選定において、データベースに関しては「RDB」と「NoSQL」が選択肢になることが多いかと思います。主流であるRDBは「多くの人が慣れている」が「スケーラビリティは限界がある」という特徴が挙げられる一方で、NoSQLは「スケーラビリティはある程度解決が可能」だが、RDBとは考え方が異なることにより「慣れている人が少ない」という特徴が挙げられます。
そこで最近、第三の選択肢として「NewSQL」というものが注目を浴び始めました。NewSQLは、NoSQLのような分散型のアプローチを取りつつ、RDBのような機能をフルサポートしています。
NewSQLは注目されているのか
[藤門]
Zホールディングスでは、RDBMSも、NoSQLも、NewSQLも、自前のデータベースも使用しています。Yahoo!ショッピングやPayPayのようなサービスの場合、複数のデータベースの一貫性がないといけないため、MySQLが入っていることが多いです。
MySQLでもさまざまな方法を用いることにより、スケーラビリティのある実装は可能なのですが、大変手間がかかるため、NoSQLやNewSQLへのシフトは多くなっていくと思いますし、注目しています。
NewSQLに関しては、実際にさまざまな企業様のソリューションを使わせていただいているのですが、基本的にどれも満足しています。その中でも、既存データがMySQLに入っているものが多いので、MySQL互換があると嬉しいです。
そういった意味でも、PingCAPさんのTiDBのようなソリューションがどんどん出てきてほしいです。
[林]
ありがとうございます(笑)
HTAPの必要性や活用できそうなサービスについて
[林]
ここまで「量」の話をしてきたので、ここからは「質」の話をしていきましょう。
最近話題の「HTAP(エイチタップ)」は、元来2つに分かれていたOLTPとOLAPを1つにまとめており、あらゆるクエリの質に対応していこうというものです。HTAPの活用により、アプリの多様化やリアルタイムの分析基盤の構築など、アメリカだけでなく日本でも活用が進んできています。
そこで、HTAPの必要性や活用できそうなサービスについてお話していきたいと思います。
[藤門]
これまで、オンラインのトランザクション処理とオフラインの分析処理は異なるデータベースを用いるのが通例でした。理由はシンプルで、それぞれ要求されるワークロードが全く異なるため、同じデータベースで処理するのが難しいからです。
ですが、2つ以上のデータベースを扱うということは、扱う技術がどんどん増えることになります。扱う技術が増えると、リソースが足りない現場はどんどん苦しくなってきます。またPayPayなどもそうですが、常時多くのトラフィックを受けながら、トランザクションのリアルタイムな分析処理が求められるサービスも増え始めているため、HTAPの需要は増えていくと思います。
活用できそうなサービスは山ほどありますが、「オンライン処理も大事だけど、リアルタイムで分析を走らせながらビジネスインサイトを素早く得ていきたい」場合には特に活用できると思います。
今、制約なしで自由にデータベースを選べるとしたら、NewSQL+HTAP分散データベースを使いますか?
[藤門]
個人としては、スケーラビリティが高いという点と分析処理が同時に走らせられるという点から、NewSQLやHTAPのようなものはさまざまなところで使っていきたいと思います。