AMY&PINK

日本のITを世界へ!

Azure-Labs

Hello Windows Azure

目次

  • 概要
    • キーメッセージ
    • キーテクノロジー
    • 所要時間
  • セットアップとコンフィグレーション
    • Task1 - 依存関係チェッカーの実行
  • デモフロー
  • 開始ステートメント
  • ステップバイステップ ワークスルー
    • Windows Azure アプリケーションを作る
    • アプリケーションのデプロイ
  • サマリー
  • 分かっている課題

 

概要

このドキュメントは、Windows Azureのデモを表示するために、セットアップ手順、ステップバイステップの解説、スクリプトの書き方を提供します。このドキュメントは、チュートリアルや、技術解説の役目もかねています。このデモでは、Windows Azureを使った”Hello World”ASP.NETアプリケーションのビルド、デバッグ、デプロイと、Web上でのアプリケーションの実行を5分ほどで行います。
Windows Azureサービスプラットフォームの追加のデモは、http://www.azure.comを訪問してください。

※注意
この完全なデモを動作させる為には、ネットワーク接続とWindows Azureの開発アカウントが必要です。開発アカウントを作成するには、招待コードの為のサインアップと、http://lx.azure.microsoft.com にあるAzure Services デベロッパーポータルで招待コードと引き換えが必要です。

 キーメッセージ

このデモでは、3つのキーとなる事柄を確認します。

  1. 最初に、Windows Azure SDKとVisual Studio Tools for Windows Azure が、どのようにクラウドアプリケーションの為のリッチで親しみのある開発体験を可能にするのか確認します。
  2. 2番目に、Windows Azure がどのように、基本的なインフラを抽象化し、ロールとアプリケーションのインスタンス数を定義するためにシンプルなモデルを使用しているかを確認します。
  3. 最後に、Azure Services Developer Portal を通じて、Windows Azure アプリケーションをどのようにデプロイし、起動、管理するのかを確認します。

 

キーテクノロジー

このデモでは、以下の技術を使います。

  1. .NET Framework 3.5 SP1
  2. Visual Studio 2008 SP1
  3. Windows Azure SDK - October 2008 CTP
  4. Windows Azure Tools for Microsoft Visual Studio October 2008 CTP
  5. Windows Azure Services

 

所要時間

  • デモのセッティングと構成: 10分
  • デモの完成 : 5分

 

セットアップとコンフィグレーション

このデモは、先進的な構成要求はありません。単に、事前に必須のインストールとWindows Azure の開発アカウントの取得だけです。

Task 1 - 依存関係チェッカーを実行する

  1. 以下のステップは、事前に必須のコンポーネントがきちんとインストールされていることを確認するために、ラボについている依存関係チェッカーの実行方法を述べています。もし、それら事前に必須のものを正しくインストールして構成できている自身があるなら、この演習をスキップすることが出来ます。
  2. このデモ(AzureServicesKit\Demos\HelloWindowsAzure)が含まれているディレクトリにあるStartHere.cmd コマンドを実行します。
  3. StartHere.cmd スクリプトは、コンフィグレーションウィザードを起動します。コンフィグレーションウィザードは、あなたのマシンが ビルドに必要な全ての依存関係が適切に構成されていることと、Azure Service Platform Management Tools を使えることを確実にする為のチェックの為にデザインされています。
  4. コンフィグレーション ウィザードのステップに従ってクリックを進めます。必須ソフトウェアのステップは、あなたのコンピューターに対して実際にスキャンを実行します。もし、必要な依存関係が不足している場合、それらのインストールの為にチェッカーが提供するリンクを使ってから、コンピューターを再スキャン(rescan)します。

 

デモフロー

以下の図は、このデモの大まかなフローと、各ステップの内容です。

#図が無いみたい・・・?(by 百蔵。)

 

はじめに

次の5分で、Windows Azureを使ったシンプルな “Hello World” ASP.NET アプリケーションをビルド、デバッグして、デプロイします。 ここではシンプルなデモをお見せすることで、October CTPを使ったWindows Azure アプリケーションをビルドするステップの詳細とコンセプトを感じてもらいたいと思っています。 デモの後には、追加のロール、Windows Azure API、Windows Azure StorageサービスのようなAzure Service プラットフォームの追加サービスを使って、より複雑なアプリケーソンのビルド方法が理解できているはずです。

