LAMP開発者のためのWindows Azure講座

第6回Azure上でのMySQLの起動その3]

AzureドライブでMySQLを起動するための準備

前回までに、Windows AzureのWorkerRoleでMySQLを動作させ、phpMyAdminを使ってMySQLを管理する手順を紹介しました。ただ、このままではインスタンス(仮想サーバ)の再起動にともなってMySQLのデータが消えてしまいますので、データを永続化する工夫が必要になります。MySQLのデータを永続化する1つの方法は、AzureドライブというWindows Azureのストレージサービスを利用するものです。

Azureドライブは、Azureのストレージサービスの1つであるBlobストレージにVHD(仮想ディスク)をアップロードし、それをAzureの仮想サーバにマウントしてNTFSドライブとして利用するものです。仮想ディスクにあらかじめMySQLの実行ファイルやデータファイルを格納しておくと、Azure上のローカルディスクと同じようにアクセスでき、インスタンスが再起動した場合でもデータが保持されるようになります。

今回は、Azureドライブを利用してMySQLを起動する前段階として、Windows Azureの管理ポータルでストレージサービスを利用できるようにする手順と、VHDを作成してMySQLの関連ファイルを格納し、ストレージサービスにアップロードする手順を紹介します。

管理ポータルでストレージアカウントを作成

まず、ストレージアカウントの作成は、Windows Azure Platformの管理ポータルで行います。管理ポータルのトップページ左側「ホステッドサービス、ストレージアカウント、CDN」をクリックして、ストレージアカウントを選択すると、以下のような画面になります。

図1 管理ポータルで「ストレージアカウント」を選択
図1 管理ポータルで「ストレージアカウント」を選択

有効なサブスクリプションが表示されるので、サブスクリプションを選択し、新規ストレージアカウントをクリックします。すると、次のようなダイアログが表示されます。

図2 ストレージアカウントの新規作成画面
図2 ストレージアカウントの新規作成画面

