【Next Tokyo ’24】8/1 - 2 パシフィコ横浜にて開催!最新技術やトレンド、顧客事例、専門家によるセッションなど、ビジネス変革を加速させるヒントが満載です。

MySQL エコシステム

DB-Engines によると、MySQL は世界で最も人気のあるオープンソース データベースの一つです。最初のバージョンが 1995 年にリリースされて以来、継続的に開発され、現在でも非常に人気のあるリレーショナル データベースとなっています。MySQL の成功は、幅広いオープンソース エディションと商用エディションで構成されるエコシステムにあります。MySQL はオンプレミスとクラウドの両方で広く使用されています。MySQL の主なクラウド サービス プロバイダは、Google CloudOracleAmazon Web Services(AWS)、Microsoft Azure です。

MySQL フレーバー

現在市場ではさまざまな種類の MySQL が市販されており、最適化、スケーラビリティ、クラスタリング、障害復旧などの機能を追加することで MySQL を拡張できます。MySQL をフォークして構築され、現在アクティブになっている主な 2 つのデータベースは、MariaDBPercona Server for MySQL です。

MySQL Community Edition と Enterprise Edition

Oracle は MySQL Community Edition と Enterprise Edition の両方を開発および保守しています。Enterprise Edition には Oracle が提供するテクニカル サポートが含まれており、MySQL Enterprise Monitoring、PAM 認証、強化されたセキュリティ、パフォーマンスとスケーラビリティの強化、エンタープライズ バックアップ、エンタープライズ監査、エンタープライズ クラスタ管理、スレッド プーリングなどの追加の機能があります。

MariaDB

MySQL の創業者たちは、オープンソースとして維持されることを保証しながら MariaDB を作成しました。MySQL の一部の機能(JSON サポート、マルチソース レプリケーション、並列スレッド レプリケーションなど)は、実際には MySQL よりも早く MariaDB でリリースされました。MySQL と比較した MariaDB の主なメリットは次のとおりです。

  • 分析用の ColumnStore や AWS S3 上のテーブルをアーカイブするための S3 エンジンなどの新しいストレージ エンジンの導入、MyISAM の最適化されたバージョンである Aria エンジン、高圧縮およびトラフィックの多いアプリケーション用の MyRocks、Cassandra、SphinxSE など
  • クエリの並列実行機能
  • スレッド プーリング。MySQL Enterprise Edition では利用できますが、コミュニティ エディションでは利用できません
  • MaxScale という名前のルーターを無料で使用可能
  • 複数の親ソリューション: Galera クラスタ

Percona

Percona は、MySQL 用 Percona Server の開発とメンテナンスを行っています。Percona は MySQL に加えて、長年にわたって多大な労力をかけて MySQL を最適化し、新機能を導入しました。MySQL よりも Percona を使用する主な利点は次のとおりです。

  • 改善された InnoDB の全文検索、改善されたメモリ ストレージ エンジンとフラッシュ メカニズム、より多くのハッシュ/ダイジェスト関数、InnoDB テーブルスペース、バイナリログ、一時ファイルに構築された暗号化のサポート
  • 並列二重書き込みバッファの導入による最適化
  • 完全バックアップと増分バックアップのオプションを備えたホット バックアップ用の XtraBackup ツール
  • MyRocks と Toku のストレージ エンジンのサポート
  • テーブルごと、インデックスごと、クライアントごと、ユーザーごと、スレッドごとのパフォーマンス カウンタなどの高度なトラブルシューティング手段を提供
  • PAM 認証と監査ロギング。MySQL の Enterprise エディションでは利用できますが、コミュニティ エディションでは利用できません
  • Pt Toolkit(MySQL を管理するための多くのオプションがあるユーティリティ サービス、Percona が開発)

どのフレーバーを選ぶのがよいでしょうか。

アプリケーションのニーズによって、どのデータベースを選択するかが決まります。データベースごとに、特定のユースケースをターゲットとする独自の機能があるためです。たとえば、アプリケーションで分析が必要な場合は、Percona の clickhouse または MariaDB のカラムストアを使用できますが、MySQL にはそのようなオプションがありません。同様に、コミュニティ バージョンの MySQL では使用できないスレッドプール機能を使用する場合は、Enterprise MySQL か、Percona と MariaDB のオープンソースのスレッドプール機能を選択する必要があります。