この簡単な Hello World デモでは、特に3つのことに注意してください。

  1. 最初に、Windows Azure SDK と Visual Studio Tools for Windows Azure がどのように、クラウドアプリケーションの為のリッチで親しみやすい開発経験を提供するのかを確認します。
  2. 2番目に、Windows Azureが基本的なインフラを抽象化し、アプリケーションのインスタンス数とロールの定義にシンプルなモデルが使われていることを確認します。
  3. 最後に、Windows Azure アプリケーションを Azure Services Developer ポータルからデプロイ、開始、管理する方法を確認します。

 

Step-by-Step Walkthrough

 

操作 概要 スクリーンショット
Visual Studio 2008 を実行します。
メニュー「ファイル」→「新規作成」→「新しいプロジェクト」を選択します。
プロジェクトタイプで、「Cloud Service」を選択します。
テンプレートで、「Web Cloud Service」を選択します。
ソリューション名は、「Hello Azure」と入力します。
Visual Studio 2008を起動して、新しいプロジェクトを作成しましょう。
ここでは、Windows Azure SDK October CTP と、Windows Azure Tools for Visual Studio をインストール済みです。
Cloud Serviceが、新しいカテゴリである点に注意してください。
ここから選択できる異なるテンプレートが幾つかあります。
このデモでは、Web Cloud Service プロジェクトテンプレートを選択して、名前を Hello Azureにしましょう。
 proj_01_01
新しいソリューションが作成されるのを待ちます。
Default.aspx ページをデザインビューで開くためにダブルクリックします。
Visual Studio は、新しいソリューションを作成したと思います。
このソリューションは、二つのプロジェクトを含んでいます。
HelloAzure_WebRole という名前の最初のプロジェクトは、標準的なASP.NETプロジェクトです。
二番目のプロジェクトは新しいCloud Serviceのプロジェクトです。
Cloud Serviceプロジェクトは、ASP.NETプロジェクトを参照しています。このプロジェクトには、Windows Azure ソリューションのモデル定義の為の構成ファイルも含まれています。
 proj_01_02
ToolBoxを開きます。
ASP.NET Label コントロールをドラッグアンドドロップで追加します。
新しいラベルのフォントサイズプロパティをXX-Largeに変更します。
最初に、HelloAzure Webページをビルドします。
default web ページを開きます。
default web ページに標準のASP.NET ラベルを追加しましょう。
そして、ラベルのフォントサイズを調整します。
 proj_01_03
ビューのコードビハインドされたDefault.aspx.cs ファイルを開く為に、デザイン上で右クリックしてコンテキストメニューから、コードの表示を選択します。
ラベルにテキストをセットする為のコードを、Page_Loadイベントに追加します。
ラベルに”Hello Windows Azure”とテキストを表示する為のコードを記述しましょう。  proj_01_04
ServiceConfiguration.cscfg ファイルを開きます。 アプリケーションを実行する前に、Windows Azure アプリケーションを定義するモデルを確認しましょう。
HelloAzure Cloud Service プロジェクトをナビゲートして、ServiceConfiguration.cscfg ファイルを開きます。
この構成ファイルは、Windows Azure プロジェクトのロールを定義します。見て分かるように、ここにはロール単位のインスタンス数を定義します。
このインスタンス数を単純に2にしてみましょう。
 proj_01_05
デバッグ→ デバッグ開始を選択します。 デバッグモードでアプリケーションを実行してみましょう。慣れた F5キーを押す方法でも可能です。  proj_01_06
  ※百蔵。追記
AzureServiceKit-AprilUpdate では、初回実行時に開発ストレージの初期作業の続行が求められます。
Yesを押しましょう。
(Noを押したら、長いこと待たされた後にアプリ起動に失敗しました。当たり前か・・・)
proj_01_071
  ※百蔵。追記
