このページの本文へ

Windows Azureでクラウドをはじめよう 第3回

3種類あるロールの違いとは?

Windows Azureの大きな特徴「ロール」を理解しよう

2011年04月20日 06時00分更新

文● 塩田紳二

  • この記事をはてなブックマークに追加
  • 本文印刷

第1回第2回では、Windows Azureの動作を知るために必要な仕組みを紹介した。続いては、Windows Azureのアプリケーション開発に必要な知識として、実行環境である3種類のロールを見てみよう。

3種類のロールとは?

 Windows Azureの実行環境は、大きく3種類ある。「Webロール」、「Workerロール」、「VMロール」の3種である(図1)。

図1 Windows Azureの3つのロール

 Webロールは、IISの上で提供されるWebページとその処理機能だ。簡単にいえば、ASP.NETによるページ表示機能に相当する。2つ目のWorkerロールは、Webロールと対にして利用するもので、サーバー側のバックエンド処理ルーチンとなる。

 たとえばオンラインショッピングサイトを考えた場合、WebロールはユーザーがWebブラウザで見るカタログや注文画面を担当し、Workerロールは受注処理を担当する。そしてWorkerロールは、ストレージサービスのキューと組になり、キューに投入されたアイテムを順次処理するという動作を行なう。キューが間に入るようになっているのは、大量処理などの場合にWorkerロールを複数のVMで動作させて並行処理を可能にするためだ。

 3つ目の「VMロール」は、上記2つとは少々異なる。あらかじめ設定されたWindows Server 2008 R2の環境が入ったVMイメージに対して、アプリケーションをインストールしたものを作成、これをWindows Azureにアップロードしてサービスなどを実行させる仕組みだ(図2)。

図2 VMロールの仕組み

 VMロールでは、Windows Server 2008 R2で動作するアプリケーションの大半が、そのまま利用できる。ただし、Hyper-V内での実行であり、システム設定がある程度固定されてしまうなど、オンプレミスのWindows Serverに比べて制限がある。たとえば、アプリケーション内で管理者権限が必要な処理やAPI呼び出しは制限される。

各ロールの開発方法

 現時点でのWindows Azure用アプリケーションとは、上記3つのロールのどれかで動作するものとなる。それぞれの開発はVisual Studioなどで可能であり、Windows Azure用アプリケーションは、専用システムへのインストールパッケージとして生成される。これにより、ファブリックコントローラーは、VMを増やすような場合、簡単にユーザーアプリケーションをセットアップできる。逆にいうと、Windows Azure用アプリケーションは、複数のVMで並列動作される前提で作らねばならないわけだ。

 とはいえ、Webロールの開発はASP.NETによるページ記述で行なうため、通常のASP.NETの開発とほとんど変わらない。内部のプログラムは、表示イメージ(HTML)の生成時に起動し、表示セッションが終わると終了させられる。このため、ページ表示と独立した処理は、キューを介してWorkerロールで行なうようにする(図3)。

図3 Webロールの動作

 一方、Workerロールは、VB.NETやC#などで記述されたプログラムだ。キュー内のアイテムを取り出し、処理を行なって終了するというサイクルで動作する。ただし、クラウドでの実行であり、処理が失敗する可能性がある。このため、キュー内アイテムの処理が完了したあと、アイテムを処理済みとしてマークして削除するようになっている。何らかの原因でWorkerが終了してしまっても、新たなWorkerプロセスが再度処理を行なうという仕組みを持つ(図4)。

図4 プログラムを実行するWorkerロール

 ●

 3種類のロールの説明は以上だ。Azure Platformのコンポーネント解説の最後として、次回はストレージサービスを詳しく見てみよう。

カテゴリートップへ

この連載の記事
  • 角川アスキー総合研究所
  • アスキーカード