web-dev-qa-db-ja.com

Azure WebサイトとAzure Webロールの違いは何ですか

新しい Azure Webサイト とASP.NET MVCアプリケーションの従来のAzure Webロールの重要な違いは何ですか? 「Webロール」よりも「Webサイト」を選択する理由、またはその逆の理由は何ですか?

どちらの場合も同じ容量が必要だと仮定しましょう(2つの小さなインスタンスなど)。ウェブサイトがプレビュー期間にある間、ウェブサイトの一時的な割引が33%であるという事実以外は、価格は同程度に見えます。

ウェブの役割では困難または不可能な「ウェブサイト」でできることはありますか?たとえば、「Webサイト」を使用して、VMの単一セットに複数のWebサイトを簡単に配置できますか? 「Webサイト」と「Webロール」で何かが失われますか? IISを微調整する機能はありますか?キャッシュサービスをローカルで使用する機能はありますか?

234
Erv Walter

Webロールは、Webアプリ(以前のWebサイト)を超えるいくつかの機能を提供します。

  • 高度なスタートアップスクリプトを実行して、アプリのインストール、レジストリ設定の変更、パフォーマンスカウンターのインストール、IISの微調整などを行う機能.
  • アプリを複数の層に分割し(フロントエンドのWebロール、バックエンド処理のワーカーロールなど)、個別にスケーリングする機能
  • デバッグ目的でVMにRDPする機能
  • ネットワーク分離
  • 専用の仮想IPアドレス。クラウドサービスのWebロールインスタンスがIP制限付き仮想マシンにアクセスできるようにします
  • ACLで制限されたエンドポイント(Azure SDK 2.3、2014年4月に追加)
  • TCP/UDPポートのサポート(WebサイトはTCP 80/443に制限されています)

ただし、WebアプリはWebロールよりも優れています。

  • 展開履歴/ロールバックを使用したほぼ瞬時の展開
  • Visual Studio Online、github、ローカルgit、ftp、CodePlex、DropBox、BitBucketの展開サポート
  • 多数のCMSおよびフレームワークの1つを展開する機能(WordPress、Joomla、Django、MediaWikiなど)
  • SQLデータベースまたはMySQLの使用
  • 無料ティアから共有ティア、専用ティアへのシンプルで高速なスケーリング
  • Webジョブ
  • Webサイトのコンテンツのバックアップ
  • 組み込みのWebベースのデバッグツール(シンプルなcmd/powershellデバッグコンソール、プロセスエクスプローラー、ログストリーミングなどの診断ツールなど)

2014年4月と2014年9月のロールアウトにより、WebアプリとWebロール(およびワーカーロール)の両方に共通するいくつかの機能が追加されました。

  • ステージング+プロダクションスロット
  • ワイルドカードDNS、SSL証明書
  • Visual Studioの統合
  • Traffic Managerのサポート
  • 仮想ネットワークのサポート

以下は、Webサイトギャラリーの選択フォームから取得したスクリーングラブです。 enter image description here

Web Appsは、共有リソースから予約済みリソースに移動できる迅速な立ち上げと実行に最適な方法だと思います。これを上回ると、必要に応じてWebロールに移動して拡張できます。

210
David Makogon

編集2014:価値があるものについては、この回答の多くの情報はもはや正しくありません-コメントを参照してください。

@David応答にさらに追加します。

Windows Azure Webサイトでは、同じマシン上の数百の他のWebサイトと共にリソーススライスを使用しているため、IISまたはWebサーバーを制御できません。 IISを制御できません。

共有WebサイトとAzure Webロールの大きな違いは、Webサイトはプロセスがバインドされていると見なされますが、ロールはVMバインドされていることです。

Webサイトは、ファーム内のすべての「Webサーバー」からアクセス可能なコンテンツ共有に保存されているため、複製など必要なものはありません。

Windows Azure Webサイトは独自のホスト名を持つことができず、代わりにwebsitename。azurewebsites.netを使用する必要があり、DNSプロバイダーでCNAME設定を使用して、予約モードで実行されている場合にのみ、以前のWindows Azureロールとまったく同じ要求をルーティングします。 CNAME設定は、共有Webサイトではサポートされていません。

43
AvkashChauhan

