MySQLを7000インスタンス規模で運用するLINEは、MySQL互換のNewSQLをどう評価したか?

sponsored by PingCAP株式会社 | 制作:Publickey

コミュニケーションアプリ「LINE」をはじめ、多くの大規模サービスを運営するLINE株式会社は、LINEマンガやLINE GAME、LINEギフトなどをはじめとするLINE関連サービスのデータベース基盤として約7000ものMySQLインスタンスを運用しています。
このMySQLインスタンスの国内における管理と運用を行っているのが、MySQLコミュニティでも活躍する国内トップクラスのMySQLエキスパートを含む7名のITエンジニアで構成される「MySQL1チーム」です。
同チームのマネージャーである北川健太郎氏は、LINE関連サービスの発展に伴って増大するMySQLインスタンスの運用管理という課題に、日々のオペレーションの自動化を実現するための開発を積極的に行うことで対応していると話します。
「日々のオペレーションは自動化でカバーし、サービスの開発者と密接にコミュニケーションを取って、適切なスキーマ構成やサイジングの提案など、データベース周りの相談に乗るところに時間を割きたいと考えています」(北川氏)。

LINE株式会社 データベース室 MySQL1チーム マネージャー 北川健太郎氏

そうした中で北川氏はデータベースの「シャーディング」についての課題があったと話します。

7000ものMySQLインスタンスを管理運用するチームの課題

シャーディングとは、データベースの負荷分散により高いスケーラビリティを実現する代表的な方法の1つです。
1つのテーブルを論理的に分割して複数のデータベースサーバに割り振ることで、サーバへのアクセスを分散させます。
細かく分割するほど多くのサーバに負荷を分割できて高いスケーラビリティを実現できるようになりますが、一方で、クライアント側でシャーディングに対応したプログラミングが求められます。また、データが複数のデータベースに分散するため運用管理も複雑になります。
同チームでも高いスケーラビリティの実現にシャーディングを利用していました。
「LINE GAMEでもシャーディングを使っていて、アプリケーション側に(シャーディングの)ロジックを組み込んで利用していました。ただ、あとから成長してきたサービスを、途中からスケーラビリティのためにシャーディング対応に構成するのはかなり大変です。そこはなんとかならないかと課題に感じていました」(北川氏)。
この課題を解決するテクノロジーを模索していた中で、約2年前に見つけたのがいわゆるNewSQLとして登場したMySQL互換の「TiDB」でした。

MySQLのエキスパートによるTiDBの評価とは

そもそもTiDBはシャーディングの課題を解決し、SQLやトランザクションと言った既存のリレーショナルデータベースの良さと分散データベースによるスケーラビリティを備えたデータベースを開発しようという目的で作られたデータベースであると、TiDBの開発元であるPingCAP社の共同創業者兼CTOであるEd Huang氏は2022年開催のTiDB User Dayで語っています。
シャーディングの課題に対するソリューションを探していた北川氏がTiDBに注目したのは当然の成り行きだったと言えます。
「まずTiDBのアーキテクチャの理解から始めました」と北川氏。「うちのチームでは文化的にそこから理解できないとだめなのです。」
MySQLのエキスパートである北川氏はTiDBの調査をした上で、そのアーキテクチャや性能を次のように評しています。
「アーキテクチャを見ていく中で、なるほど、と思ったところはかなり多かったですね。レイテンシを犠牲にしてスループットを取る仕組みになっていたので、スループット性能はかなりいけるだろうなと思いました。
実際にTiDBをテストをしたところ、MySQLでは絶対に出ないライト性能が出て驚きました。また、障害時にどう振る舞うのか、モニタリングの方法、設定周りなども全部調査しました」(北川氏)。
マルチリージョン対応への対応、エコシステムについても高評価でした。
「MySQLではマルチリージョンとかマルチアベイラビリティゾーン(AZ)の構成による高可用性を実現する際の仕組みは頭を悩ませるところでしたが、TiDBでは自動的に対応してくれるのでそこも非常によいと思います。
クラスタ構成でのスケールインやスケールアウトも簡単にできますし、Grafanaなどの運用監視ツールもインストールコマンド(TiUP)ですぐ導入できるなど、エコシステムが充実している点も助かります」(北川氏)。

時代が変わってきてNewSQLも進化している

こうした評価の末、北川氏のチームはTiDBの導入に動き始めました。
「とはいえ、いきなりサービスに投入するわけにはいかないので、まずは小さいところ、我々が管理しているMySQLの高可用性(HA)構成を管理しているデータベースに採用することして、ちょうど先月リリースしたところです」(北川氏)。

MySQL1チームが導入したTiDBのシステム概要。3つのアベイラビリティゾーンにまたがってTiDBのクラスタが構成されている。MySQLからの移行にはTiDBのマイグレーションツールが用いられた。

チーム内にはMySQLだけで運用した方がいいのではないか、という意見もあったとしつつも、それでもTiDBの導入を決断した背景について北川氏はこう説明します。
「時代が変わってきてNewSQLという分野も進化しているので、そういう新しいソリューションを導入したり検証したりすることも必要だよね、という話をチーム内で結構しました」(北川氏)。
北川氏がマネージャとして目指すのは、今後もチームが管理運用するインスタンスが増えていくなかで、チームの人数を増やさずに対応できる体制です。
「そのための開発を大切にしていきたい。そして、本来時間を使いたいところ、開発者へのコンサルティングやMySQLの内部についての勉強、そしてTiDBの調査にも時間を取っていきたい。そのためにオペレーションの自動化をさらに突き詰めていきたいと思っています」(北川氏)。

TiDB User Day開催

2023年7月7日に開催される「TiDB User Day」では、LINE株式会社の事例セッションも開催されます。ぜひご参加ください。

※ この記事「MySQLを7000インスタンス規模で運用するLINEは、MySQL互換のNewSQLをどう評価したか?」は、Pubickeyの許可を得て転載しています

  1. アウトプットの文化が鍵!TISが技術ナレッジ共有サイト「Fintan」の運営から学んだこと
  2. 【Qiita x Udemy】記事投稿キャンペーン「最新技術についてUdemyで学んだことをシェアしよう!」結果発表!