如何在Windows Azure中连接2个虚拟机以具有双层架构?

时间:2014-02-03 11:52:58

标签: azure virtual-machine n-tier-architecture

如何在Windows Azure中创建2个连接的虚拟机,以便能够部署双层架构解决方案?

让我澄清一下这个场景,目前我在Windows Azure中使用了1个虚拟机,我安装了SQL Server 2008数据库和ASP.NET解决方案。

但是,我想创建一个非常简单的双层体系结构,其中SQL Server 2008数据库安装在Server1上,ASP.NET解决方案部署在Server2上。

那么,如何实现呢?我的意思是,如何连接这两个独立的虚拟机?以及如何协同运行单一解决方案?

在这种情况下,你能帮帮我吗?

谢谢!

3 个答案:

答案 0 :(得分:9)

似乎对虚拟网络给予了很多关注。这很好,但是......如果您要做的就是创建一个多层应用程序,其中少数虚拟机相互协作,您可以在同一个云服务中创建多个虚拟机(即它们,全部住在xyz.cloudapp.net)。

他们都会坐在一个公共IP地址后面,但考虑一下您拥有Web服务器和数据库服务器的情况:

  • 专门为Web服务器公开端口80和443(您可以拥有多个端口,并在这些VM之间对端口进行负载平衡)
  • 不要公开数据库服务器的任何公共端口

一旦部署到同一个云服务,云服务中的每个虚拟机都可以使用您分配给它的主机名直接与云服务中的任何其他虚拟机通信。

您还可以将Web和数据库层部署到不同的云服务,并且仍然可以在没有虚拟网络的情况下进行通信。如果您打开数据库服务器上的端口1433,现在您的Web层可以只打开与yourdb.cloudapp.net:1433的连接。当然,这意味着整个世界都可以这样做,但是......您可以在yourdb.cloudapp.net端口1433上应用端点ACL(访问控制列表),并且只允许您的Web层云服务的公共VIP。

如果您的Web和数据库层位于单独的云服务中并且您不希望数据层上有任何公开的端口,并且您不想通过内置负载均衡器,则需要虚拟网络

答案 1 :(得分:0)

您应该使用虚拟网络(http://www.windowsazure.com/en-us/services/virtual-network/)。此外,您可以将这两台计算机配置为单个Cloud Service的一部分,以确保它们封装在一起并通过单个cloudapp.net地址公开提供。请注意,要从Azure SLA中受益,您应该运行每个层的两个实例(Web / DB)。

请注意,您无法将现有VM添加到新的虚拟网络。

答案 2 :(得分:-1)

您可以创建虚拟网络,然后在同一网络中添加两个服务器(如果它们位于不同的云服务上)(这是使用快速创建时的默认设置)。但是,您无法对已创建的服务器执行此操作,因此您需要分离磁盘,在新网络中创建2个新服务器,然后将磁盘重新连接到新服务器。

如果您计划使用DC,则在虚拟网络中创建2个子网,并将DC放在一个,将服务器放在另一个中,因为您不希望DC获得不同的IP。