TiDB User Day 2024のアーカイブ動画を公開中!詳細を見る

事例公開日:2022年1月7日

「ひとりひとりに、最高の時間を配信する」というミッションを掲げて、2007年にサービスを開始し、日本における定額制動画配信(SVOD)サービスのパイオニアとして市場をリードしてきたU-NEXT(ユーネクスト)。2021年1月時点で、映画、ドラマ、アニメ、ドキュメンタリー、音楽/ライブなど、見放題動画21万本を含む23万本を配信する。

また、読み放題のオリジナル書籍の提供や、Warner Mediaとのパートナーシップ契約におけるHBO(Home Box Office)、HBO Maxオリジナルといった新作の見放題など、独占かつ上質な作品を厳選した「ONLY ON戦略」にも力を入れている。

近年のコロナ禍での「巣ごもり需要」や動画配信サービスへの関心の高まりなどを受け、U-NEXTの有料会員数は3年間で約2.5倍に伸長し、2020年8月時点で200万人を突破した。

サービス開始から10年を経て事業が大きく成長するフェーズに入る中、課題となったのがシステム負荷の増大だ。特にデータベースとして使用していたMySQLの性能が追い付かなくなるケースが増え、会員のサービス閲覧にも支障が出始めていた。

そのような状況下でU-NEXTが採用したのが、とあるNewSQLデータベースだった。同社が抱えていた課題を解決に導いたNewSQLデータベースとは、どのようなものか。採用のポイントを明かしてくれた。

株式会社U-NEXT R&D本部 Principal Engineer 黄 必栄 氏 (右)
株式会社U-NEXT R&D本部 Engineer 花井 雅人 氏 (左)

MySQL がボトルネックになり、サイト表示に遅延が発生

U-NEXTのシステムが当時抱えていた課題について、同社の黄必栄氏(R&D本部 シニアエンジニア)は次のように話す。
「会員数が急増し、サービスサイトへのアクセスが増える中、特定のデータベースのアクセス負荷が高まっていた。夜間や土日などのピーク時間帯には、会員の半数がアクセスする。アクセスが集中すると画面表示に時間がかかるなど、サービス利用に支障が出るようになった。ユーザー体験(UX)が悪化したことでクレームにつながるケースも増えていた」

この原因は、ユーザーの閲覧履歴や権限管理に利用しているデータベースの性能問題だった。U-NEXTの花井雅人氏(R&D本部 エンジニア)は、さらに付け加える。

「U-NEXTのサービスは、月額課金の定額制と都度購入のペイバービューを組み合わせて利用する。サービスサイトを表示する際は、ユーザーごとに購入済みコンテンツの閲覧権限を管理するテーブルと、ユーザーの閲覧履歴を管理するテーブルを読み込む。これらを管理していた『MySQL』データベースがボトルネックとなり、サイト表示に遅延が発生していた」

課題の解決に向け、最初に検討されたのはリソースの増強だった。ただし、オンプレミスで運用していたために、機器の調達に数カ月かかる上、計画停止が伴い解決策にはならなかった。

そこで暫定対策として、閲覧履歴のうち、ユーザーがさかのぼって検索できる範囲を縮小した。こうすることで表示速度の改善を狙ったが、ユーザーの使い勝手も同時に悪くなってしまうので、さらなるクレームを呼び込みかねなかった。

黄氏は「リソースの増強や設定変更による改善が難しいので、クラウドサービスの利用や新しいデータベースソフトウェアへの移行も含めて検討を重ねた」と振り返る。しかし、いずれもコストが増えたり、時間がかかったりすることが問題になった。

U-NEXTでは、基本的に全てのシステムをオンプレミスで構築している。閲覧履歴と権限管理のデータベースだけでなく、サービスで利用しているデータベースは全てオンプレミスにあるため、システムの一部だけをクラウドに移行することは現実的ではなかった。

MySQL互換のデータベースを利用する場合、間にプロキシを挟むような製品が多く、その場合はアプリケーションの改修が必要になる。シャーディング(データベースの負荷分散方法の一種、「水平分割」とも呼ばれる)といったテーブル変更処理も、サービス提供の制約や時間の制約から難しいと判断した。当時U-NEXTではシステム改修に伴うメンテナンス時間をゼロに近づけることを目指しており、アプリケーション改修やテーブル変更に伴う計画停止はビジネスリスクになりかねなかったのだ。

MySQLに対応し、アプリケーションを改修せずに利用できるNewSQL

ユーザー数とアクセス数が増え続け、効果的な対策も進められない中、U-NEXTはNewSQLデータベースの「TiDB」を採用することになる。

TiDBは、オープンソースソフトウェア(OSS)で開発されており、PingCAPが提供している。オンライントランザクション処理(OLTP)とオンライン分析処理(OLAP)を、分散環境の高い可用性とともにサポートする「ハイブリッドトランザクション&分析処理(HTAP)」が特徴で、リレーショナルデータベース(RDBMS)のMySQLと極めて高い互換性を持つ分散型データベースとして利用できる。

「TiDBは、MySQLと互換性があり、アプリケーションを改修せずに利用できる唯一のNewSQLデータベースだ。しかも分散型データベースなので、シャーディングなどのテーブル変更も不要となり、クラスタ構成で柔軟に拡張できる。アクセス負荷の軽減という目の前の課題を解決するだけではなく、将来的なユーザー増、アクセス増に根本的に対応できることから採用に至った」(黄氏)

