[Microsoft Azure VM] Web App 如何達成 負載平衡(Load Balance)

自從用Microsoft Azure VM建立完Web App之後緊接著就面臨了另一個問題,就是當使用者多到Server負擔的上限時,如何去做到分流達成負載平衡(LoadBalance),查了一下資料發現,微軟於201603時有更新了虛擬機器的負載平衡功能,也讓負載平衡更容易上手,以下就是簡單的建立負載平衡器的步驟供大家參考~

step 1  在建立負載平衡器之前,我們必需先建立[可用性設定組(Availability set)],可用性設定組可以將多台VM組成一個群組,負載平衡器則會在這多部虛擬機器之間分配流量

  • 容錯域(Fault Domain) 在可用性集中,容錯域的數量就代表這個可用性集會把虛擬機器分佈在幾個不同的機櫃之中,主要就是避免虛擬機器建立在相同的機櫃中,增加了因為硬體故障就同時發生問題的風險。
  • 更新域(Update Domain) 更新域讓你可以將虛擬機器分成不同的群組,每次新增虛擬機器進可用性集時就會放在另一個更新域。當 Azure 機房在進行系統升級或預定維護作業時,會一次處理一個群組,對使用者而言就是一次只會重啟同一群內的虛擬機器,但順序是不固定的。

azure_lb_0919

step 2 接著我們就可以開始建立Vm ,記得將剛剛建立的Availability set加入新建的Vm中(*Vm建立完成後就不能修改Availability set了喔~)

azure_lb_0919-1

接下來我們可以到儀表板點選剛剛建立的Availability set確認是否有加入剛才建立的VMazure_lb_0919-2

step 3 接著就可以開始建立我們的負載平衡器了(Load Balancer)

  • 這邊我們先選擇public Ip(*待會要透過負載平衡器連入Web的IP)

azure_lb_0919-3

step 4  建立好負載平衡器後,我們到負載平衡器的設定點選[後端集區(backend pools)] 將剛剛建好的Availability set加入,之後我們會透過負載平衡器的公用IP去連結backend pools裡面的VM

azure_lb_0919-4

azure_lb_0919-5

step 5 接著我們點選[探查(Health probes)] ,Health probes主要目的是要用來檢查Vm的健康狀態(伺服器是否正常運作中),因為是Web網站,所以就先選擇通訊協定Http

  • path : 探查的路徑( “/” 表示IIS的根目錄 ,也可在後面加上應用程式的路徑 )
  • Interval : 負載平衡器會定期探查端點,此為檢查時間的區隔

azure_lb_0919-6

step 6 最後一個步驟,我們須要建立[負載平衡規則(Load balancing rules)]

  • Session Persistence : 選擇[Client IP] 會根據用戶端的 IP 位址固定在同一台虛擬機器(有利於Session的運作,但可能會降低負載平衡的彈性),選擇[Client IP and protocol]則會加上通訊協定來做判斷

    azure_lb_0919-8

到這個步驟基本上我們已經完成了[負載平衡器]的設定

step 7 最後一個步驟,我們就要來驗證,[負載平衡器]的效果,在這裡提供一個簡單的方法,我們可以遠端至VM,將兩台VM的 iisstart.htm 修改為不一樣的內容(*方便區分連到哪一台)azure_lb_0919-10

接著我們先啟動其中一台VM,開啟瀏覽器貼上 http://[負載平衡器] IP 位置,重瀏覽器上可以發現我們連到的是appxWeb01這台VM

azure_lb_0919-9

接著我們啟動令另一台VM,再將第一台VM關閉,一樣在瀏覽器貼上 http://[負載平衡器] IP 位置,我們會發現[負載平衡器]就導向另一台健康的VM,這樣也表示我們已經成功設定好[負載平衡器]了

azure_lb_0919-11

以上就是簡單的建立負載平衡器的步驟供大家參考~更詳細的內容可以去參考官方的文件喔~

參考資料 https://www.azure-vm.recipes/  ,  https://docs.microsoft.com/zh-tw/azure

 

