アンケートご協力のお願いgihyo.jpでは,2010年度に向けて豪華プレゼントが当たる読者属性アンケートを実施しております。ご協力ください。

gihyo.jp » DEVELOPER STAGE » 特集 » "Wakame"で始めるクラウドコントロール » 第4回 クラウド上でデータベースをスケールアウトさせる方法と実例

"Wakame"で始めるクラウドコントロール

第4回 クラウド上でデータベースをスケールアウトさせる方法と実例

今回は,データベースとして広く普及しているMySQLを例に,Amazon EC2上でMySQLのレプリケーション機能を用いてMaster-Slave構成を作り,そのSlaveを実に手軽に追加できるようにするための手順について説明します。

MySQLのレプリケーション機能でWakameは本領を発揮する

一般的に,MySQLのレプリケーションとは,Masterと呼ばれるデータの原本1つを,可能な限り同期複製させることが出来る機能のことを言います。複製されたものはSlaveと呼ばれ,1つのMasterに対して複数接続することが可能です。

より複雑な構成も取れるのですが,基本的なトポロジはスター型となります。レコードの読み出しクエリであれば,各Slaveへ分散させて性能を向上させることが出来ます。そのため,サイトのトラフィックが増加して来た時,まず最初に行われる対策として良く利用される機能でもあります。

これらの作業に必要な手順は,非常に複雑なので,MySQLのプロダクトをうまくコントロールする仕組みが不可欠です。早速Wakameでこの手順を自動化してみることにしましょう。

基本原理を理解する

まず,基本原理を理解するために,Amazon EC2とAmazon EBSによるMySQLレプリケーション設定方法を示しておきます。Wakameで簡単に実行できるようにする方法については,後ほど詳しく見ていくことにします。

Amazon EC2で試せるスクリプトの概要と準備

参考のために,MySQLとAmazon EBSを連動させた動作確認目的でシェルスクリプトを作成しました。ここで作成されたシェルスクリプトを使うだけでもMySQL Slave追加作業が簡略化されます。

スクリプトの動作処理は,大きく分けて3つです。

  1. MySQL Master用datadirとしAmazon EBS Volumeを生成
  2. 1で生成したAmazon EBS VolumeからAmazon EBS Snapshotを生成
  3. 2で生成したAmazon EBS SnapshotからMySQL Slave用datadirとしてAmazon EBS Volumeを生成

スクリプトの動作解説

スクリプトの動作前提条件は下記の通りです。

  1. Amazon EC2インスタンスが起動している事
  2. 起動しているAmazon EC2インスタンスにAmazon EC2 API Toolsの環境が整っている事
    ツールの整備方法を参考に環境設定してください。

また,スクリプトとして全部で6つのファイルが登場します。

  1. _wakame-common.sh
  2. wakame-ebs-mysql-master-create-volume.sh
  3. wakame-ebs-mysql-master-init.sh
  4. wakame-ebs-mysql-master-add-repl-user.sh
  5. wakame-ebs-mysql-master-make-snapshot.sh
  6. wakame-ebs-mysql-slave-restore.sh

各スクリプトの概要は,以下の通りです。

なお,Amazon EC2上でMySQLレプリケーション構成を構築するには,以下の手順が必要になりますので,詳細を知りたい方はぜひスクリプトの流れと合わせて追いかけて見てください。

_wakame-common.sh
  • 全スクリプトからincludeされるファイル
  • 共通設定項目
wakame-ebs-mysql-master-create-volume.h
  • Amazon EBS Volumeを新規生成
  • 生成したAmazon EBS Volumeをデバイス名指定でattach
  • Amazon EBS Volume上にファイルシステムを生成
  • Amazon EBS VolumeをMySQL Master用datadirとしてマウント
wakame-ebs-mysql-master-init.sh
  • MySQL Master用datadirのオーナーをmysqlへ変更
  • MySQL Master用datadirを初期化
wakame-ebs-mysql-master-add-repl-user.sh
  • レプリケーション用MySQLアカウントをMySQL Masterに作成
wakame-ebs-mysql-master-make-snapshot.sh
  • attach済みAmazon EBS Volumeのvolume-idを取得
  • MySQL Masterに対し"FLUSH TABLES WITH READ LOCK"でデータが更新されないようにテーブルをロック
  • MySQL Masterのポジション情報を取得
  • MySQL Slave用にmaster.infoを生成
  • MySQL Master用datadirからAmazon EBS Snapshotを生成
  • Amazon EBS Snapshot生成後,"UNLOCK TABLES;"でMySQL Masterのテーブルロックを解除