http://robdmoore.id.au/blog/2012/06/09/windows-Azure-web-sites-vs-web-roles/でこのまさに主題に関する包括的なブログ投稿を投稿しました

私の結論からの抜粋:巨大なスケール、SSL、アジアまたは米国西部のデータセンター、非標準構成(IIS、ポート、診断、セキュリティ証明書、または起動スクリプト)、RDPまたは費用対効果の高いワーカーロール( Webロールと組み合わせて)、今はWebロールに固執する必要があります。

それ以外の場合、Webサイトは素晴らしいオプションです!

34
Robert Moore

Azure Webロールは、仮想プライベートホストのようなものです。 Webサーバーとして機能するVMを取得し、そのVMインスタンスを所有します。

Azure Webサイトは、柔軟な共有ホスティングサービスのようなものです。自分が管理していないWebサーバーにアプリをデプロイし、他のユーザーのサイトもサーバーします。リソースを変更する必要に応じて、サイトを(多少の追加料金で)拡大および縮小して、サイトの弾力性を高めることができます。

14
Jimmy

Azure Web Sitesを使用すると、拡張性の高いWebサイトをAzureで迅速に構築できます。 Azure Portalまたはコマンドラインツールを使用して、.NET、PHP、Node.js、Pythonなどの一般的な言語でWebサイトをセットアップできます。サポートされているフレームワークは既にデプロイされており、追加のインストール手順は不要です。 Azure Webサイトギャラリーには、DrupalやWordPressなどの多くのサードパーティアプリケーション、およびDjangoやCakePHPなどの開発フレームワークが含まれています。サイトを作成したら、既存のWebサイトを移行するか、まったく新しいWebサイトを構築できます。 Webサイトでは、物理ハードウェアを管理する必要がなくなり、いくつかのスケーリングオプションも提供されます。共有マルチテナントモデルから、専用マシンが着信トラフィックを処理する標準モードに移行できます。 Webサイトを使用すると、SQL Database、Service Bus、Storageなどの他のAzureサービスと統合することもできます。 Azure WebJobs SDKプレビューを使用して、バックグラウンド処理を追加できます。要約すると、Azure Webサイトは、広範な言語、オープンソースアプリケーション、および展開方法(FTP、Git、Web Deploy、またはTFS)をサポートすることで、アプリケーション開発に集中しやすくなります。クラウドサービスまたは仮想マシンを必要とする特別な要件がない場合、Azure Webサイトが最良の選択である可能性が高いです。

クラウドサービスを使用すると、リッチなサービスとしてのプラットフォーム(PaaS)環境で可用性の高いスケーラブルなWebアプリケーションを作成できます。 Webサイトとは異なり、クラウドサービスは、Azureにデプロイされる前に、Visual Studioなどの開発環境で最初に作成されます。 PHPなどのフレームワークには、ロールの起動時にフレームワークをインストールするカスタム展開手順またはタスクが必要です。クラウドサービスの主な利点は、より複雑な多層アーキテクチャをサポートできることです。単一のクラウドサービスは、フロントエンドWebロールと1つ以上のワーカーロールで構成できます。各層は個別にスケーリングできます。また、Webアプリケーションインフラストラクチャの制御レベルが向上しています。たとえば、ロールインスタンスを実行しているマシンにリモートデスクトップを実行できます。また、より高度なIISおよびロールの起動時に実行されるマシン構成の変更(管理者の制御が必要なタスクを含む)をスクリプト化することもできます。

仮想マシンを使用すると、Azureの仮想マシンでWebアプリケーションを実行できます。この機能は、Infrastructure as a Service(IaaS)とも呼ばれます。ポータルから新しいWindows ServerまたはLinuxマシンを作成するか、既存の仮想マシンイメージをアップロードします。仮想マシンを使用すると、オペレーティングシステム、構成、インストールされているソフトウェアとサービスを最大限に制御できます。これは、マシン全体を移動できるため、複雑なオンプレミスWebアプリケーションをクラウドに迅速に移行するための優れたオプションです。仮想ネットワークを使用すると、これらの仮想マシンをオンプレミスの企業ネットワークに接続することもできます。クラウドサービスと同様に、これらのマシンにリモートアクセスし、管理レベルで構成の変更を実行できます。ただし、Webサイトやクラウドサービスとは異なり、仮想マシンイメージとアプリケーションアーキテクチャをインフラストラクチャレベルで完全に管理する必要があります。基本的な例の1つは、オペレーティングシステムに独自のパッチを適用する必要があることです。

