《Windows Azure Platform 系列文章目录》
Update 2015-03-10
Azure Connect已经retired。如果客户要实现混合云方式,请使用Azure Virtual Network的Site-to-Site或者Point-To-Site。
什么是Windows Azure Connect
之前几章我已经介绍过,在特殊情况下,我们会遇到一些场景:客户希望把他们的应用放在云端来利用云计算的便利性,但是为了安全的考虑希望数据库仍旧放在公司的内网。这样会牵涉到内网IP,路由器、防火墙的设置等等一系列的问题,这样是不是意味着Windows Azure不能方便快捷的连接到内网的数据库资源呢?答案是否定的。
利用Windows Azure Connect,Windows Azure用户可以在其Windows Azure托管服务和本地(内网)资源之间设置IP级别的安全网络连接,同时也保证了网络通信的安全性,概念上类似VPN。通过Windows Azure Connect,我们甚至可以访问本地的其他资源,比如共享文件夹、本地数据库、打印机等等。
如何使用Windows Azure Connect
在开始本次介绍之前,请先安装软件:
- 本机安装SQL Server 2008 R2
- SQL Server Management Studio
- Visual Studio 2010
- 最新版的Windows Azure SDK
一.配置本机SQL Server
1.打开SQL Server Management Studio并且连接本地SQL Server服务
2.选择本地服务,右键-->Properties
3.选择Security,选择SQL Server and Windows Authentication mode
4.在Connections里选择"Allow remote connections to this server"
5.打开SQL Server Configuration Manager,确保SQL Server Browser服务已经停止
6.在SQL Server Network Configuration / Protocols for SQLEXPRESS里,设置TCP/IP为Enable
7.选择TCP/IP,在IP Addressess选项里,IPALL-->设置TCP Port为1433
8.选择OK并重启SQL Server
二.设置本地防火墙规则
1.为了允许云计算托管的服务能连到本地SQL Server服务,需要我们添加防火墙规则。打开Windows防火墙,选择"高级设置"
2.在入站规则里,选择"新建规则"
3.在"规则类型"里选择"端口"
4.在"协议和端口"里,规则选择"TCP",特定本地端口输入1433
5.在操作里,选择"允许连接"
6.配置文件-->选择所有的规则
7.最后我们给这个创建的规则起名,并选择"完成"
三.安装本地终结点
1.登录Windows Azure用户管理界面https://windows.azure.com/
2.左侧列表选择"虚拟网络"
3.点击"安装本地终结点"
4.会弹出一个安装的对话框,我们选择"将链接服务到剪切板"。
5.然后选择"确定"按钮。并且重新打开IE浏览器,会提供我们需要安装软件,注意一定要选择"运行",不能选择保存。
6.开始安装程序
7.安装完毕后,会在本地出现一个图标,表示当前的机器已经加入了Connect,如下图
这个软件会每5分钟自动刷新一次,可以得到当前的连接信息。我们也可以手动刷新。在用户管理界面选择"激活的终结点"就能看到自己的机器。
其中名称,就是我本机的机器名,我们可以通过查看本机的机器名来进行验证。
四.部署云端应用。
1.登录Windows Azure用户管理界面。"虚拟网络"列表里-->点击"获取激活令牌"
2.点击"将令牌复制到剪切板"
3.新建一个Windows Azure Project,命名为"Azure Connect",添加一个Web Role
4.Web Role--> 右键属性,在Virtual Network里,复制剪切板的内容。
5.在WebRole-->Default.aspx里,添加DataGrid,SQL Connection选择本机的SQL Server数据库下的某张表。
6.修改WebRole-->Web.config-->将DataGrid生成的connectionstring修改成以下的形式
<connectionStrings>
<add name="employeeinfoConnectionString" connectionString="Data Source=[LocalSQLServerName], 1433;Initial Catalog=[LocalDataBase];User ID=[username];Password=[password]"
providerName="System.Data.SqlClient" />
</connectionStrings>
7.发布Azure Project至Windows Azure。
8.部署成功后,在"虚拟网络"-->"激活的终结点"里能看到:
其中
- 第一行:名称LEIXXXXX,类型为计算机的。是我本地的PC机器。
- 第二行:名称为RDXXXXX,类型为角色实例的。是我在云端的托管服务。
五.建立连接组
在默认情况下,本地的PC机器和云端的Azure托管服务不会进行连接。
最后,我们就要让能够让机器和Azure服务进行连接。
打开"虚拟网络"-->"创建组",我们以此添加终结点和Azure角色。
最后在"组合角色"里就能看到我们创建的终结点和Azure角色
我们回到本地机器的界面,会发现托盘图标已经改变了,状态也变为Connected了。
六.测试本地机器和Windows Azure之间的连接
1.我们打开之前部署的Azure托管服务。
这样托管在Windows Azure的云服务就可以直接连接到本机的SQL Server 2008 R2数据库里了。
七.远程桌面连接云端应用,然后ping本地主机
1.回到之前的新建的Web Project里,Web Project里新增EnablePing.cmd文件,输入如下命令:
Echo Enable ICMP
netsh advfirewall firewall add rule name="ICMPv6 echo" dir=in action=allow enable=yes protocol=icmpv6:128,any
exit /b 0
2.选择EnablePing.cmd文件,右键-->Copy to Output Directory-->Copy Always
3.在ServiceDefinition.csdef文件里,在<WebRole>节点里添加如下内容
<Startup>
<Task commandLine="EnablePing.cmd" executionContext="elevated" taskType="simple" />
</Startup>
4.设置远程桌面连接的用户名和密码,并且发布Azure Project
5.通过远程桌面连接登录到云计算中心的计算节点里。然后ping本地机器的机器名
我们甚至可以让本地机器连接Windows Azure计算节点共享的文件夹。(过程略)