初期化後には、なにやら報告のダイアログが出ます。
何が起こったのか、ちょっと良く分かりません。。。
proj_01_08
メモ:開発ファブリックが起動するまで、30-90秒かかる場合があります。
開発ファブリックが起動したら、devfabricのHelloAzureアプリケーションと、WebRoleを展開します。
WebRoleを選択して、二つのインスタンスが実行されていることを確認します。
通常と同じように、ASP.NETプロジェクトは .NETアセンブリにコンパイルされます。
しかしながら、私たちはCloud Serviceプロジェクトをソリューションに持っており、これによってindows Azure の開発ファブリックは起動します。
開発ファブリック、または簡単にdevfabric は、あなたのマシン上にWindows Azureアプリケーションを開発してテストするための環境をシュミレートします。
これを環境のようなカッシーニと考えることが出来ます。(カッシーニって何?)
ここでは、開発ファブリックUIを確認することが出来ます。
私たちはHelloAzure アプリケーションの新しいデプロイコンテナ環境を持っていることに注意して下さい。
HelloAzureアプリケーションのWebRoleを展開して、ロールの為に二つのインスタンスがあることを見ることが出来ます。
 proj_01_09
アプリケーションを表示するためにInternet Explorerに切り替えます。  私たちのシンプルなASP.NET webアプリケーションと”Hello Windows Azure”というテキストが確認できます。  proj_01_10
Visual Studioに戻ります。
ラベルのTextをセットしている箇所にブレークポイントをセットします。
さくっとVisual Studioに切り替えてブレークポイントをせっとしてみましょう  proj_01_11
Internet Explorerに戻って、ページをリフレッシュします。
Visual Studioに戻ってブレークポイントを確認します。
F5キーを押して処理を継続します。
さぁ、ページを再表示してみましょう。
プロジェクトをデバッグとコードのステップをするためにVisual Studioに入っていけることに注意して下さい。- そう、いつも行っているのと同じように出来るのです。
 proj_01_12
Internet Explorerを閉じて、アプリケーションを終了します。    

 

アプリケーションのデプロイ

操作 概要 スクリーンショット
Visual Studioに戻ります。
HelloAzureプロジェクトを右クリックして、コンテキストメニューから「発行」を選択します。
ここまでで、私たちは新しいVisual Studio拡張とSDKを使った Windows Azureの簡単なWebアプリケーションのデバッグとビルドの仕方を見てきました。
さぁ、HelloAzure アプリケーションをクラウドへデプロイしてみましょう。
Visual Studioに戻りましょう。
私たちのアプリをデプロイするために、まずHelloAzure Cloud Serviceプロジェクトを右クリックして「発行」を選択します。
これは、ソリューションのコンパイルとビルドを実行します。
また、新しいサービスパッケージも作成します。これは、ソリューションに必要な構成ファイルとアセンブリを含んだZipです。
 proj_02_01
発行されるサービスパッケージのパスをWindows Explorerのアドレスバーからコピーします。 一度目に発行プロセスが完了した際に、Visual Studioはサービスパッケージが作成されたディレクトリを開きます。
また、デフォルトのブラウザを起動して、Azure Service 開発ポータルを開きます。
ファイルのパスをコピーしましょう!
 proj_02_02
発行のプロセス中に起動したブラウザウィンドウに切り替えます。 さあ、Live IDでAzure Service マネジメントポータルにログインしましょう。
前に、WindowsAzureの招待コードと引き換えに、Azure Service developer ポータルで開発アカウントを作っています。
この招待コードで、新しいアプリケーションのWindows Azureへのデプロイと、Windows Azure Storage Servicesの利用を可能になります。
 proj_02_03
New Project リンクをクリックします。 ここには、developer ポータルと、すでに構成済みのプロジェクトが表示されるはずです。
さあ新しいプロジェクトを作ってみましょう!
 proj_02_05
Hosted Service のプロジェクトタイプをクリックします。  次に私たちは、developer ポータルから作りたいと思うプロジェクトのタイプを選択しましょう。
今回は、私たちはWindows Azureでアプリケーションを実行するためにデプロイしたいと思っていますから、Hosted Serviceを選択します。
 proj_02_04
