YouTubeがMySQLをスケールアウトする「Vitess」をオープンソースで公開。Kubernetesに対応
YouTubeは、同社内で膨大な動画の視聴データやメタデータなどを管理するためのデータベースツール「Vitess」をオープンソースで公開しました。
Google Cloud Platformのブログに投稿された記事「Scaling MySQL in the cloud with Vitess and Kubernetes」で、Vitessは次のように説明されています。
At YouTube, we went on that journey as we scaled our MySQL deployment, which today handles the metadata for billions of daily video views and 300 hours of new video uploads per minute. To do this, we developed the Vitess platform, which addresses scaling challenges while hiding the associated complexity from the application layer.
YouTubeには、MySQLをスケールさせてきた長い歴史があり、現在では1日あたり数十億もの動画視聴や1分ごとに300時間もアップロードされる動画のメタデータなどを扱わなければならなくなっている。そのために私たちはVitessプラットフォームを開発した。これはスケーリングの課題を解決し、同時にアプリケーションレイヤーからはその複雑さを隠蔽するものだ。
シャーディング機構内蔵、自動マスターフェイルオーバーなど
VitessのWebサイトによると、主な特長は次の通り。
- MySQLのコネクションに掛かるメモリオーバーヘッドを排除
- アプリケーションでのシャーディングロジック不要でデータベースを拡大
- シャーディング機構内蔵
- 最小の読み取りダウンタイムでライブにリシャーディング
- データベース性能に問題を起こしそうなクエリを自動書き換え
- プロキシサーバでキャッシュ機構を用いることで、クエリの調停や重複するクエリの排除
- etcdやZookeeperのようなロックサーバによって、サーバ群の追跡や管理を行う
- マスターフェイルオーバー、バックアップなどの自動化でダウンタイムを最小化
VitessはDockerコンテナのクラスタ環境を運用管理できるKubernetes環境で実行可能となっており、容易にスケールアウトできるとのことです。
クラウドでMySQLスケールアウトが一般化するか
スケールアウトするMySQLといえば、昨年11月にAmazonクラウドが発表した「Amazon Aurora」が思い出されます。今回のVitessも、Google Container EngineとKubernetesで容易に試せると説明されており、今後Googleが提供するサービスになるのではないかという予感もさせます。
以前からMySQLをスケールアウトさせるツールはいくつも存在していましたが、これからはそれがクラウドサービスとして一般的になっていく、という動きにつながるかもしれません。
あわせて読みたい
アトラシアン、本社プレジデントJay Simons氏が基調講演「Atlassian RoadTrip 2015 Tokyo」4月14日開催。JIRA、Confluenceなど各プロダクトマネージャも来日 [PR]
≪前の記事
Chromeブラウザ、「Script streaming」と「Code caching」の2つのテクニックで、さらにWebページ読み込み時間を短縮へ