このリンクから更新された包括的な比較を参照してください: http://Azure.Microsoft.com/en-us/documentation/articles/choose-web-site-cloud-service-vm/

6
Jamil

さらにもう1つのシナリオがあります。これらの500の例外が排除された後、ワイルドカードCNAMEを処理するAzure Webサイトの機能については何も言われていません。私たちの何人かは、ネイトのソフトウェアでワイルドカードサブドメイン機能を提供する1行のハックのために、クラウドサービスでネイトのWeb Role Acceleratorを使用しています。 Azure Webサイトがそれらを処理できることがわかるまで、これらのワイルドカードサブドメインアプリを移動することはできません。それが不可能な場合は、方程式のWebロール側でプラスになります。また、価格がまったく同じであるため(プレビュー割引の期限が切れた後)、RDCとイベントビューアーへのアクセスを放棄するかどうかはわかりません(2つだけ言及します)。

6
Luke Latham

Azure Webサイト、Web Workers、Virtual Machinesは、Windows Azureで利用できる3つの異なるコンピューティングアプローチです。それらは、制御と責任のレベルが異なります。

  • Azure Webサイトは最も低いレベルの制御を持ちますが、Azureがこれを行うため、正常な仮想マシンとIISを維持することは気にしません
  • Webロールにより多くの制御が可能になります(トラフィックマネージャー、リモートデスクトップ)例えば
  • 仮想マシンはVMを完全に制御できるため、ほとんどの管理作業が必要です。

最適な選択はありません。それは、必要な制御レベル、必要な機能、Azureのものを維持するために残すものに依存するためです。そしてそれは大きな話題です。

より多くの情報に基づいた選択を行うための詳細については、この記事をご覧ください。

つまり、使いやすさと機能のトレードオフになります。

4
johnnyno

私が見つけたもう2つのことは、カスタムドメインサイトとマルチテナント構成でSSLを取得するコストです。

Webサイトの場合、標準インスタンスに加えて毎月支払う必要があります(最小インスタンスは最も安価なオプションです)。これは、カスタムドメインhttpsを取得するために、小規模インスタンスの場合は月あたり約70ドル、すべてのブラウザをサポートするSSLの場合は月あたり約41ドルかかることを意味します。

WebRoleの場合、XSインスタンスを取得し、独自のSSLを無料で追加できます。これは、1か月あたり約15ドルで、SSLを備えたカスタムドメインがあることを意味します。

マルチテナントWebサイトの場合は、チェックアウト マルチテナントAzureダイナミックワイルドカードCName

3
Farnam

Webロールは、複数のWebサイトをホストする仮想マシンです

1
mLar

これはよくある質問です。msdnからの抜粋をお伝えしたいと思います。

キャッシング、サービスバス、ストレージ、SQL Azureデータベースなどのサービスへのアクセス-Webサイト:はいWebロール:はい

ASP.NET、クラシックASP、Node.js、PHPのサポート-Webサイト:はいWebRole:はい

共有コンテンツと構成-WebSite:Yes WebRole:No

GIT、FTP- WebSite:YesでコードをデプロイWebRole:No

ほぼ瞬時の展開-WebSite:はいWebRole:いいえ

統合されたMySQL-as-a-serviceサポート-Webサイト:はいWebロール:はい

複数の展開環境(運用およびステージング)-WebSite:No WebRole:Yes

ネットワーク分離-WebSite:No WebRole:Yes

サーバーへのリモートデスクトップアクセス-WebSite:No WebRole:Yes

昇格されたアクセス許可でプログラムを実行する機能-WebSite:No WebRole:Yes

起動タスクを定義/実行する機能-WebSite:No WebRole:Yes

サポートされていないフレームワークまたはライブラリを使用する機能-WebSite:No WebRole:Yes

Windows Azure Connect/Windows Azure Network-WebSite:No WebRole:Yesのサポート

詳細については、次のリンクをご覧ください。 http://blogs.msdn.com/b/silverlining/archive/2012/06/27/windows-Azure-websites-web-roles-and-vms -when-to-use-which.aspx