[Windows Azure][IT鐵人賽系列] Day 22 - Windows Azure Connect

Windows Azure Platform在v1.3時提供了一項功能,可以把Windows Azure Platform內運行中的虛擬機器當做企業網路中一台電腦的能力,就有如將外部電腦視為企業內網路的電腦一樣,這個新功能稱為Windows Azure Connect...

Windows Azure Platform在v1.3時提供了一項功能,可以把Windows Azure Platform內運行中的虛擬機器當做企業網路中一台電腦的能力,就有如將外部電腦視為企業內網路的電腦一樣,這個新功能稱為Windows Azure Connect,它會透過IPSec的安全保護機制,以類似 VPN (Virtual Private Network) 的方式將安裝有Windows Azure Connect Client的電腦與Windows Azure的電腦串接在一起,利用這個能力,網管人員也可以將Windows Azure VM加入到企業的 Active Directory 網域中。而這也表示,雲端上的 Windows Azure VM 可以透過這個通訊方式,安全的連接到本地的SQL Server資料庫存取資料 (但對效能會有一定影響)。

image

透過 Windows Azure Connect,企業網路可以安全的和 Windows Azure 雲端上的 VM 相連接,並進行單向或雙向的資料傳輸,一個 VM 可以與多個企業網路的電腦連接,或是多個 VM 共享一台企業網路的電腦 (ex: SQL Server),大大提升了 Windows Azure VM 與企業系統的互通性。

Windows Azure Connect 分為三個部份:

  • Windows Azure Management Portal 中登錄的 Activation Token。
  • Windows Azure 雲端專案中的 Windows Azure Connect 設定。
  • 要與 Windows Azure VM 連接的電腦中的 Windows Azure Connect Client。

image

若要使用 Windows Azure Connect,必須要先註冊使用,因為 Windows Azure 目前是 CTP (Community Technology Preview),預設是不開放給一般註冊戶使用,你可以在新管理入口首頁的試用計畫登記,等待Windows Azure Team啟用功能,此時註冊的狀態會改為Active,此時你才可以透過管理入口的Virtual Network功能區,開始使用Windows Azure Connect的功能。

首先,請在 Visual Studio 建立 (或開啟現有的) Windows Azure 專案,筆者以一個 Web Role 應用程式來測試,讓應用程式存取本地的資料庫作為資料來源 (實作細節很簡單,只是連接資料庫和放一個 GridView 而已,筆者就不在此說明,留給你練習)。

這個部份請注意,對資料庫的連線字串請使用 [MachineName]\[SQL Server Instance Name] 的方式設定資料來源,例如 MyComputer (預設執行個體) 或 MyComputer\SQLEXPRESS (具名執行個體),因為 Windows Azure Connect 會使用電腦名稱 (NetBIOS over TCP/IP) 來連接目標電腦,而在不知道 IP 的情況下,使用電腦名稱是最好的方法。

接著,回到管理入口,在 Virtual Network 功能區中點選你的訂閱,此時工具列會顯示 Get Activation Token,按下它,可以取得你的訂閱的 Activation Token,所有使用 Windows Azure Connect 的電腦都要使用同一支 Activation Token。

image

image

將 Activation Token 複製出來後,請在 Visual Studio 中開啟角色的屬性設定,選擇 Virtual Network 頁籤,勾選 Activate Windows Azure Connect,並將 Activation Token 貼上文字方塊中。

image

此時,即可以 Visual Studio 先行部署此雲端應用程式到雲端,接著回到管理介面的 Virtual Network 功能區中,按下工具列上的 Install Local Endpoint 項目,此時會提示一個下載的路徑,此路徑會下載 Windows Azure Connect Client,這個用戶端軟體要安裝在要與 Windows Azure VM 連接的電腦。

image

image

請注意,在Windows Azure Connect CTP階段,這個Windows Azure Connect Client只支援英文語系,尚未支援中文,筆者使用的是Windows Server 2008 R2 英文版的虛擬機器進行測試,若你需要測試這個功能,請自行使用英文版的 Windows,否則在安裝 Windows Azure Connect Client 時會提示語系不正確的錯誤。另外,請務必使用IE瀏覽器下載,用其他的瀏覽器可能會無法作用。

在要連接的電腦上下載 Windows Azure Connect Client,並啟動安裝,依安裝程式的提示完成安裝即可,過程中沒有任何需要設定的地方。在安裝完成後,系統匣中會出現 Windows Azure Connect 的圖示:

image

在圖示上按右鍵,並選擇 Open Windows Azure Connect,會出現連線狀態的對話盒,因為目前還沒有將此電腦加入任何通訊群組,因此訊息會是 "This endpoint is not configured to connect"。

image

image

現在回到管理入口,選擇 Virtual Network –> [Your Subscription] –> Activated Endpoint,會看到目前安裝 Windows Azure Connect Client 的電腦已經出現在管理入口中,表示電腦已順利與雲端環境連接。

image

接著,等待前面所部署的 Windows Azure VM 完成後,我們可以先試著執行雲端上應用程式,因為和本地的資料庫的連線 (也就是 Windows Azure Connect) 還沒建立,因此一定會看到錯誤訊息。

image

現在,再回到 Virtual Network –> [Your Subscription] –> Groups and Roles,設定通訊群組將雲端的 VM 和本地的電腦進行連接。

image

請按下工具列上的 Create Group 項目,並且設定群組的資訊 (name, description),然後將本地的電腦和 Windows Azure VM 建立關聯 (connect from 是本地電腦,connec to 是雲端的 Windows Azure VM),然後按 Create 建立通訊群組,建立完成後會提示。

image

當通訊群組建立完成後,在管理入口即可看到通訊群組的資訊:

image

現在我們再執行雲端的應用程式,你應該會看到應用程式不再出現錯誤,而是出現資料繫結的結果,代表 Windows Azure Connect 已成功建立 VM 和本地電腦的連接:

image

Reference:

http://msdn.microsoft.com/en-us/WAZPlatformTrainingCourse_ConnectingAppsWithWindowsAzureConnect

http://msdn.microsoft.com/en-us/library/gg433122.aspx