テスターですが何か?

ホビープログラマ略してHPです

Windows Azure Accelerator for Web Roles を試してみた

leave a comment »

Windows Azureへのデプロイが超高速になると噂の「Windows Azure Accelerator for Web Roles」を試してみました。

 

本体のダウンロード&インストール

ソフトウェア本体はCodePlexで公開されているので、ページ右の部分からダウンロードします。9/5時点ではVer1.1.0が最新版です。

image

ダウンロードした「WAAWebRoles.exe」を実行します。

image

ウィザードに従ってどんどん進めていきます。

image

image

インストールが完了したかのように思えますが、ただファイルを解凍しただけで解凍先のディレクトリが表示されます。Readme.txtを読むと「さぁ!StartHere.cmdを実行するんだ!!」と書いてあるので実行します。

image

必要なソフトウェアがインストールされているかチェックされます、自分の環境はOKでした。[Close]で閉じます。

image

「必要なソフトウェアはインストールした?」と聞かれるので、”y”を入力。

image

Visual Studioの拡張機能として「Windows Azure Accelerator for Web Roles」をインストールしますか?と、聞かれるのでもちろん”y”を入力

image

Visual Studio 拡張機能インストーラーの確認画面が表示します、もちろん[インストール]

image

インストール完了

image

コマンドプロンプトにもセットアップ完了のメッセージ

image

これで、ソフトウェアのインストールは完了です。

 

Webデプロイ管理用サイトの作成

次に、WebRoleのデプロイを管理するサイトを、Azure上に発行します。Visual Web Developer(Visual Studio)から新規プロジェクトを作成し、テンプレートに「Windows Azure Accelerator for Web Roles」を選択します。

image

ストレージアカウント情報の入力を要求されるので、入力します。

image

次にデプロイ管理サイト用のログイン情報の入力を求められます。

image

こんな感じのソリューションが自動生成されます。

image

このサイトをAzureへ発行すればいいのですが、自分のケースでは2つトラップがあります。デフォルトではXSインスタンスが2つ作成されます、こんなことで課金が発生しては困るので、XSインスタンスを1つ作成するように変更します。

image

次に、デプロイ管理用サイトは「*.cloudapp.net」へデプロイされます。そして、サービスとしてデプロイ/公開するアプリケーションは別名(CNAMEとか)を要求されます。独自ドメインは持っていないですし、サービス本体を「*.cloudapp.net」へデプロイしたいのですが。

なのでデプロイ管理用サイトは適当なホスト名へデプロイされるようにします。自分さえつながればいいのであとでHOSTSファイルにIPアドレスを設定します。ServiceDefinition.csdefファイルの”Binding”にhostHeaderを追加して、デプロイ管理用サイト名を指定します。

image

AzureStorageへの接続文字列など、今までAzureプロジェクトで設定している内容があればこのプロジェクトに設定してください。Azureプロジェクトのデプロイはこのプロジェクトだけなので、必要な設定はすべてここで行ってください。自分の場合はAzure Table Storageの設定を行いました。

デプロイ管理用サイトをデプロイします。Acceleratorプロジェクトを右クリックして、[発行]を選択します。

image

[資格情報],[Windows Azure環境],[ストレージアカウントの発行]を指定後、[リモートデスクトップ接続の構成]を選択してWebRoleへリモートデスクトップ接続できるように設定します、

image

必要な情報を入力して[OK]、元のダイアログで[発行]をクリックしてAzureへのデプロイを開始します。

※WebRoleへのリモートデスクトップ構成はこちらのエントリーを参照してください。

image

Azureへ管理サイトのデプロイが開始されます、このデプロイは15~20分かかります。

image

image

Accelerator for Web Rolesの管理サイトへアクセスするために、hostsファイルを編集します。先ほどデプロイ前に管理サイトを存在しない「deployhost.david9142.local」に指定したので、アクセスできるようにhostsにAzureのHostのIPアドレスに名前解決の設定を行います。

image

Azureのアドレス「david9142.cloudapp.net」も「deployhost.david9142.local」も同じIPアドレスなんですね。ただ、後述するデプロイ管理サイト側でAzureのコンテンツのサイトを別のサイトで指定する必要があるので、名前だけ変えています。そもそも存在しない「deployhost.david9142.local」を指定しているので、アクセスできるようにhostsファイルを設定しました。

 

hostsファイルに設定したホストへアクセスして、プロジェクト作成時に指定したユーザーIDとパスワードでログインします。

image

「Webサイトがないからつくれよ~」と言われるので[new web site]をクリックします。

image

必要な項目を入力します、重要なのは[IIS Site Name]と、[Host Name]です。あとでデプロイ時に指定するので覚えておいてください。HostNameにはWebアプリを公開するホスト名を指定してください。

image

無事デプロイを管理するWebサイトができました。準備はこれで完了です。

image

 

Webアプリのデプロイ

お待たせしました、それではアプリ本体のデプロイです。デプロイしたいWebアプリケーションプロジェクトを右クリックして、[発行]を実行します。(Azureプロジェクトではありません)

image

[サービスURL]には先ほどWebサイト作成時に指定したHostNameを、[サイト/アプリケーション]にはIIS Site Nameを入力してください。(自分は1つのWebRoleに複数のWebアプリをデプロイしたいのでアプリケーション名まで入力していますが、アプリケーション名の入力は不要です)

image

[発行]を実行すると、普通にデプロイが行われます。10秒前後でデプロイ完了です。

( ゚д゚)ポカーン(つд⊂)ゴシゴシ(;゚ Д゚) …!? じ、じゅうびょう…

image

image

当たり前ですが、ちゃんとアプリを実行することができます。きちんとデプロイができていることが確認できます。

image

 

デプロイが高速化された(20分→10秒)ことももちろん素晴らしいのですが、デプロイの内容が永続化されます。また、Accelerator for Web Roles用のAzureプロジェクトを再デプロイしてもWebサイトの設定はAzureStorage上に保存されているようなので、消えません。

証明書はデプロイ管理サーバー上に保存されたので、他の端末からもデプロイができる?気になりますね。また、デプロイ管理Webサイトの仕組みも気になるのであとでソースを読んでみようと思います。

 

このエントリーの作成にあたって、以下のサイトの情報を参考にさせていただきました。

Windows Azure Accelerator for Web Roles を使おう (ブチザッキ)

Windows Azure Accelerator for Web Roles その1 (Azureの小ネタ)

Windows Azure Accelerator for Web Roles その2 (Azureの小ネタ)

 

今回のエントリーは以上です。

Written by david9142

2011年9月10日 @ 12:31 AM

コメントを残す

以下に詳細を記入するか、アイコンをクリックしてログインしてください。

WordPress.com ロゴ

WordPress.com アカウントを使ってコメントしています。 ログアウト / 変更 )

Twitter 画像

Twitter アカウントを使ってコメントしています。 ログアウト / 変更 )

Facebook の写真

Facebook アカウントを使ってコメントしています。 ログアウト / 変更 )

Google+ フォト

Google+ アカウントを使ってコメントしています。 ログアウト / 変更 )

%s と連携中

%d人のブロガーが「いいね」をつけました。