Windows Azureは、オンプレミスのWindows環境に似た面も多いが、クラウドならではの違いも多い。Windows Azureを使ったアプリケーションの開発や登録はどのように行なうのか。情報収集の方法も含めて紹介していこう。
Windows Azureの使い方
Windows Azureは、オンラインで申し込めば、いつでも利用開始できる。2011年6月30日までは、一定の条件以下であれば、無償で利用できるトライアルが行なわれている(画面1)。制限以上のアクセスやストレージの利用があった場合には、超過分に標準料金が適用される。このため無償トライアルだが、クレジットカードの登録が必要となる。
なお、現在国内では、東北関東大震災支援のため、Azure Platformの無償90日トライアルをクレジットカードなしで行なっている。被災者支援のサイト構築を考えている人は、利用してみるとよいだろう。
Windows Azureを使うには、利用申し込みまたは無償トライアルなどでAzureアカウントを取得し、開発環境を整える必要がある。なお、いずれの場合にも、Azureのアクセスには、Windows Live IDが必要になるので事前に取得しておく。
Azureの情報を収集する
Azureの最新の情報を得るには、まずはマイクロソフトのWebサイトにある「Windows Azureのホームページ」から見るのがお勧めだ。英語版のサイトのほうが、情報量も多く、更新も早い。そのため、時々は英語ページもチェックすべきだろう。
基本的にはここが一次情報であり、あとは検索などでインターネットから情報を収集することになる。また、開発を始めるなら、MSDNライブラリなども参照する必要がでてくる。
開発環境を整える
Windows Azureの開発は、基本的にローカルマシンで行なう。必要なのは、SDKを含んでいる「Windows Azure Tools for Microsoft Visual Studio」と「AppFabric SDK」、そして統合開発環境となる「Visual Studio 2010(以下、VS2010)」もしくは「Visual Web Developer Express(以下、VWDE)」のどちらかである。旧バージョンである「Visual Studio 2008」も利用可能だが、機能制限がある。なお、Windows Azure SDKは、Windows Vista SP1/Windows Server 2008以降にしか対応しないため、Windows XPでは開発できない。
Windows Azure ToolsとAzure SDKについては、マイクロソフトのダウンロードセンターで同時にダウンロードが可能だ。AppFabric SDKについても米国のダウンロードセンターで入手できる。このほか、マイクロソフトからは、「Windows Azure Platform トレーニングキット」や「Windows Azure MMC」などが提供されている。
Windows Azure SDKを使うためには、開発用マシンにIIS 7.0以降が必要になる。IISは、Windows Serverには標準で入っている。また、Windows 7などにも標準でインストールはされていないものの、IISは同梱されている。
開発の概略
開発環境をインストールし、その後「Windows Azure Tools for Microsoft Visual Studio」をインストールすれば、Windows Azure用のテンプレートやデバッグ環境が入る。開発を行なう前にやっておくべきことだが、いくつかポイントがある。
- IISをインストールし、WCFの設定を行なう。
- IISの動作を確認しておく
- SQL Server 2008 Express(VWDEのインストール時に一緒にインストールされる。Visual Studioの場合には別途入手)を動作できるようにしておく
まず①だが、先述の通り、IISはWindows 7には含まれているものの標準ではインストールされていない。そのため、これをインストールして動作可能にする必要がある。コントロールパネルの「プログラムと機能」を開き、左側にある「Windowsの機能の有効化または無効化」をクリックして、以下の項目をオンにする(画面2)。
Microsoft .NET Framework 3.5.1
∟Windows Communication Foundation HTTP activation
インターネットインフォメーションサービス
∟World Wide Webサービス
∟アプリケーション開発機能
∟ASP.NET
インストールが終わったら動作確認だ。これは、インストールしたPCのWebブラウザで「http://127.0.0.1」にアクセスし、画面3が表示されれば完了だ。
次にSQL Serverの「構成マネージャ」を1回起動する。SQL Serverはインストール後、一回起動させるためにはスタートメニューからツールを起動する必要がある。この時、確認のダイアログボックスが表示されるので、「OK」で閉じる。一度起動すれば、構成マネージャも終了させてよい。
これで、ローカル環境でのデバッグが可能になる。正しく動いていれば、VS/VWDEからデバッグを開始すると、Azureのエミュレーションが行なわれ、Webブラウザが起動して該当のページを表示する。
開発を行なうには
ここでは、実際のプログラムの作り方には触れないが、VWDEを使った開発の手順を簡単に解説しておく。なお、VWDEでデバッグを行なう場合には、管理者権限で起動する必要がある。これは、Azureのエミュレータの起動に管理者権限が必要になるためだ。デバッグしない時には、管理者権限は不要である。
VWDEを起動し、Visual BASICまたはVisual C#にある「Cloud」テンプレートを選択すると、中に「Windows Azure Project」があるので、これを選択してソリューションを作る(画面4)。続いて、プロジェクトに入れるロールを選択する。Webページのみならば「ASP.NET Web Role」、通常のWorkerロールならば「Worker Role」を選択する。最低限、Webロールは1つ必要となる。
各ロールは、基本のテンプレートに従って作られるので、これを書き換えてアプリケーションを作成する。
デバッグは、VS/VWDEの「デバッグ」メニューの「デバッグ開始」で行なう。すると、自動的にWebブラウザが起動し、Webロールによる作られたページが起動する。なお、環境によっては、Webブラウザが起動するまで数分かかることもある。また、エミュレータの状態は、Windowsのデスクトップ右下の「通知領域」にある青いWindowsの旗アイコンを右クリックしてメニューを開き「Show Compute Emulator UI」(画面5)または「Show Storage Emulator UI」でそれぞれ確認できる。
開発が終了したら「発行」だ。VS2010/VWDEからは、パッケージの作成だけを行なうことも可能だが、Azureへの転送も同時に行なえる。ここでは、Azure側の手順を説明するため、パッケージのみを作成する。
最初はテストとなるため、インスタンスは1つのみ。VMサイズは「Extra Small」とする。Azureプロジェクトから各ロールを選択すると、左側の領域が設定となるので「Configuration」タブを選択して、Instancesを変更する(画面6)。VMサイズは作成したロールの規模に依存するが、Azure側で変更が可能なので、ここでは最低の設定である「Extra Small」にしておく。
ソリューションエクスプローラ上で、Azureのプロジェクトを選択、右クリックメニューで「発行」を選択する。表示されたダイアログボックスの上部には「Create Service Package Only」と「Deploy your Windows Azure project to Windows Azure」の2つのラジオボタンがある(画面7)。前述のように手動でAzureへアップロードするため、最初の工程である「Create~」を選択し、OKボタンを押す。パッケージが作られたら、「ServiceConfiguration.cscfg」ファイルと、プロジェクト名からなるサービスパッケージファイル「~.cspkg」が生成され、保存されたフォルダがWindowsエクスプローラーで開く。
Azureへの転送から公開まで
Azure自体の管理は、開発者ポータルから行なう(画面8)。Windows Azureのアカウントは、Windows Live IDに紐付けされているため、アカウント登録時に使ったWindows Live IDを使ってアクセスを行なう。なお、このDeveloperポータルはSilverlightを利用しているので、事前にインストールしておく。
すでに登録を済ませていれば、開発者ポータルをWebブラウザで開けば、登録したアカウントの管理ページが開く。
まず、最初に行なうのは、「Hosted Service」の作成である。Hosted Serviceは1つのAzureアプリケーションに対応し、URLが割り当てられる対象となる。作成時に「DNS Prefix」として決めた名前が使われる。「http://[DNS Prefix].cloudapp.net」というURLが割り当てられる。
開発者ポータルで、左側の下の領域にある「Hosted Services,Storage Account & CDN」をクリックし、その上に表示されるHosted Servicesをクリックする。ここにサブスクリプション(Azureの契約の単位)が表示される。最初はサブスクリプションが1つで、Hosted Servicesは何もないはずなので、ページ左上の「New Hosted Service」をクリックする(画面9)。前述のように、ここでの設定項目である「DNS prefix」は、サイトをアクセスする際のURLの一部となる(画面10)。
このとき、テストのための「Staging Deployment」を同時に作成できる。作成したパッケージとサービスパッケージファイルを指定すれば、サイトを作成したあとアップロードしてくれる。インスタンスが1つしかないという警告が表示されるが、サービスの継続性のため2つ以上のインスタンスを用意すべきという警告であり、1つのまま強行しても問題はない。
このStagingで仮のURLが割り当てられるので、これを使ってテストを行なう。コードの修正などがあった場合には、ツールバーの「Upgrade」を使いパッケージなどを更新する。また、Configureボタンで、インスタンス数など、サービスパッケージファイルの設定を上書き可能だ。
コードに問題がないようなら、ツールバーの「new Production Deployment」を使って、サイトを立ち上げる。なお、ステージング、プロダクションの2つを立ち上げたあとは、ツールバーの「Swap VIP」ボタンで、両方を入れ替えることが可能だ。つまり、サイトを更新する場合には、Stagingのほうをアップグレードして、テストを行なう。問題がなければ、現在のProduction DeploymentとStaging Deploymentを入れ替えるわけだ。このようにすることで、サイトの運営中であってもStagingを使ってテストを本番環境で行なうことができる。

この連載の記事
-
第4回
クラウド
開発時に覚えておきたい「ストレージサービス」の仕組み -
第3回
クラウド
Windows Azureの大きな特徴「ロール」を理解しよう -
第2回
クラウド
Azureアプリを支えるデータベースとAppFabric -
第1回
クラウド
そもそもWindows Azureってなに? -
クラウド
Windows Azureでクラウドをはじめよう - この連載の一覧へ