トップ OSS紹介 Vitess

Vitess

NRIのOpenStandiaが提供するVitess最新情報

バージョンアップ情報

Vitess情報

Vitessとは

Vitess(ヴィテス)は、オープンソースデータベースの大規模クラスターを配備、スケーリング、管理するための分散データベースソリューションです。VitessはYouTubeの開発チームにより、MySQLのスケーラビリティの課題を解決するために2010年に開発されました。その後、Googleによりオープンソースとして公開され、2019年11月にはCNCFプロジェクトの8番目の卒業プロジェクトとなりました。今後さらなる利用や発展が期待されるオープンソースです。
現状は、バックエンドのオープンソースデータベースとしては、MySQLとPercona Server for MySQLだけがサポートされます。ローカル環境でも動作させることが可能ですが、基本的にはパブリックまたはプライベートクラウドで効果的に動作するように設計されています。
Vitessを利用すれば、以下のような問題を解決できます。

  • アプリケーションの変更を最小限にしながら、データベースのシャーディングやスケーリングが可能
  • ベアメタルやVMからプライベート/パブリッククラウドへの移行
  • 大量のデータベースインスタンスの配備と管理

YouTubeでは5年以上にわたり、データベースとして利用された実績もあり、現在も多くの企業がVitessを採用しています。

Vitessのアーキテクチャは以下の通りです。

それぞれのコンポーネントの役割は以下の通りです。

コンポーネント

役割

VTGate

アプリケーションからのトラフィックを正しいVTTabletにルーティングし、統合された結果を返す軽量プロキシサーバーです。MySQLプロトコルとVitess gRPCプロトコルの両方に対応しています。

Tablet

mysqldプロセスと同じマシン上で、vttabletプロセスとして実行され、各タブレットがタイプに応じた役割をこなします。タブレットタイプとしては、primary、replica、rdonly、 backup、restore、drainedがあります。

Topologyサービス

Topologyサービスは様々なサーバーで実行されるバックエンドプロセス(メタデータストア)の1つです。各種Topologyデータの格納および、分散ロックサービスを提供します。
頻繁に変更されないVitess全体のデータを格納するグローバルTopologyサービスと、各セルに応じた情報が格納されるローカルTopologyサービスがあります。

vtctl

Vitessクラスター管理で使用されるコマンドラインツール。

vtctld

Topologyサービスに保存されている情報を参照できるようにするためのHTTPサーバー。トラブルシューティングや、サーバーの現在の状態を把握するのに利用されます。

主な特徴

パフォーマンス

  • パフォーマンスを最適化するために、フロントエンドアプリケーションからの多重クエリーをMySQLコネクションプールで処理
  • まだ実行中のクエリーがある状態で、同一のクエリーを受け付けた場合に、その実行中のクエリーの結果を再利用
  • 同時実行トランザクション数の制限や、全体的なスループットを最適化するためにデッドラインを管理

保護

  • クエリーの書き換えと無害化
  • クエリーのブラックリストをカスタマイズして、問題が発生する可能性があるクエリーの実行抑止
  • クエリーキラーにより応答が遅すぎるクエリーの停止
  • 接続されたユーザーに基づきテーブルごとにアクセスコントロールリスト(ACL)の設定が可能

モニタリング

  • パフォーマンス分析ツールによるデータベースのパフォーマンスの監視、診断、分析が可能

構成管理ツール

  • クラスター管理ツール
  • Webベースの管理GUIを提供
  • 複数のデータセンター/地域で動作するような設計

シャーディング

  • シームレスな動的リシャーディングが可能
  • 垂直および水平シャーディングをサポート
  • プラグインによってカスタマイズが可能な複数のシャーディングスキームを利用可能

類似プロダクト

類似の機能を持つOSSとしては以下のものがあります。

  • MySQL Community Server、Router、Shell
  • Percona XtraDB Cluster

動作環境

ローカル環境にインストールする場合は、以下の方法がガイドされています。

  • Docker経由のローカルインストール
  • 手動コマンド(Ubuntu系/Debian系/Yum系)によるローカルインストール
  • Homebrew経由のローカルインストール
  • Macのソース経由のローカルインストール

クラウド環境では、Kubernetes上に、Vitess Operatorを利用して配備することが可能です。最新版では、以下のKubernetesバージョンが推奨されます。(Vitessや、Vitess Operatorのバージョンにも依存します)

  • Kubernetesバージョン: v1.22.*, v1.23.*, v1.24.* ,v1.25.*

Vitessのライセンス

Vitessは、Apache2.0ライセンスです。Apache License(アパッチ・ライセンス)のコードが使用されていることの明記を条件に、ソースコードの自由な改変と公開が認められています。

参考情報

オープンソース年間サポートサービス

OpenStandiaではOSSを安心してご利用いただけるように、オープンソース年間サポートサービスをご提供しております。
サポートしているOSSは下記ページをご参照ください。

お気軽にお問い合わせください

関連OSS

  • PostgreSQL
    サポート対象

    PostgreSQL

    ポストグレエスキューエル。多くのOS・プラットフォームで稼動するオープンソースのリレーションナルデータベース管理システムです。

  • MySQL
    サポート対象

    MySQL

    マイエスキューエル。多くのOS・プラットフォームで稼動するオープンソースのリレーションナルデータベース管理システム

オープンソースに関するさまざまな課題、OpenStandiaがまるごと解決します。
下記コンテンツも
あわせてご確認ください。