私が取り組んでいるアプリケーションにはWebロールが含まれています。これは単純なWebアプリケーションです。アプリケーションをWindowsAzureでホストする必要があったため、Webロールを作成しました。私は実際にこれらの役割が何のためにあるのか知りたいです。コーディングに関して、またはストレージに関して、それらの重要性は何ですか?
4 に答える
2013 年 3 月 3 日編集 - UDP エンドポイント、仮想マシン、その他の言語を参照するように更新
2013 年 6 月 6 日編集 - VM ロールの廃止を反映するように更新し、Windows Server 2012 に対する Web/ワーカー ロールのベースライン OS イメージを更新しました。
@Vladimirによる良いリンク。もう少し明確にします。すべてのロール (Web、ワーカー) は、基本的に 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 Depotにアップロードしたりできます(Linux のみ)。
これらのロールをどうするかについての質問に答えるには: プラットフォーム トレーニング キット (後述) を使用すると、多くの優れたアイデアとサンプルが得られますが、いくつかの簡単な使用例を次に示します。
- tcp、http、https、または udp エンドポイント (Web アプリケーション、SOAP/REST サービスなど) を公開する任意のコードを実行できます。ただし、ステートレスな方法について考える必要があります。複数の VM インスタンスを実行している場合、ユーザー トラフィックはそれらのインスタンスに分散されます。プラットフォーム トレーニング キットでは、ストレージまたはキャッシュを使用してこれに対処する方法を説明します。
- キューまたはタイマーに依存しないコードを実行できます。写真のサムネイル生成やユーザー入力に基づく計算などのオンデマンド タスクがあるとします。これらは、外部から利用可能なエンドポイントを必要としません。リクエストをキューにプッシュし、このキューから単純にフィードするタスクを実行できます (また、すべてのインスタンスで消費されるキュー メッセージを使用して、複数のインスタンスにわたってこのプロセスをスケーリングできます)。
- .NET、Java、php、python、node、ruby などを実行できます。必要なのは、適切なランタイム コードをプロジェクト コードと共に配布することだけです。すべての言語で Azure API への REST 呼び出しを行うことができ、いくつかの言語 (上記のものを含む) には、これを処理する SDK があります。すべての言語 SDK はこちらにあり、ソース コードは github にあります。
VM の役割を使用すると、非常に複雑で時間のかかるインストール、手動による介入が必要なインストール、確実に自動化できないインストールを使用して、ソフトウェアをインストールして実行できます。この場合、OS のメンテナンスに対処する必要があります。VM の役割を超えて、Windows と Linux の両方のサポートと共に、クラウドベースの VM 構築を提供する仮想マシンが存在するようになりました。VM ロールよりも仮想マシンをお勧めします。
Web ロールと Worker ロールを使用すると、OS と関連するパッチが自動的に適用されます。VM を管理することなく、アプリのコンポーネントを構築できます。
VM の役割を使用して、完全な Windows Server イメージを構築し、それに Azure フックを追加して、VM 全体をクラウドにプッシュします (その後、VM イメージを長期間維持します)。
Virtual Machines を使用すると、ギャラリーから OS イメージを選択するだけで、そのイメージが作成され、vhd として BLOB ストレージに保存されます。次に、RDP/ssh を設定して、好きなように設定します。
建築家の帽子をかぶって、ここが楽しくて面白いところです。Web サービスは Web ロールまたはワーカー ロールで実行できます (また、どちらでもポートを開くことができます)。Worker ロールで Tomcat またはその他の Web サーバーをホストできます。Web サイトとサービスを 1 つの役割に組み合わせるか、さまざまなスケーラビリティのニーズに合わせて複数の役割に分割するかを選択できます。
まずは、プラットフォーム トレーニング キットを参照し、演習を開始してください。
- Web ロールは、IIS でホストされる Web アプリケーションです。
- Worker ロールは、何らかの作業を実行できるプロセスです (つまり、アップロードされた画像を自動的に圧縮したり、データベースで何かが変更されたときに何かを実行したり、キューから新しいメッセージを取得して処理したりします)。
- VM ロールは VM をホストします
Windows Azure の Web ロールは特別な目的であり、フロントエンド Web アプリケーションをホストするために使用される専用のインターネット インフォメーション サービス (IIS) Web サーバーを提供します。Web アプリケーションを Web ロールにすばやく簡単にデプロイし、需要に合わせてコンピューティング機能をスケールアップまたはスケールダウンできます。