Hello Azure のような名前をプロジェクトにつけます。
次へボタンを押します。
次に、私たちのプロジェクトに名前をつけましょう! proj_02_06
サブドメイン名を入力して、Check Availabilityボタンを押して有効かどうか確認します。
有効なサブドメイン名が見つかるまで続けます。
名前が見つかったら、Create button を押してプロジェクトを作成します。
次のステップでは、アプリケーションにサブドメイン名をつけることが出来ます。
現在のCTPでは、あなたのアプリケーションは CloudApp.net というドメインにホストされます。
さぁ、サブドメイン名を入力して有効かどうかチェックしましょう!
最後に、Azure Service Developer Portal でプロジェクトを作成しましょう!
proj_02_07
Stagingの下のDeployボタンを押します。 developer ポータル内に、新しいプロジェクトが表示されているはずです。
Windows Azure プロジェクトには、二つの環境があることに注意してください。:Production と Stagingです。
さぁ、アプリケーションをStaging環境にデプロイしてみましょう!
proj_02_08
発行したソリューションのディレクトリを表示します。
Appパッケージとして、HelloAzure.cspkg ファイルへのフルパスを選択か入力します。前のコピーをペーストすることも出来ます。
構成ファイルとして、同じディレクトリにあるServiceConfiguration.cscfg ファイルへのフルパスを選択か入力します。
Hello Azure Demo といった感じのデプロイに関するラベルを入力します。
Deployボタンをクリックします。
次のページでは、Visual Studioで発行したサービスパッケージを参照します。
Visual Studioから一緒に発行されたServiceConfigurationファイルも参照する必要があります。
このファイルが、ロールの定義とインスタンスの数を指定していたことを思い出すんじゃないでしょうか。
最後に、デプロイの為にラベルをつけて、デプロイを開始しましょう。
proj_02_09
サービスパッケージがアップロードされるのを待ちます。
アップロードが終わったら、プロジェクトの詳細ページにリダイレクトされます。
ここでのポイントは、サービスパッケージがAzure Service Developer Portalにアップロードされるという点です。  
パッケージがデプロイされるのを待ちます。 パッケージがアップロードされたら、アセンブリ、ASPXページ、構成ファイルは展開されます。
これには数分かかります。
proj_02_10
HelloAzureアプリケーションを実行するために、Runボタンをクリックします。
注意:このプロセスには、3-10分かかります。
パッケージがデプロイされたら、HelloAzureアプリケーションを開始できます。
Runボタンをクリックした時、現実にマジックが起きる時間です!
ここでのポイントは、Windows Azureは、それぞれのロールの為に仮想マシンのインスタンスをスタートアップします。
HelloAzure アプリケーションのケースでは、お分かりのようにWebRoleに二つのインスタンスを割り当てています。
インスタンスがスタートしたなら、私たちのアプリケーション - アセンブリ、ASPXページ等、前にアップロードしたもの - を、それぞれのインスタンスにデプロイします。
このプロセスには数分かかります。
proj_02_11
Staging環境のWebsite URLをクリックします。 Stagingでアプリケーションが実行されたら、一時的に割り当てられるWebsite URL を使ってアクセスしてみましょう。 proj_02_12
新しいブラウザウィンドウに表示された HelloAzure ウェブサイトを確認します。
ブラウザを閉じます。
Windows Azure上で動く Hello Windows Azure アプリケーションを確認することが出来ました。Webに公開されているのです!
実際、この一時的なサイトURLに長く入ることが出来るなら、アクセスも可能です。
proj_02_15
ProductionとStaging環境の間にある 同期ボタンを押します。
Production環境に切り替えることを希望するか確認のプロンプトが表示されます。OKボタンを押します。
注意:Production環境で開始するまでに数分かかります。
ブラウザを閉じて、Azure Servicces Developer ポータルに戻りましょう。
そして、アプリケーションをどのようにStagingからProductionに移動するのか確認しましょう。
同期ボタンをクリックし、Staging環境からProductionに移動して切り替えることを希望するか確認します。
これには数分かかります。
proj_02_14
Production 環境が実行されていることを確認します。
Production 環境の下に表示されているWebSite URLをクリックします。
注意:DNSエントリーのアップロードの為に数分かかることがあります。
production 環境が実行しているのを確認することが出来ます。
さぁ、私たちのアプリケーションがproduction で実行していることをブラウザで確認しましょう!
proj_02_151
Hello Windows Azure との対話がWebページに表示されているでしょうか。 最後に、我々のシンプルな Hello Azure アプリケーションが Production環境で実行しているのを確認しましょう。
URLは、私たちがAzure Service Developer Portal でプロジェクト作成時に指定した cloudapp.net に対するサブドメインであることに注意してください。
インターネットアクセスが可能なら、このサイトを見ることが出来ます。
proj_02_16