Windows Azureの場合:Webロール、ワーカーロール、VMロールとは何ですか?


115

私が取り組んでいるアプリケーションにはWebロールが含まれています。これは単純なWebアプリケーションです。Windows Azureでアプリケーションをホストする必要があったため、Webロールを作成しました。私は実際にこれらの役割が何のためにあるのか知りたいです。コーディングに関して、またはストレージに関して、それらの重要性は何ですか?

回答:


101

EDIT 3/3/2013-UDPエンドポイント、仮想マシン、その他の言語を参照するように更新されました

EDIT 6/6/2013-VMの役割の廃止を反映するように更新し、Web /ワーカーの役割のベースラインOSイメージをWindows Server 2012に更新しました

@Vladimirによる良いリンク。もう少し明確化:すべてのロール(web、worker)は基本的にWindows Serverです。WebとWorkerの役割はほぼ同じです。

  • Webロールは、IISが有効になっているWindows Server VMです。
  • ワーカーロールはIISが無効になっているWindows Server VMです(手動で有効にすることもできます)
  • VMの役割は、Hyper-Vを介してローカルに構築し、AzureにアップロードするWindows Server 2008イメージです(現在は廃止されており、2013年5月31日をもって利用できなくなりました)
  • 仮想マシンは、Azureで作成され、vhdとして独自のストレージに保存されたWindowsまたはLinuxのイメージであり、VMの役割に対していくつかの拡張機能があります。たとえば、vhdは独自のストレージアカウントにあるため、vhdからイメージテンプレートを簡単に作成したり、新しいvhdにコピーしたり、VMデポにアップロードしたりすることもできます(Linuxのみ)。

これらの役割をどうするかについての質問に答えるには:プラットフォームトレーニングキット(下記)は、多くの優れたアイデアとサンプルを提供しますが、ここではいくつかの簡単な使用例を示します。

  • tcp、http、https、またはudpエンドポイント(Webアプリケーション、SOAP / RESTサービスなど)を公開する任意のコードを実行できます。ただし、ステートレスな方法で考える必要があります。複数のVMインスタンスを実行している場合、ユーザートラフィックはそれらのインスタンスに分散されます。プラットフォームトレーニングキットは、ストレージまたはキャッシュを使用してこれに対処する方法を示します。
  • キューまたはタイマーに存在するコードを実行できます。写真のサムネイル生成やユーザー入力に基づく計算などのオンデマンドタスクがあるかもしれません。これらは、外部から利用可能なエンドポイントを必要としません。リクエストをキューにプッシュしてから、このキューにフィードするだけのタスクを実行できます(すべてのインスタンスでキューメッセージが消費され、このプロセスを複数のインスタンス間でスケーリングできます)。
  • .NET、Java、php、python、node、rubyなどを実行できます。適切なランタイムコードをプロジェクトコードと共に配布するだけです。すべての言語でAzure APIへのREST呼び出しを行うことができ、いくつかの言語(上記の言語を含む)には、これを処理するSDKがあります。すべての言語SDKがここにあり、ソースコードがgithubにあります
  • VMの役割を使用すると、非常に複雑で時間のかかるインストール、手動での介入が必要なインストール、および確実に自動化できないインストールでソフトウェアをインストールして実行できます。この場合、OSのメンテナンスに対処する必要があります。VMの役割を超えて、仮想マシンが登場し、クラウドベースのVM構築とWindowsおよびLinuxの両方のサポートを提供します。VMロールよりも仮想マシンをお勧めします。

WebとWorkerの役割により、OSと関連するパッチが自動的に処理されます。VMを管理することなくアプリのコンポーネントを構築できます。

VMの役割を使用して、完全なWindows Serverイメージを構築し、Azureフックを追加して、VM全体をクラウドにプッシュします(その後、VMイメージを長期間維持します)。

仮想マシンを使用すると、ギャラリーからOSイメージを選択するだけで、ギャラリーが作成され、ブロブストレージにvhdとして保存されます。次に、RDP / sshを使用して、好きなように設定します。

