Windows Azure VMRoleを使ってみた

マイクロソフトクラウドサービスAzureのIaaSであるVMRole、達人達の日本語の情報も手にはいるようになったのでやってみました。あっ、ちなみに日本のマイクロソフトからのメールによるとAzureは「アズー」と書いてありました。「アジュール」じゃなくて「アズー」、ちょっとジャングルの生き物みたい(^^ゞ
 
話は戻って、VMRoleですが以前のASP.NETのAzureと同じく仮想マシンを立ち上げるまでいろいろ苦労しました。基本的には、下記のアットマークITの記事の手順どおりにやっていけばできます。
特集:Windows Azure SDK 1.3の新機能(後編)
この記事、前編、中編、後編とあるんですが、VMRoleに関する後編から読んで、必要なところだけ前に戻って読むのが近道な感じです。
 
さて、ここでは上記の記事などではサラっと流されているけど、私のように趣味でクラウド仮想マシンを手に入れたい人向けに補足したいと思います。
 
まず原理的には普通にWindows Server 2008 R2(x64)にはHyper-Vという仮想マシンがありますが、そこでWindows Server 2008 R2(x64)を作って、そのディスクイメージであるVHDファイルをアップロードして動かすという感じです。
 
はい、ここでスルーしたことがあります。Hyper-VはServerだけの機能(Windows的には役割)です。つまりWindows7だけでは開発できません。Windows7にはよく似た機能にVirtual PCあるじゃん。あれもVHDファイルじゃんって思いますよね。さっきの文を読み返してください。VMRoleがサポートしてるのはx64だけです。そしてなんとWindows7Virtual PCってWindwos7自身がx64でもx64をサポートしていないんです。ショック!!ちょっと会社の開発用Serverをお借りしてHyper-VにOSをインストールしてVHDをこさえました。(ここで当然ながらHyper-VでインストールするためにOSのISOイメージのダウンロードも時間がかかりました)
 
そしてよっしゃアップロード!又つまづいた。アップロードにはSDKについているコマンドラインのcsuploadってのを使うのですが、このコマンドはプロキシやファイアウォールで止められる!指定する引数とかもない!!っで、今度はそこらへんにあったXPにVHDをコピーして、XPにAzure SDKを入れて無謀にもFOMA 3G経由ででcsupload!これもだめだ〜。。。ナントカDLLが無いとエラーが出る(泣)Azure SDKにはx32があってXPにもインストールできたのですがだめみたい。一説ではAzure SDK 1.3(x32)のcsuploadにはバグがあるけど、1.4では直っているらしいのですが、少なくとも私のXPではだめでした。無いというDLLを再度レジストしたりいろいろやったけどだめ。結局さらにVHDを宅のWindows7(x64)にコピーしてアップロード。VHDがただでさえ7ギガあったし、それをプリペアとかなんちゃらするから、これも最新のx64マシーンとは思えないぐらい時間がかかりました。
 
あっ、ちなみにHyper-VとVMRoleでひとつ注意があります。VMRoleにはVHDファイル名にアンダースコアが使えません。こんなどーでもいい命名規則が違うなんて、凹みました。まぁリネームで回避できますが。
 
英文のVMRoleの説明にはベータ版はリモートデスクトップは使えないよと書いてあるのですが、アドミンのリモートデスクトップは使えます。先の記事やいろいろな方が試しているのでアレっと思ったのですが、たぶん使えないのはRemote CALが必要な本当のRemote Descktopのことを言っているのかな。リモートデスクトップGatewayとかやってみたかったのに。。
 
そんなこんなでようやく仮想マシンが動いたのですが、サポートしているのはServer 2008 R2(x64)英語版のみとのことだったのでそーしたのですが、これまた結構障害でした。TWEETコマンドを使ったクローラぐらいでも不安定。たぶん処理がSJISとかUTF使っているからだと思います。一説ではSDK 1.4ではWindows Server 2008 R2日本語版も動いたとの情報があるのでちょっとマネして再チャレンジしてみたいと思います。
 
全体的にはクラウド上に仮想マシンが起動しちゃえば、あとはかなり自由です。アドミンのリモートデスクトップでローカルディスクも接続できるので、プログラムを入れ替えるぐらいであれば、自分でプログラムコピーとかドラッグ&ドロップででき、VHDをアップロードしなおしたりしなくても大丈夫です。この点は先のASP.NETのAzureよりいい。そういう意味ではBOT動かしたりレベルなら安くて、個人で使うのにいいかも。(Webサイトだと、アクセスされた分を従量料金で払うので、個人には恐すぎますね)
 
まとめ:VMRoleを使うには最低でもHyper-V用のServer 2008 R2(x64)と、ネットに直接つながるx64マシーンが必要。(自宅のPCでServer 2008 R2(x64)を動かせれば1台で済むけど、アンチウイルスとか他で困ると思う)
日記「VMRoleをもっと使ってみた」へつづく