クラウド内の MySQL

クラウド データベースは、パブリック クラウド環境またはハイブリッド クラウド環境で動作するように構築されたデータベースで、組織内のデータを整理、保存、管理できるようになります。クラウド データベースは、マネージドの DBaaS(Database as a Service)として提供されるか、クラウドベースの仮想マシン(VM)にデプロイされ、自社の IT チームに管理されます。マネージド MySQL の主要なクラウド プロバイダは次のとおりです。

Google Cloud

Google Cloud は、ユーザーが自己管理する必要がある MySQL の仮想マシン ホスト バージョンと、フルマネージド サービスである Cloud SQL の両方を提供します。

アマゾン ウェブ サービス(AWS)

Amazon Web Services(AWS)は、MySQL 用の VM ホスト オプションと RDS 形式のフルマネージド ソリューションを提供します。AWS には、追加機能を備えた MySQL の MySQL 互換製品である Aurora の製品もあります。

Azure SQL Database

Azure は、他のクラウド ベンダーと同様に、MySQL の 2 つのデプロイモデルを提供します。Azure VM 上の MySQL の形式の仮想マシン オプションと、Azure Database for MySQL の形式のフル マネージド バージョンです。

Oracle Cloud

Oracle では、仮想マシンで MySQL をホストできます。また、MySQL HeatWave データベース サービスという新しいフルマネージド サービスも生み出されました。

Digital Ocean

Digital Ocean は、仮想マシン上で MySQL をホストする機能も備えています。また、MySQL 用のフルマネージド ホスティング オプションも提供されます。

高可用性(HA)ソリューションまたはクラスタ ソリューション

多くの企業が MySQL の拡張に取り組み、MySQL データベースのフェイルオーバーと高可用性を実現するプロダクトを開発してきました。MySQL で直接使用するツールもあれば、MySQL のソースコードを修正して高可用性クラスタや複数の親クラスタを提供する個別のプロダクトを作成するものもあります。一般的な MySQL の HA およびスケーラビリティ ソリューションには、次のようなものがあります。

  • MySQL のグループ レプリケーションと InnoDB クラスタ

InnoDB クラスタは、少なくとも 3 つの MySQL Server インスタンスで構成され、高可用性とスケーリング機能を提供します。InnoDB クラスタは、MySQL Shell、MySQL Router、グループ レプリケーションを使用する MySQL サーバーで構成されます。詳しくはこちらをご参照ください。

Percona XtraDB クラスタは、高可用性、並列レプリケーション、スケーラビリティの機能を備えた同期クラスタリング ソリューションです。Percona XtraDB クラスタには ProxySQL 管理ツールが含まれており、ProxySQL を使用して Percona XtraDB クラスタノードを自動的に構成します。詳しくはこちらをご参照ください。

  • MariaDB Galera クラスタ

MariaDB Galera クラスタ は、高可用性とスケーラビリティを備えた MariaDB 用の仮想同期型のマルチプライマリ クラスタです。MariaDB サーバーと Galera wsrep プロバイダ ライブラリを利用しています。自動ノード参加、真の並列レプリケーション、マルチプライマリ トポロジなどの機能を提供します。詳しくはこちらをご参照ください。

  • 続くタングステン クラスター

Tungsten クラスタは、MySQL データベースをクラスタとしてデプロイして管理するために必要なすべてのコア コンポーネントを含む、使いやすい単一のパッケージを提供します。ジオクラスタリング ソリューションを提供します。Tungsten Manager、Replicator、Connector、データノード、ダッシュボードで構成されています。詳しくはこちらをご参照ください。

  • MariaDB Xpand(旧称 ClustrixDB)

MariaDB Xpand は、ACID 準拠の分散 SQL、高可用性、フォールト トレランス、書き込みスケーリング、水平方向のスケールアウトをトランザクション ワークロードに提供します。MariaDB Xpand は MariaDB Enterprise のコンポーネントです。これは、1 つ以上の MaxScale ノードと 3 つ以上の Xpand ノードで構成されます。詳しくはこちらをご参照ください。

  • ScaleArc

