高可用性とデータ・シャーディングを実現できるMySQL Fabricとは?

MySQL Fabricとは?MySQL Fabricは、MySQLサーバー群を管理する統合型のフレームワークです。MySQL Fabricを使うことにより、高可用性(HA)とデータ・シャーディングによる拡張性を実現できます。図1: MySQL FabricMySQLのレプリケーション機能を使って高

山﨑 由章

2014年9月17日 20:00

MySQL Fabricとは?

MySQL Fabricは、MySQLサーバー群を管理する統合型のフレームワークです。MySQL Fabricを使うことにより、高可用性(HA)とデータ・シャーディングによる拡張性を実現できます。

図1: MySQL Fabric

MySQLのレプリケーション機能を使って高可用性構成を実現している場合、マスターのサーバーに障害が発生した時に、スレーブのサーバーを新しいマスターに昇格させるフェイルオーバー処理が必要になります。このフェイルオーバー処理を自動化するために、MySQL 5.6ではMySQL Utilities(※)にmysqlfailoverという機能が追加されました。

※MySQL Utilitiesは、Pythonでかかれた便利なスクリプト集です。詳細は以下の記事も参考にして下さい。

[参考]Pythonで作られた便利なコマンドラインツール MySQL Utilities

mysqlfailoverを使うことでMySQLサーバーのフェイルオーバー処理を自動化できますが、その際にアプリケーションからの接続先を新しいマスターへと切り替える必要があります。また、スレーブのサーバーを複数台で構成し、参照処理の負荷分散を実現していた場合も、フェイルオーバーによってスレーブサーバーのうち1台がマスターに変更されるため、アプリケーションからの接続先を切り替える(1台のスレーブサーバーを負荷分散の対象から外す)必要があります。

このような課題を解決するために登場したのが、今回ご紹介するMySQL Fabricです。MySQL Fabricを使うと、マスターのサーバーに障害が発生した際のフェイルオーバー処理を自動化できるだけでなく、フェイルオーバーによってMySQLサーバーの構成が変更された場合でも、アプリケーションからMySQLサーバーへの接続先を切り替える必要がありません。アプリケーションを変更する必要無く、そのまま使い続けられます。

またMySQL Fabricでは、参照処理/更新処理の拡張性も提供しています。システムの規模を拡張する際に「処理性能を向上させたい」という要望が出てくると思いますが、MySQL Fabricを使うとアプリケーションを変更することなく、MySQLサーバーの台数を増やすだけで負荷分散により処理性能を向上できます。参照処理の性能向上はスレーブサーバーの台数を増やすことで、また更新処理の性能向上はデータ・シャーディング(分割)によって実現できます。そしてスレーブサーバーの台数を増やしたり、データ・シャーディングを行ったりした場合でも、アプリケーションは変更せずにそのまま使い続けられます。

この機能は昨年labs.mysql.com(※)で発表されましたが、反響が大きかったため開発が活発に進み、2014年5月27日に製品版(GA)となりました。

※labs.mysql.comは、テスト用に、より先進的、実験的な機能を含んだMySQLを提供しています。テスト目的であるため、labs.mysql.comの製品を本番環境では使用しないでください。

MySQL Fabricは、MySQL Utilitiesの一部として提供されています。そして、内部でMySQL 5.6で追加されたGTIDモードによるレプリケーションやレプリケーションユーティリティ(MySQL Utilitiesのレプリケーション関連の機能)を活用しています。そのため、管理するMySQLサーバー群はMySQL 5.6以降(※)が対象となります。GTIDとレプリケーションユーティリティの概要については、過去の連載でも紹介していますので、それぞれの概要についてはこちらの記事もご参照下さい。

※記事執筆時点(2014年9月時点)でのサポート対象はMySQL 5.6のみですが、今後のバージョンについても製品版(GA)リリース後に、サポートされる予定です。

また、MySQL Fabricを使用するためにはMySQL Fabricに対応したコネクタを使用する必要があります。2014年9月時点で対応しているコネクタはPHP、Python、Javaですが、今後他の言語のコネクタも追加予定です。また、O/RマッパーのHibernateとDoctrineもサポートされています。

この記事のキーワード :

人気記事トップ10

人気記事ランキングをもっと見る

企画広告も役立つ情報バッチリ! Sponsored

ClickHouse Cloudが実現した広告運用SaaS「ATOM」のデータ基盤革新、パフォーマンスを向上しながら、運用負荷とコストを削減 11月11日 6:20 AIで開発が加速する時代、品質保証はどう変わる? Tricentisが示すAIエージェント活用の実像 11月9日 6:45 悪用までの猶予が「1分」に迫るフロンティアAI時代に開発と本番を貫く脆弱性管理が必要 10月29日 8:30 欧州CRA対応とSBOM運用。AI生成コードのOSS混入問題の対策とは ――スニペット単位で検出する「FossID」「Insignary Clarity」によるSBOM運用 9月16日 6:40 PostgreSQLからTiDBへ、稼働中SaaSで進める段階的DB移行の実践と再設計への展望 9月7日 6:30 機能安全開発におけるGoogleTestの活用を支援!「Parasoft C/C++test CT」で実現する効率化&AI連携 4月14日 6:30 【CNDW2025】Grafanaが明かす「オブザーバビリティの哲学」ー最小限の労力で実用的なインサイトを得るには 1月23日 6:30 【CNDW2025】プロダクト急増に備える基盤刷新 ーウェルスナビがECSからEKSへの移行で得た知見とは 1月15日 6:30 【CNDW2025】250環境を5人で運用、構築時間は30分に ーKINTOテクノロジーズが語るインフラ基盤組織の作り方 2025年12月18日 6:30 新たな自動化で熱視線! AIエージェントの「推論能力」を支える2つのコンポーネントとは? 2025年11月28日 6:30