MySQLをチューニング,そしてスケールアップ/スケールアウトへ

第10回(最終回) クラウド環境によるスケールアウト構成

この記事を読むのに必要な時間:およそ 3 分

MySQL Fabricによるシャーディング構成

レプリケーション構成では参照性能の向上は実現できますが,更新処理性能の向上や格納できるデータサイズはマスタサーバのスペックによって制限されてきます。複数のレプリケーション構成を用意して,データの一部分を一組のレプリケーション構成に格納して全体として大きなデータの管理を行うシャーディングを利用することによって,より多くのデータ更新や大量のデータの管理が可能となります。

MySQL Fabricはこのレプリケーション機能を活用したシャーディング構成を構築および管理するフレームワークとなります。シャーディング構成全体はMySQL Fabricノードが管理し,mysqlfabricコマンドから一組のレプリケーション構成であるグループの作成やグループへのMySQLサーバの登録,シャーディングの場合は格納する値の範囲の定義などを行います。なおMySQL FabricはPythonで書かれたオープンソースのユーティリティコマンド群のMySQL Utilitiesに含まれています。

図1 MySQL Fabricの構成概要注1

図1 MySQL Fabricの構成概要(注1)

注1)
出典:MySQL Fabric

アプリケーションからデータへアクセスの際は,MySQL Fabricに対応したコネクタ(データベース接続部品)が,まずMySQL Fabricノードにアクセスしてどのサーバがどの値を持っているかのマッピング情報を取得し,参照更新を行います。MySQL Fabricノードは管理対象のMySQLサーバの稼働監視も行っており,マスタサーバに障害が発生した場合などはスレーブからマスタに自動的に昇格させ,マッピング情報も更新します。アプリケーションは新しいマッピング情報を元に,新しいマスタにアクセスできるため,障害発生時にもアプリケーションへの影響を最小限にすることが可能です。

MySQL FabricはOpenStackとの連携が可能です。MySQL FabricからOpenStack Novaにサーバプロビジョニングの指示を出すことが可能で,生成されたサーバ上のMySQLサーバがどのグループのマスタまたはスレーブなのかはMySQL Fabricノードのマッピング情報に記録されます。このため新規に生成されたMySQLサーバをアプリケーションから透過的に利用することが可能となります。

参考URL
Elastic Scalability in MySQL Fabric Using OpenStack

MySQL Fabric 1.5ではOpenStack Novaとの連携のみが可能ですが,AWSのサービスやOpenStack Troveとの連携も準備がされています。MySQL Utilities 1.5.3のリリースノートでも⁠MySQL Fabric was improved to support AWS and Trove.⁠と書かれており,対応は済んではいないものの必要な改良を行っています。

参考URL
Changes in MySQL Utilities 1.5.3 (2014-11-04)

おわりに

これまで全10回に渡ってMySQLのチューニングや,単体では収まらない規模感のシステムで求められるスケールアウト構成などについて説明してきました。現在もMySQL 5.7のリリースに向けてスケールアップおよびスケールアウトの両面で活用できる多くの改良が進められていますのでご期待ください。これまでご愛読いただきありがとうございました。

著者プロフィール

梶山隆輔

MySQL Sales Consulting Senior Manager。

日本オラクル(株)において,MySQLのお客様環境への導入支援や製品の技術解説を担当するセールスコンサルタントチームのアジア太平洋地域リーダー。多国籍なMySQL部門にて,オーストラリア,インド,台湾などに在籍するチームメンバーを束ね,アジア太平洋地域の25以上の国や地域でのMySQL普及やビジネスの拡大をミッションとする。