ScaleArc は、高可用性を実現するデータベース ロード バランシング ソフトウェアです。詳しくはこちらをご参照ください。

  • Vitess

Vitess にはシャーディング機能が組み込まれているため、アプリケーションにシャーディング ロジックを追加せずにデータベースを拡張して、高可用性とスケーラビリティを実現できます。詳しくはこちらをご参照ください。

  • フェイルオーバー用の標準レプリケーションを提供するツール: MHA、ProxySQL、MaxScale、Orchestrator
  • Google Cloud、Oracle、AWS、Azure などのクラウドベースのサービスは、MySQL 用の社内 HA を提供します

MySQL ツール

MySQL ツールは、ウェブベースのコマンドライン インターフェース(CLI)とグラフィカル ユーザー インターフェース(GUI)のすべての形式で提供されます。MySQL には、データベースの設計、開発、管理、バックアップ、パフォーマンス モニタリング、アラートのための幅広いオープンソース ツールと商用ツールが用意されています。

GUI を使用した一般的な MySQL モニタリング ツールは次のとおりです。

Percona Monitoring and Management、Prometheus、MySQL Enterprise Monitor、New Relic、SolarWinds、HeidiSQL、AppDynamics、Datadog、SQLyog。

一般的な管理、開発、ユーティリティ ツールには次のようなものがあります。

  • GUI ベース - MySQL Workbench、HeidiSQL、DBeaver、dbForge Studio、Navicat、SQLyog
  • CLI ベース - Percona ツールキット、Ghost

よく使用されるツールの詳細:

  • MySQL Workbench - MySQL が所有し、高度な機能を備えた Community エディションと Enterprise エディションで利用可能
  • Percona Monitoring and Management(PMM) - Percona が開発し、無料で利用可能
  • HeidiSQL - Ansgar Becker によって開発され、無料で利用可能
  • Percona ツールキット - Percona が開発し、無料で利用可能
  • Toad - クエストが所有する、有料ツール
  • phpMyAdmin - MySQL を管理するための無料のオープンソース ウェブベースのツール
  • DBeaver - オープンソース コミュニティによって開発され、DBeaver が管理する高度な機能を備えたコミュニティ エディションとエンタープライズ エディションで利用できます
  • Navicat - CyberTech が所有する、有料ツール
  • SQLyog - Webyog が所有する、有料ツール

他にも、アラート メカニズムでエラー率、トラフィック、クエリパターンを分析するためのグラフを備えた主要なモニタリング ツールとして、New Relic、Zabbix、Cortex、Prometheus、Grafana があります。

コンテナや Kubernetes を使用して MySQL を実行する

最近では、Docker コンテナ イメージを使用して Kubernetes クラスタでデータベースを実行することが一般的になってきています。コードを使用したデータベース管理、簡単かつ迅速なデプロイ、データ保護、アプリケーションからの分離、共有リソースのユーザビリティに役立ちます。基本的に、Docker のすべての利点をデータベース システムで活用できます。MySQL で使用できる Kubernetes オペレーターもいくつかあります。しかし、この分野には多くの改善の余地があります。

MySQL をお試しいただく際は、

Google Cloud は、MySQL のフルマネージド サービスである、Cloud SQL for MySQL を提供しています。

Cloud SQL for MySQL がイノベーションにどのように役立つかをご覧ください。 ドキュメントを見る

次のステップ

$300 分の無料クレジットと 20 以上の Always Free プロダクトを活用して、Google Cloud で構築を開始しましょう。

Google Cloud
  • ‪English‬
  • ‪Deutsch‬
  • ‪Español‬
  • ‪Español (Latinoamérica)‬
  • ‪Français‬
  • ‪Indonesia‬
  • ‪Italiano‬
  • ‪Português (Brasil)‬
  • ‪简体中文‬
  • ‪繁體中文‬
  • ‪日本語‬
  • ‪한국어‬
コンソール
  • Google Cloud プロダクト
  • 100 種類を超えるプロダクトをご用意しています。新規のお客様には、ワークロードの実行、テスト、デプロイができる無料クレジット $300 分を差し上げます。また、すべてのお客様に 25 以上のプロダクトを無料でご利用いただけます(毎月の使用量上限があります)。
Google Cloud