建築家の帽子をかぶっているので、楽しくて面白くなります。WebサービスをWebロールまたはワーカーロールで実行できます(ポートを開くことができます)。Tomcatまたはその他のWebサーバーをワーカーロールでホストできます。Webサイトとサービスを1つの役割で組み合わせるか、さまざまなスケーラビリティのニーズに合わせて複数の役割に分割するかを選択できます。

まずは、プラットフォームトレーニングキットをご覧になり、演習を開始してください。


Webロールで実際にTCPエンドポイントを公開できますか?smarxによると、それらはすべてHTTPである必要があります:stackoverflow.com/questions/2926737/… これにより、役割間で別の微妙な違いが生じます。
Richard Astbury

私は自分のクエリに回答しました。TCPポートを開くことはできますが、Webサイトにバインドすることはできません。
Richard Astbury

2
リチャード-以前はそうでしたが、エンドポイントは、ロールタイプに関係なく、tcp、http、またはhttpsになりました。数か月前に新しい25-endpoint-per-roleの更新をデモンストレーションしながら、tcpとhttpが混在するサンプルアプリを作成しました
David Makogon

申し訳ありません-デプロイメントごとに25のエンドポイントを示すことを意味しました。そして...他のコメントを見て、間違った質問に答えたかもしれません。:)
デビッド・マコゴン

@DavidMakogon-Webロールとワーカーロールに代わるものは何ですか?GDI +を必要とするPhantomJSでWebサイトを展開する必要があります。GDI +はWebジョブで完全にサポートされているわけではありません。Webロールを使用できることを期待していました。Webロールに代わるものは何ですか?Azureによってパッチとメンテナンスが行われたVMのコンセプトが気に入った。ありがとう!
マーティン

30
  • Webロールは、IISでホストされるWebアプリケーションです。
  • ワーカーロールは、いくつかの作業を実行できるプロセスです(つまり、アップロードされた画像を自動的に圧縮し、データベースで何かが変更されるたびに処理を行い、キューとプロセスから新しいメッセージを取得し、名前を付けます)。
  • VMロールはVMをホストする

10
実際、WebロールとワーカーロールはVMです。
David Makogon、2011

これははるかに簡単な答えです。申し訳ありませんが、それらはVMではありません...複数のWorkerロールがバックグラウンドで実行され、複数のWorkerロールが別個のVMである場合のコストを想像できますか? blogs.msdn.microsoft.com/silverlining/2012/06/27/…–
クラレンス

より具体的に言うと、ワーカーの役割はIISのないVMです
dejjub-AIS

21

私は数日前にこのSOの質問/回答に出くわしましたが、答えが頭のなかで少し出ていることがわかりました(私はAzureとWebの初心者です)。今夜、Azureの基礎でこの概要を見つけました。これは、ワーカーロールとWebロールの主な違いの概要を示す高レベルの概要だと思いました。

2つの主な違いは、WebロールのインスタンスがIISを実行するのに対し、ワーカーロールのインスタンスはIISを実行しないことです。ただし、どちらも同じ方法で管理され、アプリケーションで両方を使用するのが一般的です。たとえば、Webロールインスタンスはユーザーからのリクエストを受け入れ、それをワーカーロールインスタンスに渡して処理します。アプリケーションをスケールアップまたはスケールダウンするには、Windows Azureにいずれかのロールのインスタンスをさらに作成するか、既存のインスタンスをシャットダウンするように要求できます。また、Windows Azure仮想マシンと同様に、Webまたはワーカーの各ロールインスタンスが実行されている時間に対してのみ課金されます。

Azure開発に慣れていない場合は、こちらの記事(Windows Azureの概要)をすべて読むことを強くお勧めします。

これが私のために電球をつけるのを助けたのと同じくらい誰かが役に立てば幸いです。


3

Windows AzureのWebロールは特別な目的であり、フロントエンドWebアプリケーションをホストするために使用される専用のインターネットインフォメーションサービス(IIS)Webサーバーを提供します。WebアプリケーションをWebロールに迅速かつ簡単に展開し、コンピューティング機能を拡大または縮小して需要を満たすことができます。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.