wakame-ebs-mysql-slave-restore.sh
  • MySQL Master用datadirをもとに生成したAmazon EBS Snapshotのsnapshot-idを指定し,Amazon EBS Volumeを新規生成
  • Amazon EBS Snapshotから生成したAmazon EBS Volumeを,Amazon EC2インスタンスIDとデバイス名を指定してattach
  • attachしたAmazon EBS VolumeをMySQL Slave用datadirとしてマウント

著者プロフィール

山崎泰宏(やまざきやすひろ)

株式会社あくしゅ所属。Wakameをやろうと思いつくところを担当。物静かな技術者の代わりに話をする。

URLhttp://blog.livedoor.jp/sparklegate/


藤原勝弘(ふじわらまさひろ)

株式会社あくしゅ所属。Wakameのコア実装を担当。コンシューマ向けサービスの開発や,外資金融系の堅牢なデータセンタ業務経験もあるカバーレンジの広い多才なプログラマ。

URLhttp://vcxzasdf.blogspot.com/


吉田将士(よしだまさひと)

株式会社あくしゅ所属。WakameをDBスケールなどに応用する開発を担当。大規模なデータセンタの運用経験を持っており,サーバ管理手順の自動化に興味津々な筋トレプログラマ。

URLhttp://blog.hansode.org/

コメント

コメントの記入

パスサポ

多数の情報処理技術者試験対策書籍の発行実績を誇る技術評論社がお届けする,資格試験合格サイト「めざせ! 情報処理試験 パスサポ」が開設されました。

ピックアップ

サクセスストーリーに続く,快適サーバー運用管理のヒント!

データの増大,煩雑な管理,システムダウン,セキュリティなど,迫りくる課題からシステム管理者の負担を軽くするポイントを解説します。

gihyo.jp インフラエンジニア情報局

ネットワークやITにかかわるあらゆる業種で必要とされるインフラエンジニアに向けた技術情報や心構え,その魅力について多角的に紹介。

テストエンジニア ステーション

いま,ITに関わるあらゆる開発業務で注目されつつあるテスト系エンジニアをターゲットにしたコンテンツサイトを展開します。

一行クイックアンケート

gihyo.jpで取り上げてほしいネタは?

※検索はページ右上の検索ボックスをご利用ください。

その他の連載

読むウェブ ~本とインタラクション

ディスプレイで読む活字とそのインタラクション(interaction:相互作用)について,最新Webを紹介しながら読み解いていく。

いま,見ておきたいウェブサイト

この連載では,国内外の最新のウェブサイトを隔週更新で取り上げ,これら最新サイトの特徴や素晴らしい部分を,さまざまな角度から解説していきます。

Windows phoneアプリケーション開発入門

Windows Marcketplace for Mobileがサービス開始され,作成したアプリケーションを個人でも世界をターゲットに公開できる環境が整ってきました。これを機にWindows phoneアプリケーションの開発をしてみませんか?

ここは知っておくべき!Windows Server 2008技術TIPS

5年ぶりのサーバOSとなったWindows Server 2008が出荷されて早2年。2009年にはR2が出荷され,再び注目を集めています。発売前から実施したトレーニングによって感じた,インフラエンジニアの方々に知っておいていただきたい機能を中心にご紹介します。

キーパーソンが見るWeb業界

本連載はWeb Site Expert/gihyo.jpとの連動企画です。阿部淳也, 長谷川敦士, 森田雄のお三方による,Web業界をテーマにした座談会です。

きたみりゅうじの聞かせて珍プレー

ソフトウェア開発の現場で体験したトホホな失敗,思わずうなる珍プレーをきたみりゅうじ氏が四コママンガで紹介。みなさんからの投稿もお待ちしてます!

ActionScript 3.0で始めるオブジェクト指向スクリプティング

野中文雄氏が,簡単なスクリプトは書いたことがあるという初級者を対象に,ActionScript 3.0の基本からクラス定義までを解説します。

まだ間に合う「ITパスポート」受験対策 原山先生の短期合格塾

この連載では,4月18日のITパスポート試験の受験に向けて,短い期間で効率良く受験対策を行う方法や,確実に得点するための裏ワザなどを伝授していきます。

連載一覧

gihyo.jp

  • DEVELOPER STAGE
  • ADMINISTRATOR STAGE
  • WEB+DESIGN STAGE
  • LIFESTYLE STAGE
  • SCIENCE STAGE
  • NEWS & REPORT

書籍案内

  • 新刊書籍
  • 書籍ジャンル一覧
  • 書籍シリーズ一覧
  • 新刊ピックアップ
  • ロングセラー
  • 電脳会議

定期刊行物一覧

  • Software Design
  • WEB+DB PRESS
  • Web Site Expert
  • 組込みプレス