Vitess とは?

Vitess

Vitess

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

OSSの保守サポートサービスの内容はこちら OSSの導入については、こちらのフォームからお問い合わせ下さい OSS全般の事例紹介はこちら

Vitessバージョンアップ情報

すべてを見る

更新日:2022-10-18

Vitessの概要

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

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

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

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

Vitessの概要
参考: https://vitess.io/docs/14.0/overview/architecture/

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

コンポーネント 役割
VTGate アプリケーションからのトラフィックを正しいVTTabletにルーティングし、統合された結果を返す軽量プロキシサーバーです。MySQLプロトコルとVitess gRPCプロトコルの両方に対応しています。
VTTablet mysqldプロセスと同じマシン上で、vttabletプロセスとして実行され、各VTTabletがタブレットタイプに応じた役割をこなします。タブレットタイプとしては、primary、master(非推奨)、replica、rdonly、 backup、restore、drainedがあります。
Topologyサービス Topologyサービスは様々なサーバーで実行されるバックエンドプロセス(メタデータストア)の1つです。各種Topologyデータの格納および、分散ロックサービスを提供します。
頻繁に変更されないVitess全体のデータを格納するグローバルTopologyサービスと、各セルに応じた情報が格納されるローカルTopologyサービスがあります。
vtctl Vitessクラスター管理で使用されるコマンドラインツールです。
vtctld Topologyサービスに保存されている情報を参照できるようにするためのHTTPサーバーです。トラブルシューティングや、サーバーの現在の状態を把握するのに利用されます。

参考: https://vitess.io/docs/14.0/concepts/

TOPに戻る

Vitessの主な特徴

パフォーマンス ・パフォーマンスを最適化するために、フロントエンドアプリケーションからの多重クエリーをMySQLコネクションプールで処理
・まだ実行中のクエリーがある状態で、同一のクエリーを受け付けた場合に、その実行中のクエリーの結果を再利用
・同時実行トランザクション数の制限や、全体的なスループットを最適化するためにデッドラインを管理
保護 ・クエリーの書き換えと無害化
・クエリーのブラックリストをカスタマイズして、問題が発生する可能性があるクエリーの実行抑止
・クエリーキラーにより応答が遅すぎるクエリーの停止
・接続されたユーザーに基づきテーブルごとにアクセスコントロールリスト(ACL)の設定が可能
モニタリング ・パフォーマンス分析ツールによるデータベースのパフォーマンスの監視、診断、分析が可能
構成管理ツール ・クラスター管理ツール
・Webベースの管理GUIを提供
・複数のデータセンター/地域で動作するような設計
シャーディング ・シームレスな動的リシャーディングが可能
・垂直および水平シャーディングをサポート
・プラグインによってカスタマイズが可能な複数のシャーディングスキームを利用可能

参考: https://vitess.io/docs/14.0/overview/whatisvitess/#features

TOPに戻る

Vitessの動作環境

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

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

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

  • Kubernetesバージョン: v1.20.*, v1.21.*, v1.22.*

参考: https://github.com/planetscale/vitess-operator

TOPに戻る

Vitessと類似の機能を持つOSS

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

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

TOPに戻る

Vitessのライセンス

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

TOPに戻る

Vitessの公式サイト

https://vitess.io/

TOPに戻る

Vitessのダウンロードサイト

https://github.com/vitessio/vitess/releases

TOPに戻る

Vitessのサポート

NRIではお客様のご要望に応じて様々な支援ができるサービスをご用意しました。
詳細は下記ページをご確認ください。

TOPに戻る

OpenStandiaに関する
資料請求・お問い合わせはこちら

  • 資料請求
  • お問い合わせ

※定期的にメンテナンスを実施しておりますが、一部情報が古い場合がございます。ご了承ください。

  • OpenStandiaサポート対象オープンソース|50種類以上のOSSのサポートをご提供します。
  • 人気midPoint
  • 人気Keycloak
  • 注目MongoDB
  • ForgeRock AM(OpenAM)
  • ForgeRock IDM(OpenIDM)
  • MongoDB
  • Postfix
  • Apache HTTP Server
  • ZABBIX
  • PostgreSQL
  • Apache Struts
  • Apache Kafka
  • Apache Hadoop
  • Apache Spark
  • Spring Framework
  • Apache Tomcat
  • Solr
  • iBATIS
  • DRBD
  • MySQL
  • JBoss
  • Ruby on Rails
  • Jaspersoft
  • OpenLDAP
  • Apache log4j
  • Apache Subversion
  • ForgeRock DS(OpenDJ)
  • Pacemaker
  • Samba
  • Red Hat Enterprise Linux
  • Nginx
  • BIND
  • Dovecot
  • Pentaho
  • sendmail
  • Courier-IMAP
  • ForgeRock DS(OpenDJ)
  • Heartbeat
  • Hibernate
  • Hinemos
  • MyBatis
  • MySQL Cluster
  • Apache Axis2
  • Squid
  • OpenSSO