せろひきの練習NEO

パソコン&スマートデバイス&サーバーテクノロジー

Windows AzureでWebSitesを使ってみる(その4)

ローカルで動いているWordPressをAzureに発行します。

まず、Azure上に空のPHP + MySQLサイトを作成します。そのために、以下よりWindows Azureポータルにログインします。

https://manage.windowsazure.com/

Windowsazurewebsites7_2

下の「+NEW」のところからWeb Siteを選択し、「Create With Database」を選択します。

Windowsazurewebsites9

任意の(誰にも使われていない)サイトの名前を入力します。またデータベースのインスタンスをこれまで作成していないときには"create a new MySQL database" を選びます(2つめ以上のサイトを作成するときには、"use a existing MySQL database"を選択し、すでにあるMySQLインスタンスに新しいデータベースを「追加」するようにします)。Regionは現在のところEast USで構わないと思います。

Windowsazurewebsites10

MySQLのデータベース名とリージョンを確認し下のClearDBのチェックボックスをチェックし、右下のチェックマークをクリックして完了です。データベース名は実質何でも構いません。
Windowsazurewebsites11
Web Sitesが作成されると、ポータル画面に以下のように作成されたサイトが表示されます。この"name"のところをクリックしてサイトの管理画面に入ります。

Windowsazurewebsites12_2

Publish Your appの下の"Download publishing profile"をクリックし、.PublishSettings拡張子のサーバー設定情報ファイルをローカルハードディスクに一時保存します。あるいは、"DASHBOARD"をクリックしQuick Startページを終了したあと、右下の"Download publishing profile"をクリックして同様に保存します。

Windowsazurewebsites13

Windowsazurewebsites14_4
ちなみに、DASHBOARD画面のSITE URLの文字列をクリックすると、いま作成されたWebサイトが表示されます。新規作成したばかりの状態では以下の表示になります。

Windowsazurewebsites15_3

DASHBOARD画面に戻ってグラフの更新アイコンをクリックすると、CPUが消費されている様子がわかります。

Windowsazurewebsites16
また、SCALEタブをクリックすると、以下のように割り当てCPUリソースの調整が可能です。何も設定しない状態ではShared CPU / 1インスタンスの最小の割り当てに設定されています。

Windowsazurewebsites17

さて、ここでWebMatrix2を起動し、「サイトを開く」「個人用サイト」でローカルに作成したサイトからAzureに発行したいサイトを選びます。

Webmatrix9
これまで一度も発行したことのないプロジェクトであれば、リモートタブを選ぶと「発行」「設定」の2つが選択可能なはずですが、どちらを選んでも次は「発行の設定」画面になります。ここで「発行の設定のインポート」のリンクをクリックし、先ほど保存した.PublishSettings拡張子の設定ファイルを読み込ませると、発行用の設定が自動的に入力されますので、これを保存します。またWebSitesが稼働状態であれば「接続の検証」ボタンを押すと接続確認が行われ、「正常に接続しました」と表示されます。

ちなみにここで、「サイト名」「宛先URL」の両方にサブフォルダ名を設定すると、WebSites上のサブフォルダに発行する設定ができ期待通り動作しました。

Webmatrix10_2

保存ボタンを押すと「発行の互換性テスト」が推奨されます。試しにやってみると以下のような表示になりました。たぶんPHP+MySQL以外の設定でサイトが作成されているエラーになるのでしょうか?

Webmatrix12
「発行」ボタンを押して開始した場合には引き続き"発行"が行われます。続行ボタンを押すと、「発行のプレビュー」画面になります。しばらく時間がかかりますが、問題ないとアップロードするファイル一覧と更新するデータベースが表示されます。

サイト作成時にデフォルトでインストールされていたファイルが必要ない場合には「リモートサーバーにあるファイルで自分のコンピュータ上には存在しないファイルを削除します」のチェックを入れます。

Webmatrix13

続行ボタンを押すと、WebMatrixは通常画面に戻りますが、下のほうにバックグラウンドでファイルを発行している様子が表示されます。やがて発行が終了すると、発行先のURLとともに「完了しました」と表示されます。このリンクをクリックすると、発行先のWebSiteがWebブラウザで表示されます。

Webmatrix13a

Webmatrix14_2
ところで、このままではAzure上でサイトが動いたままなので、もしサイトを止めるときにはダッシュボード画面で下の「STOP」を押します。さらに「DELETE」でサイト自体を削除してしまうことも可能です。

Windowsazurewebsites12_3

というわけで、WebMatrixでローカルに作成したサイトとまったく同じものがWindows Azure WebSites上に再現されました。で、同じくWebMatrix2のリモートタブにある「ダウンロード」を使うとAzure WebSites上のサイトの情報をローカル側にバックアップすることもできます。

データベースの中身まで含めてツールから簡単にアップロード/ダウンロードできるというのはftpレベルではなかなかできないことで、軽くショックを受けました。

(参考)WebMatrix からの直接アップロードを可能とする IIS Web 配置サービスの設定
http://blogs.msdn.com/b/osamum/archive/2011/02/08/webmatrix-iis-web.aspx