Microsoft Azure VM 建立 Windows Web App 分享~~~

    最近因為工作的關係,需要再Azure上建立一個Web App 因此我需要一個Web Server VM 和Sql Server  Vm,所以就開始上網查了一些關資料,經過努力終於建立好一個Web  App,以下就是建立Azure Vm的簡單分享~

    開始前我們需要先有一個帳號登入Azure (https://portal.azure.com) 第一次使用可以有一個月的試用期,並且會贈送6000點的點數,大家可以善用這些點數去熟悉Azure的一些功能 ,登入後就可以開始建立第一個Azure VM了

ps.申請帳號時需輸入信用卡資訊~~這是必填的~所以就勇敢的給他填下去吧~~

setp 1     建立Web App VM

1.點選[新增]在右邊的視窗直選擇[Windows Server 2016 Datacenter]

azure-1

2.填入*的必填欄位後點選[確定]前往下一個步驟

  • User name and Password :就是之後遠端登入VM時的帳號密碼
  • Resource group:如果沒有群組就新建一個
  • 位置 :VM建立的位置,通常選擇離自己近的區域

azure-2

3.  選擇符合自己需求的 VM 機器(~如果將來有需要用到Load balancer需要選有這一 個選項的VM)

azure-3

4.  此步驟基本上可以直接按[確定]前往下一步,需要注意的如果有需要用到Load balancer需建立一個Availability set( 要達成負載平衡的vm群組設定 ),如果不需要就可以直接前往下一步

azure-4

5.按下[購買]就會開始建立VM ,建立好之後就可以在儀表板看到剛剛建立的VM

azure-5

6.點選建立好的VM進入VM的詳細資訊頁面,複製Public Ip address使用遠端桌面就可以進入剛剛建好的VM

azure-6

7. VM基本上已經裝好Internet Inforemation Service 所以瀏覽器入 http://localhost 看到以下畫面代表Web Service已經基本的部屬成功,剩下的就是把應用程式加入就可以了

azure-7

8. 接下來測試一下是否可以從外部去連結到VM,因此我們回到自己的本機開啟瀏灠器輸入http://[Vm ip] 正常的話應該要出現跟上圖一樣的畫面,如果是出現以下畫面,大部分的原因是被VM的防火牆擋住了

azure-8

9.為了要可以從外部連接到VM Web Service我們需要加入Http的[輸入規則]讓防火牆 可以順利通過,所以我們回到Azure VM 的設定畫面點選該VM下的 Networking加入Http 使用的 80 port ,加入後我們restart  VM 再次輸入 http://[Vm ip]  就可以正常顯示IIS的起始畫面了

azure-9

10.如果您的應用程式需要用到 Asp.Net Framework 的話,需要自己在VM上手動安裝喔 ~可以從Service Management  去安裝需要的角色~~

azure-10

step 2   建立Web SQL VM

1.點選[新增]在右邊的視窗直選擇[Windows Server 2016 Datacenter]

azure-11

2.其他的步驟跟建立Web Vm 大同小異,選擇這個方案的原因是VM建起來後就會先幫我們安裝好SQL Server了

3.VM 建立好之後一樣要記得在Azure 該VM的設定頁面中加入MSSQL預設的1433port如此一來才可以從外部連結到

azure-12

4.當我們VM建好後除了可以遠端進去管理DataBase外,也可以經由SQL的角色從本機的 SQL Server Management Studio 遠端連接管理DataBase

           以上就是很基本的Azure Web VM and Sql VM 的基本安裝方式,Azure 上還有許多其他很實用的功能,例如load balancer ,Web app(不需建立VM) ,Sql DataBase(不需建立VM) 等,有時間的時候再將有使用過的其他功能Post上來與大家分享~~

這是不是太棒了 ~ 胖達 (Panda)!!!
3B5766BC-0023-465A-ACA5-47631A62A2C7

更多功能的介紹與使用可以參考https://docs.microsoft.com/zh-tw/azure/index官方文件有很詳細的說明喔~~~