AWS - Elastic load Balance的創建使用 (上)

EC2裏面有個很重要的功能就是Elastic Load Balancer,配合Auto Scaling和RDS的Multip-AZ使用,可以實現非常經濟高效的高可用的結構。


我們先看看最基本的一個ELB結構。ELB根據DNS以輪換的方式對用戶的請求實現數據分流和高可用。

wKioL1PgEBnC017wAABe3K-X22s819.png

以下的實驗設計來自amazon的企業培訓教案(豆子在網上找到的,還不錯)。這裏我會創建2個Web Server,並通過user data自動配置bootstrap的shell腳本。這樣的好處是我不需要在搭建完服務器之後再手動的配置一遍了。


創建EC2的實例過程很簡單,在第三步的時候需要在高級裏面添加一些Shell腳本。該命令會從指定的url下載一個sh腳本並執行


wKiom1PgDwGy82SPAACnWmOJHt4495.png

這個sh的內容就是自動安裝LAMP的相關程序,並在apache的目錄下解壓預先配置的一些php文件


wKiom1PgEKnyZgDHAAAuuZl9vYM675.png


虛擬機創建好了


wKiom1PgDwHDUVQEAABjbIWnttI653.png


登錄看看腳本執行沒有,可以看見,examplefiles.zip已經解壓,這樣當我們打開該服務器的公網地址或者DNS的時候,會自動加載index.php 文件,並顯示一些我們希望看見的數據作爲對比


wKioL1PgEBuQJ9s8AAA11XLHkQM416.png


看看index.php文件是什麼內容


wKioL1PgEBuS2q4uAACFzh3E9vA114.png

在瀏覽器上面輸入EC2的DNS以後可以看見該虛擬機的實例號,AZ區域和CPU的負荷

wKiom1PgDwKhRnaXAAAvNKBJ1S8601.png

wKiom1PgDwKR8Hk_AAApxZwTPGA293.png


現在,我們來創建一個ELB

wKioL1PgEByyyl3hAACGQXFrbMA662.png


輸入名字和子網,這裏我們只需要簡單的80端口

wKioL1PgEB3Qrp8UAAB9GqGUNsA247.png

Ping Protocol是用來做健康檢查的,每隔5秒,會自動Ping 80端口確認,注意Ping Path 我指向的是/,這個會指向web server的默認的主頁進行查詢, 不管主頁是叫做index.html或者其他任何名字


wKiom1PgDwSQw2ubAABsab_k5Dw258.png

配置Security group

wKioL1PgEB3AgCZrAABZ5s1-9QA688.png

把我們之前配置的2個Web Server加入ELB

wKiom1PgDwTApw16AACD3woJ9qk880.png


最後確認一下即可

wKiom1PgDwXR85iuAACHBjcjbgE861.png

這樣就創建好了。注意他的Port Configuration,ELB有點類似代理服務器或者NAT服務器,所以80端口進入他,並轉發到集羣裏服務器的80端口

wKioL1PgEB-CB-VKAABMitujfbE126.png

查看一下描述,因爲他的名字很長,可以通過CNAME來創建一個簡單好記的名字。

wKioL1PgEB_g8Mh-AACRIbHN6EU982.png

狀態表面已經是InService,準備就緒


wKiom1PgDwaT7ELPAAB3WTYW0vM766.png

最後來測試一下,輸入ELB的URL,每次刷新,都會指向不同的Web Server實現分流


wKiom1PgDwaAKVSGAAAigc_bPME131.png

wKioL1PgECDCN6ZwAAAnqaUYRwU574.png


我們還可以通過cloudwatch來檢測ELB的Metric參數

wKioL1PgECLwu0hbAADlM3xDCXU299.png



這樣一個基本的ELB就實現了。


下一篇博客我們來看看如何配合Auto Scaling實現在不同負載的情況下,虛擬機如何動態的自動創建和刪除。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章