MySQL エコシステム

DB エンジンによると、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 という会社は、Percona Server for MySQL の開発とメンテナンスを行っています。Percona は、MySQL 上で長年にわたって膨大な量の作業を行い、MySQL の最適化と新機能の導入を行いました。MySQL ではなく Percona を使用する主なメリットは次のとおりです。

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

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

アプリケーションのニーズによって、どのデータベースを選択するかが決まります。データベースごとに、特定のユースケースをターゲットとする独自の機能があるためです。たとえば、アプリケーションで分析が必要な場合は、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 Database Service と呼ばれる新しいフルマネージド サービスも登場しました。

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 サーバーで構成されます。詳しくは、第 23 章 の InnoDB クラスタをご覧ください。

Percona XtraDB クラスタは、高可用性、並列レプリケーション、スケーラビリティを提供する同期クラスタリング ソリューションです。Percona XtraDB クラスタには、ProxySQL を使用して Percona XtraDB クラスタノードを自動的に構成する ProxySQL 管理ツールが含まれています。詳細については、Percona XtraDB クラスタをご覧ください。

  • MariaDB Galera クラスタ

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

  • 継続した Tungsten クラスタ

Tungsten Cluster は、MySQL データベースをクラスタとしてデプロイおよび管理するために必要なすべてのコア コンポーネントを含む、単一の簡単なパッケージを提供します。ジオ クラスタリング ソリューションを提供します。Tungsten Manager、Replicator、コネクタ、データノード、ダッシュボードで構成されています。詳しくは、継続的なタングステン クラスターをご覧ください。

  • MariaDB Xpand(旧 ClustrixDB)

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

  • ScaleArc

ScaleArc は、高可用性を実現するデータベース ロード バランシング ソフトウェアです。詳細については ScaleArc をご覧ください。

  • Vitess

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 ツールキット、ゴースト

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

  • MySQL Workbench - MySQL が所有し、高度な機能を備えた Community Edition と Enterprise Edition で利用可能
  • Percona のモニタリングと管理(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