通过Windows Azure Connect ,实现本地机器与Windows Azure 虚拟机的相互连接(转+译)
Posted on 2012-02-08 19:44 阳光VIP 阅读(341) 评论(0) 收藏 举报公告 :本博客为微软云计算中文博客 的镜像博客。 部分文章因为博客兼容性问题 ,会影响阅读体验 。如遇此情况,请访问 原博客 。
新版Windows Azure 中有许多非常有用的新特性。上一篇文章,我简单介绍了一下以远程桌面访问Windows Azure虚拟机。本文中我会讲到另外一个非常酷的特性 - Windows Azure Connect.
什么是 Windows Azure Connect
以下是MSDN中,对于Windows Azure Connect 的定义。
有了Windows Azure Connect,您可以使用简单的用户界面来配置您公司内的本地电脑或虚拟机与Windows Azure内role之间的IP-sec连接。IP-sec利用密码安全服务来保证IP网络上通信的安全性。
![]()
上图可以看到,使用Windows Azure Connect, Worker Role 1 和 Web Role 1 连接至开发用电脑和数据库服务器,它们有一些是位于公司内,有一些则不是。
有了Windows Azure Connect,部署在云端的各种role实例都可以使用公司内部网或者其他任何地方的资源了。这意味着role实例可以连接本地数据库,访问本地共享资源,文件夹和打印机等等。
Windows Azure Connect与Windows Azure AppFabric的区别
Windows Azure Connect 所提供的功能似乎与Windows Azure AppFabric有所重叠。它们都是为了解决云端和本地资源的相互通信而生的。下表列出了我所认为的区别。
|
|
Windows Azure Connect |
Windows Azure AppFabric |
|
目的 |
本地机器与Windows Azure role的IP-sec 连接 |
运行于云端的应用服务 |
|
连接性 |
IP-sec,Domain-joint |
Net Tcp,Http,Https |
|
组件 |
Windows Azure Connect Driver |
Service Bus, Access Control, Caching |
|
用途 |
Windows Azure role 连接本地数据库服务。 Windows Azure role使用本地共享文件,文件夹和打印机等。 Windows Azure role加入本地AD。 |
向互联网暴露本地服务。 将授权服务置于云端。 与现有的身份认证服务相结合,例如Live ID,Google ID等等。 使用分布式缓存。 |
以下是一些可以使用的场景:
|
场景 |
Connect |
AppFabric |
|
希望互联网上的用户能够访问到公司内部网部署的服务 |
|
Y |
|
在Windows Azure内部署了一个网站,该网站需要使用到公司内部的数据库。我不希望将数据库暴露给互联网。 |
Y |
|
|
公司内部网部署了一个服务,其使用AD授权方式,同时Windows Azure内部署了一个网站,要使用该服务。 |
Y |
|
|
公司内部网部署了一个服务,互联网上的用户需要通过验证和授权才能使用该服务。 |
|
Y |
|
公司内部网部署了一个服务,Windows Azure内部署了一个网站。互联网用户可以使用该服务。而通过AD授权,用户可以在网站上获得更多功能。 |
Y |
Y |
如何开启Windows Azure Connect功能
我们谈论了许多 Windows Azure Connect 与Windows Azure AppFabric之间的区别。我们看一下如何开启并使用Windows Azure Connect。首先,这些新特性都处于CTP 阶段,我们需要先申请才能使用。访问Windows Azure Portal ,如下找到Windows Azure Connect。
![]()
在该页,您可以发送加入Beta项目的申请。几天后,微软会向您发送一份邮件(您Live ID的邮件地址)。
之后,我们可以到 Windows Azure Connect 已经被激活了,我们点击顶部的Connect按钮,或者点击左边导航栏的Virtual Network 项。
如果我们首次进入Connect页面,我们必须开启Windows Azure Connect。
![]()
在页面上,我们可以看到一些Windows Azure Connect 的信息。
![]()
将本地机器加入Windows Azure Connect
Windows Azure Connect可以在本地机器和Windows Azure role之间搭起一条 IP-sec 连接。所以首先需要将一台本地机器加入我们的Windows Azure Connect。点击页面顶部Install Local Endpoint 按钮,网站会给出一个URL。在需要被加入Connect的机器上打开该网址,并下载软件。
![]()
安装完之后,任务栏右下角会出现一个托盘图标,表明当前机器已经加入了Connect。
![]()
![]()
该软件每5分钟便会刷新一次,得到当前的连接信息。当然我们也可以手动刷新。在portal页面选择Activated Endpoints 节点,在Windows Azure Portal 中我们已经可以看到该机器了。
![]()
将Windows Azure Role 加入Windows Azure Connect
在Visual studio中创建一个简单的ASP.NET web role,右击该项目,打开其属性(properties)页面,在Virtual Network 标签页内,勾选Activate Windows Azure Connect选项。
下一步,从Windows Azure Portal 上获得激活令牌。在相同的页面,点击Get Activation Token按钮。
![]()
将该令牌复制到Visual Studio先前的Connect标签页中。如下图:![]()
之后,将该应用部署至Windows Azure。 在完成部署之后,我们可以在Windows Azure Portal - Virtual Connect看到role实例。
![]()
建立连接组
最后一步,我们需要创建一个连接组,包含上文的本地机器和role实例。
直到我们为其创建连接组,本地机器和实例默认都不会进行连接。机器和实例可以被用于多个连接组。
在Virtual Connect 页面,在左导航栏点击Groups and Roles 节点, 在顶部点击Create Group 按钮。接着会出现一个对话框,我们需要指定连接组名称,备注,并将本地机器和role实例选入该组内。
![]()
在Windows Azure更新完 连接组设置后,我们可以在该页面看到连接组和端点。
![]()
我们回到本地机器的界面,会发现托盘图标已经改变了,状态也变为Connected了。
![]()
Windows Azure Connect 每5分钟便会更新一次连接组信息。如果你发现状态仍然为Disconnected 状态,右键点击托盘图标,点击刷新按钮,让软件取得最新的连接组信息。
测试本地机器和Windows Azure实例之间的 Windows Azure Connect
现在本地机器和Windows Azure role 实例已经连接上了。这意味着它们已经可以在IP级别进行相互通信了。举例,我们可以打开本地SQL Server 端口,让role通过机器名或者IP地址来连接该 SQL Server。
Windows Azure Connect 使用 IPv6 连接本地机器和role实例。您可以在Windows Azure Portal Virtual Network选中该端点,可以查看其IP地址。
下面我会进行2个简单的试验。第一个是PING。
当本地机器和role实例连接好之后,在防火墙设置中打开ICMP协议后,我们便能PING到它们。在本地机器和role实例内分别打开命令行窗口,执行如下命令:
netsh advfirewall firewall add rule name="ICMPv6" dir=in action=allow enable=yes protocol=icmpv6
感谢 Jason Chen, Patriek van Dorp, Anton Staykov 和 Steve Marx,它们帮助我开启了ICMPv6 设置。 完整的讨论在这里 。
![]()
使用Remote Desktop Access 特性,登录Windows Azure role 实例。可以参考前一篇文章 。
我们现在可以通过机器名来PING本地机器或者role实例了。如下是我在Windows Azure role实例内PING我的本地机器。
![]()
我们也可以使用IPv6地址来PING 对方。下图是我在本地机器上使用IPv6地址来PING role实例。
![]()
另外一个试验便是文件夹共享。在本地我共享了一个文件夹,如果登录到role实例上,我们可以在文件管理器内看到该共享目录。
![]()
总结
本文我介绍了另外一个新特性- Windows Azure Connect。利用该新特性 ,我们本地资源和role实例可以进行相互连接。这样,Windows Azure应用便可以使用我们本地资源了。例如数据库,打印机等,且无需向互联网暴露这些资源。
浙公网安备 33010602011771号