URLの欄は、ここでは「samplestorage001」とします。地域は、東アジアとしておきます。ストレージサービスには、ブロブ(blob⁠⁠、テーブル(table⁠⁠、キュー(queue)の3種類があり、指定した文字列に.blob.core.windows.net、.table.core.windows.net、.queue.core.windows.netを加えたものがそれぞれのURLとなります。

OKボタンを押すと、数分後にストレージアカウントが「作成済み」になり、右側のプロパティに、⁠プライマリー アクセスキー」⁠セカンダリー アクセスキー⁠⁠BlobのURL」などの情報が表示されます。

図3 ストレージアカウントのプロパティ
図3 ストレージアカウントのプロパティ

ストレージにアクセスするには、このアクセス キーが必要です。非表示になっていますが、⁠表示」ボタンを押すと、次のようなダイアログが表示され、アクセスキーを知ることができます。また、右側のボタンでクリップボードにコピーすることもできます。

図4 ストレージアクセスキーの表示
図4 ストレージアクセスキーの表示

ストレージ管理ツールのインストール

Windows Azureの管理ポータルからはストレージの中身を参照することはできません。ストレージにアクセスしてファイルを管理するためには、IDEに備わるストレージ管理機能を利用するか、専用のストレージ管理ツールを利用します。

Windows Azure PDTの場合、リポジトリから「Windows Azure Storage Explorer」をインストールすれば、ストレージへのアクセスができるようになります。第2回でWindows Azure PDTをインストールするときに行なったように、HelpメニューからInstall New Softwareを選択し、以下のように、Windows Azure Storage Explorerを選択します。

図5 Windows Azure PDTにストレージ管理機能を追加
図5 Windows Azure PDTにストレージ管理機能を追加

一方、使い勝手や機能を考慮して、専用のストレージ管理ツールを利用する場合、フリーソフトとして公開されている「CloudXplorer」「Azure Storage Explorer」がよく用いられます。

CloudXplorerはBlobストレージ専用の管理ツールで、Azure Storage ExplorerはBlob、Table、Queueの各ストレージに対応した管理ツールです。ここでは、CloudXplorerをインストールして、BlobストレージにAzureドライブをアップロードしてみましょう。

まず、CloudXplorerをインストール、起動後に、FileメニューからAccountを選択します。すると、以下の「Manage accounts」画面が表示されます。

図6 CloudXplorerのアカウント管理画面
図6 CloudXplorerのアカウント管理画面

Newを押して、Windows Azure accountを選択します。次の画面で、Nameにさきほど作成した「samplestorage001⁠⁠、Secret Keyにさきほどのプライマリアクセスキーをコピー&ペーストします。

図7 ストレージアカウントとアクセスキーを入力
図7 ストレージアカウントとアクセスキーを入力

次に、作成されたsamplestorage001を選択し、空白が表示されているメイン画面上で右クリックし、NewからContainerと進みます。Containerは、Blobストレージを格納する最上位のディレクトリで、コンテナごとに公開/非公開などのポリシーを設定できます。ここでは「mysql」としておきます。コンテナを作成すると、以下の画面になります。

図8 コンテナ「mysql」を作成
図8 コンテナ「mysql」を作成

このmysqlコンテナ内に、Azureドライブとして利用する、mysql関連ファイルを格納したVHDをアップロードします。

MySQLを格納したVHDの作成とアップロード

Azureドライブとして利用できるVHDは、NTFS形式でフォーマットされた容量固定のディスクとなります。Windows 7の場合、コマンドラインツールのDiskpart.exeを利用して、以下の手順で作成することができます。MySQLのファイル容量が100MB超であることを踏まえ、ここでは250MBのディスクをファイル名「disk.vhd⁠⁠、ラベル「VHD」で作成しています。

DISKPART> create vdisk file="c:\disk.vhd" maximum=250 type=fixed
DISKPART> select vdisk file="c:\disk.vhd"
DISKPART> attach vdisk
DISKPART> create partition primary
DISKPART> format fs=ntfs label="VHD" quick 
DISKPART> assign letter=x:

最後の行を実行すると、ローカルコンピュータのXドライブに作成したVHDがマウントされますので、XドライブをWindowsエクスプローラーで開き、MySQLファイルをコピーします。ここでは、第4回でインストールしたC:\Program Files\MySQL\MySQL Server 5.5以下のファイルをコピーすることにします。

コピーするのは、bin、data、include、lib、shareの各フォルダとmy.iniです。以下のようにmysqlフォルダを作成し、その配下にコピーします。

図9 MySQL実行ファイルなどをVHDにコピー
図9 MySQL実行ファイルなどをVHDにコピー

実際にAzureドライブとして起動させるには、my.iniとdataを修正しておく必要がありますが、ひとまずここでは、ファイルを修正せずにアップロードの手順だけ紹介することにします。

MySQLファイルのコピーが終わったら、マウントしたVHDを取り外します。VHDを取り外すには、Diskpart.exeのコマンドライン上から、下記のコマンドを実行します。

DISKPART> detach vdisk

なお、VHDの作成は、GUIからも可能です。その場合、スタートメニューから「Create and format hard disk partitions」などを検索して「Disk Management」を起動します。

次に、CloudXplorerに戻り、mysqlコンテナを選択して、空白が表示されているメイン画面上を右クリックし、⁠Upload page blob」を選びます。

図10 CloudXplorerでUpload page blobを選択
図10 CloudXplorerでUpload page blobを選択
図11 作成したdisk.vhdを選択しアップロード
図11 作成したdisk.vhdを選択しアップロード

さきほど作成したC:\disk.vhdを選択すると、アップロードが始まります。容量250MBのファイルですので、それなりに時間がかかると思います。

Azureドライブを利用するうえで必要になるストレージアカウントの作成とVHDの作成、アップロードの手順は以上です。次回は、実際にAzureのインスタンスでAzureドライブをマウントし、MySQLを起動させて、データが永続化されることを確認してみたいと思います。

おすすめ記事

記事・ニュース一覧