Windows Azure我可以在同一个Extra小实例或Small实例上运行多个WebSite

时间:2011-08-26 11:06:05

标签: asp.net azure azure-sql-database multi-tenant cloud-hosting

我正在评估MS云Windows Azure以托管3个完全分离的网站。

每个网站都有自己的数据库,它们没有连接,所以有3个网站和3个数据库。

我的目标是优化启动项目的成本,并有可能按需扩大规模。

我想知道:

  • 如果可以在同一个实例上托管3个网站(超小实例或小实例)。
  • 如果可以在同一个Sql Azure数据库上托管3个数据库(所以我会使用我的3个数据库的SQL存储总量)或者每个网站数据库我必须支付一个SQL Azure实例。

感谢您抽出宝贵时间。

3 个答案:

答案 0 :(得分:20)

您可以在同一个实例上运行多个网站,从SDK 1.3开始,因为完整的IIS现在正在Web角色中运行。正如Jonathan在MSDN文章链接中指出的那样,您可以设置Sites元素来定义每个网站。您还应该查看Windows Azure Platform Training Kit,其中有一个专门围绕构建多站点Web角色的实验室。

您还可以利用Cloud NinjaWindows Azure Accelerator for Web Roles之类的内容,它提供了一个可以加载到您的Web角色中的多租户解决方案(查看Cloud Cover Show视频{{3} }了解更多信息)。

托管多个网站时,请记住他们在实例上共享相同的资源。因此,您可能会发现Extra Small实例无法满足您的性能需求(它仅限于768MB RAM和大约5Mbps带宽)。我认为你可以使用Small实例并扩展,因为你需要处理更多的流量。

答案 1 :(得分:8)

在过去的几个月里,我在一对超小型实例上运行了三个网站,包括albahari.com,linqpad.net和LINQPad许可服务器(使用LINQ to SQL)。诀窍是直接从blob存储中提供大型静态内容,这样就不会受到5MBit /秒I / O带宽的限制。而且我从来没有接近失去记忆的任何东西。

当您需要更高的可靠性,安全性和性能时,一对超小型Azure实例是共​​享主机的绝佳替代方案。

编辑:接近一年,Azure上的多个网站仍然没有问题。我永远不会回到共享主机。

答案 2 :(得分:6)

您绝对可以在同一个实例中运行3个网站。查看this MSDN article,其中显示了如何构建配置文件,以便您可以在一个角色中托管多个网站。有一点需要注意,因为您提到了“按需扩展” - 当您扩展具有多个网站的实例时,您正在扩展实例,这意味着所有网站将一起扩展。您无法仅扩展共享实例上的其中一个站点。

对于数据库,理论上可以这样做,但它是“手动”的,因为你必须在同一个数据库中的三个数据库中拥有所有表,你可能希望用某种类型为它们添加前缀指示符,以便您知道哪个表属于哪个应用程序。这当然不是推荐的做法,但如果它适用于您的解决方案,那么没有任何技术可以阻止您这样做。如果可能的话,我会推荐多个数据库。