自從用Microsoft Azure VM建立完Web App之後緊接著就面臨了另一個問題,就是當使用者多到Server負擔的上限時,如何去做到分流達成負載平衡(LoadBalance),查了一下資料發現,微軟於201603時有更新了虛擬機器的負載平衡功能,也讓負載平衡更容易上手,以下就是簡單的建立負載平衡器的步驟供大家參考~
step 1 在建立負載平衡器之前,我們必需先建立[可用性設定組(Availability set)],可用性設定組可以將多台VM組成一個群組,負載平衡器則會在這多部虛擬機器之間分配流量
- 容錯域(Fault Domain) 在可用性集中,容錯域的數量就代表這個可用性集會把虛擬機器分佈在幾個不同的機櫃之中,主要就是避免虛擬機器建立在相同的機櫃中,增加了因為硬體故障就同時發生問題的風險。
- 更新域(Update Domain) 更新域讓你可以將虛擬機器分成不同的群組,每次新增虛擬機器進可用性集時就會放在另一個更新域。當 Azure 機房在進行系統升級或預定維護作業時,會一次處理一個群組,對使用者而言就是一次只會重啟同一群內的虛擬機器,但順序是不固定的。
step 2 接著我們就可以開始建立Vm ,記得將剛剛建立的Availability set加入新建的Vm中(*Vm建立完成後就不能修改Availability set了喔~)
接下來我們可以到儀表板點選剛剛建立的Availability set確認是否有加入剛才建立的VM
step 3 接著就可以開始建立我們的負載平衡器了(Load Balancer)
- 這邊我們先選擇public Ip(*待會要透過負載平衡器連入Web的IP)
step 4 建立好負載平衡器後,我們到負載平衡器的設定點選[後端集區(backend pools)] 將剛剛建好的Availability set加入,之後我們會透過負載平衡器的公用IP去連結backend pools裡面的VM
step 5 接著我們點選[探查(Health probes)] ,Health probes主要目的是要用來檢查Vm的健康狀態(伺服器是否正常運作中),因為是Web網站,所以就先選擇通訊協定Http
- path : 探查的路徑( “/” 表示IIS的根目錄 ,也可在後面加上應用程式的路徑 )
- Interval : 負載平衡器會定期探查端點,此為檢查時間的區隔
step 6 最後一個步驟,我們須要建立[負載平衡規則(Load balancing rules)]
- Session Persistence : 選擇[Client IP] 會根據用戶端的 IP 位址固定在同一台虛擬機器(有利於Session的運作,但可能會降低負載平衡的彈性),選擇[Client IP and protocol]則會加上通訊協定來做判斷
到這個步驟基本上我們已經完成了[負載平衡器]的設定
step 7 最後一個步驟,我們就要來驗證,[負載平衡器]的效果,在這裡提供一個簡單的方法,我們可以遠端至VM,將兩台VM的 iisstart.htm 修改為不一樣的內容(*方便區分連到哪一台)
接著我們先啟動其中一台VM,開啟瀏覽器貼上 http://[負載平衡器] IP 位置,重瀏覽器上可以發現我們連到的是appxWeb01這台VM
接著我們啟動令另一台VM,再將第一台VM關閉,一樣在瀏覽器貼上 http://[負載平衡器] IP 位置,我們會發現[負載平衡器]就導向另一台健康的VM,這樣也表示我們已經成功設定好[負載平衡器]了
以上就是簡單的建立負載平衡器的步驟供大家參考~更詳細的內容可以去參考官方的文件喔~
參考資料 https://www.azure-vm.recipes/ , https://docs.microsoft.com/zh-tw/azure