U-NEXTが採用したNewSQLデータベース「TiDB」のアーキテクチャ
参考リンク:TiDBの製品紹介

そもそもU-NEXTは、2018年に新しいサービスを立ち上げる際の中心的なデータベースとしてTiDBの採用を検討したことがあった。使い慣れたMySQLのノウハウを生かしつつ、大規模なサービス提供に耐えられるデータベースとして候補に挙がっていたのだ。ただ2018年の時点では、日本語のドキュメントがなく、日本人エンジニアを中心にサービスを運用する際のトラブル対応が遅れることが懸念され、採用を断念している。

「2019年10月ごろからサイト閲覧が難しくなるという問題が顕在化し始めた。年末に向けてさらにアクセス増が見込まれる中、数週間で根本的な対応を迫られた。新しいサーバ機器の調達のめどが立たず、アプリケーション改修やテーブル変更なども難しい中、ふと以前採用を見送ったTiDBの最新版が使えるのではないかと思い立ち、実機を使って検証してみた。すると想像以上のパフォーマンスを発揮した」(黄氏)

検証翌日に本番に切り替え、移行作業はわずか2分で完了

検証には、ステージング環境を利用した。性能や機能は2018年の検討段階でも検証していたが、当時は必要最低限の性能を持ったサーバでの検証だったこともあり、目立った違いは確認できなかった。今回、既存のMySQLを稼働させていたサーバと同等スペックのサーバにインストールして検証したところ、MySQLの数倍のスループット性能が出ることが分かった。

「MySQLはマスターとスレーブの2台構成で、レプリケーション遅延が許されないためリードレプリカを使わずに基本1台で入出力する構成だった。TiDBに移行するに当たり、社内で利用していたサーバを6台集めてクラスタを構成した。それだけで数倍のスループット性能になることが分かり、本番環境でも大幅なレスポンス改善が見込めることが判明した」(花井氏)

本番環境への移行は、ステージング環境での性能検証の翌日だった。

「移行といっても、アプリケーションのアクセス先をMySQLからTiDBに変えるだけ。朝4時に10分間の計画停止時間をもらい、切り替えに5分、万が一の際の切り戻しに5分を割り当てた。実際には、スクリプトによるアクセス先の変更とその確認だけだったので、2分で完了した」(黄氏)

MySQLと比較し性能が10倍向上、ビジネス拡大にも寄与

本番移行後にあらためて効果を検証したところ、レスポンスは劇的に改善した。

「MySQL利用時は、ユーザーの約10%でサイト表示に数秒間の遅延が発生している状況だった。TiDB導入後は、サイト表示に2秒以上かかったユーザーは0、500ミリ秒以上かかったユーザーも10%に減った。今では、ほとんどのユーザーが500ミリ秒以下でサイトを閲覧できる」(花井氏)

500ミリ秒以上かかっていたユーザーの数をTiDB導入以前と以後で比較すると、約10分の1にまで減少している。レスポンス改善によって、MySQLに比べ、性能は10倍以上に向上し、サービス品質も向上したといえる。

TiDB導入後は、ほとんどのユーザーが500ミリ秒以下でサイトを閲覧できるようになった(提供:U-NEXT)

切り替えの際もトラブルは全く発生せず、その後も新規調達したサーバに切り替えることで、スムーズにシステムを拡張できた。6台のサーバからスタートした構成を現在は20台にまで拡張し、さらなる負荷への対応を図っている状況だ。

「レスポンス改善の効果に加え、性能改善に向けたレコードの削除が不要になったことや、メンテナンス不要で運用できることも大きなメリットだ。MySQLの場合、スタンバイサーバでハードウェアを交換する場合もメンテナンスが必要になるが、TiDBはスケールアウト型なのでクラスタへのサーバの追加/削除も容易で、パフォーマンスチューニングも不要だ。ビジネスの成長に合わせて、インフラを拡張できる」(黄氏)

TiDBの利用は、コミュニティー版を本番環境に適用することでスタートしたが、2021年からは、PingCAPが提供するエンタープライズ版にアップグレードし、必要なときにサポートを受けられる体制にした。

「ビジネスが拡大する中で、データベースシステムの重要度が増している。PingCAPのサポートを受けることで、信頼性が高く、ユーザーのニーズに合ったサービスを素早く提供していく」(黄氏)

移行に成功したことで、社内でのTiDBに対する評価も大きく向上した。今後は、新しいサービスの標準的なデータベースとしてTiDBを第一優先することも決まった。フルマネージドTiDBサービスの「TiDB Cloud」もあるように、TiDBはクラウドネイティブなアプリケーション開発にも適している。U-NEXTはシステムのクラウド移行も予定しており、その際はデータベースにTiDB Cloudを採用することも視野に入れ、サービスの強化を図っていく構えだ。

出典:ITmedia ー「MySQLに比べ性能が10倍向上、事業拡大にも寄与 – 数週間でオンプレミスMySQLの拡張が必須だったU-NEXTがNewSQLを採用した理由」(2021年11月4日)

参考情報:
TiDBの導入背景、3年間運用して感じたこと – db tech showcase 2022 Tokyo
[講演資料] [動画]