【最佳實踐】搭建可自動伸縮的Discuz!論壇網站
Discuz!論壇是全球成熟度最高、覆蓋率最大的論壇軟件系統之一。用戶對論壇的訪問可分為高峰期和平峰期,若論壇采用多服務器部署模式且滿足高峰時期的負載需求,平峰期必有部分服務器處于閑置狀態,增加了不必要的成本,也造成了資源浪費。
彈性伸縮可幫助您解決以上問題。當您在論壇的服務器系統中應用彈性伸縮后,彈性伸縮可以根據您設定的策略,自動地增加或減少服務器的數量,在保證您的網站正常運轉的同時節約成本。本實踐以搭建可自動伸縮的Discuz!論壇為例,介紹了如何使用彈性伸縮服務搭建一個可自動增加或減少彈性云服務器數量的Web服務。
為了實現創建可自動伸縮的Discuz!論壇,您需要按照表1中的步驟進行網站的搭建,本文重點介紹創建彈性伸縮實現云服務器自動伸縮的過程。當網站的負載增加時云服務器的CPU使用率會增大,負載降低時CPU使用率會降低。我們配置兩條監控CPU使用率的告警策略,分別在CPU使用率高于70%時增加一臺云服務器,在CPU使用率低于30%時減少一臺云服務器,保證Discuz!論壇始終有合適數量的云服務器,實現自動伸縮云服務器的功能。
任務
分類
子任務描述
說明
搭建網站
申請服務
申請虛擬私有云
申請為云服務器提供網絡服務的虛擬私有云vpc-DISCUZ。
購買彈性公網IP
需申請使云服務器和互聯網互通的彈性公網IP。
創建安全組并添加規則
為了保證論壇的網絡安全,需要設置安全組對網絡訪問進行控制。創建的安全組sg-DISCUZ。
購買彈性云服務器
需要購買兩臺彈性云服務器,云服務器discuz01用于部署論壇數據庫,discuz02用于部署論壇業務。購買云服務器discuz01時綁定之前購買的彈性公網IP,discuz02暫不綁定彈性公網IP。
配置服務器
在discuz01上搭建數據庫
在discuz01上安裝MySQL數據庫,啟動MySQL,設置開機自啟動。
在discuz02上部署網站代碼
先將discuz01上的彈性公網IP解綁,再綁定至discuz02,在discuz02上部署Web環境和網站代碼。
配置特性
釋放彈性公網IP
為了節省彈性公網IP資源,使用負載均衡服務前請先釋放discuz02綁定的彈性公網IP。
創建彈性負載均衡
為了在伸縮組中均衡訪問網站的流量,需要購買增強型負載均衡-elb-DISCUZ。
制作鏡像
為了后續增加的云服務器可以自動搭建Web環境和部署網站代碼,需要制作discuz02的鏡像discuz_centos6.5(40GB),該鏡像在創建伸縮配置時作為私有鏡像使用。
創建彈性伸縮
-
創建伸縮配置
伸縮配置是伸縮組內實例(彈性云服務器)的模板,定義了伸縮組內待添加的實例的規格數據。創建伸縮配置as-config-discuz。
創建伸縮組
伸縮組是云服務器進行伸縮的基本單位,伸縮活動將會以伸縮組為單位進行。創建彈性伸縮組as-group-discuz。
創建伸縮策略
伸縮策略能夠觸發伸縮活動,我們配置兩條監控CPU使用率的告警策略,在業務負載增加時增加云服務器數量,在業務負載減少時減少云服務器數量。
手動移入實例
為保證discuz02可以和后續移入伸縮組中的服務器共同承載論壇業務,需要將discuz02手動移入伸縮組。
修改最小實例數
最小實例數定義了伸縮組中云服務的最少數量,修改最小實例數為1后,伸縮組至少會保證有一臺云服務器。discuz02是手動移入,在實例移除策略中被移出的優先級最低,故修改最小實例數可以保證discuz02在伸縮組中不被移出。
訪問網站
驗證配置結果
驗證網站是否可以正常訪問
獲取負載均衡服務的彈性公網IP地址,在瀏覽器中輸入http://彈性公網IP地址/forum.php進行驗證。若可以訪問則說明各項配置已生效。
請您參考《搭建Discuz!論壇網站》完成表1中搭建網站部分的任務。
伸縮配置定義了移入伸縮組的云服務器的規格,為了移入伸縮組的云服務器能自動承載業務,我們使用鏡像discuz_centos6.5(40GB),并使伸縮配置中的參數和discuz02保持一致。
登錄管理控制臺,選擇“計算 > 彈性伸縮”。
在“伸縮實例”頁面,單擊“創建伸縮配置”。如圖1和圖2所示,請參考表2進行關鍵參數配置,未列出的參數選擇默認值即可。
圖1 伸縮配置參數(01)
圖2 伸縮配置參數(02)
參數
解釋
取值樣例
配置模板
選擇“使用新模板”,重新選擇云服務器類型、vCPUs、內存、鏡像、磁盤等參數信息,創建新的彈性伸縮配置。
使用新模板
規格
可以選擇多個規格,避免在伸縮時規格售罄的風險。規格使用優先策略包括“選擇優先”和“成本優先”,請根據需要選擇。
s3.medium.2
s3.large.2
鏡像
為伸縮組中移入的實例提供軟件和系統應用配置的模板,選擇私有鏡像discuz_centos6.5(40GB)。
私有鏡像 discuz_centos6.5(40GB)
磁盤
為伸縮組中的移入的實例提供存儲和存儲管理功能。
系統盤 普通IO 40GB
數據盤 普通IO 100GB
安全組
安全組是一個邏輯上的分組,用來實現安全組內和組間彈性云服務器的訪問控制,加強彈性云服務器的安全保護。選擇安全組sg-DISCUZ。
sg-DISCUZ
彈性公網IP
伸縮組中已經添加了負載均衡后,伸縮配置可以不配置彈性公網IP。系統會自動將加入伸縮組的實例添加到負載均衡上,伸縮組中的實例統一通過負載均衡綁定的彈性公網IP對外提供服務。
不使用
伸縮配置參數配置完成后,單擊“立即創建”。
單擊“創建彈性伸縮組”,如圖3和圖4所示,請參考表3進行關鍵參數配置,未列出的參數選擇默認值即可。
圖3 設置伸縮組參數(01)
圖4 設置伸縮組參數(02)
參數
解釋
取值樣例
最大實例數
伸縮組中彈性云服務器數量的最大值。
50
期望實例數
伸縮組中期望的云服務器數量,本實踐中要將搭建Discuz!論壇的云服務器手動移入,為避免移入前發生伸縮活動,將期望實例數設置為0。
0
最小實例數
伸縮組中彈性云服務器數量的最小值。
0
虛擬私有云
為伸縮組中的實例提供所使用的網絡。必須和云服務器discuz02屬于同一VPC。
VPC-DISCUZ
子網
子網可以方便您管理vpc中的網絡。選擇中申請虛擬私有云時創建的子網。
vpc-test
負載均衡
為伸縮組中的實例均分流量,選擇增強型負載均衡器elb-DISCUZ。后端端口配置為需要監聽的業務端口,示例中配置為80,權重為1。
使用增強型
健康檢查方式
健康檢查方式選擇“負載均衡健康檢查”,負載均衡健康檢查是通過系統向后端云服務器發起心跳檢查的方式來實現的,推薦使用該方式。
負載均衡健康檢查
參數配置完后后,單擊“立即創建”。
返回彈性伸縮組列表,若伸縮組為“已啟用”狀態,說明伸縮組創建成功。
為了能實現云服務器的自動伸縮,我們配置兩條監控CPU使用率的告警策略,在業務負載上升時增加云服務器數量的策略as-policy-discuz01,在業務負載降低時減少云服務器數量的策略as-policy-discuz02。
在已創建的彈性伸縮組“as-group-discuz”所在行,單擊操作列的“查看伸縮策略”。
單擊“添加伸縮策略”,參考圖5和圖6配置伸縮策略as-policy-discuz01的參數,當系統連續3次監控到CPU使用率超過70%時,觸發伸縮策略as-policy-discuz01,伸縮組會增加一臺彈性云服務器。
圖5 伸縮策略as-policy-discuz01參數(01)
圖6 伸縮策略as-policy-discuz01參數(02)
單擊“確定”。
再次單擊“添加伸縮策略”,參考圖7和圖8配置伸縮策略as-policy-discuz02的參數,當系統連續3次監控到CPU使用率低于30%時,觸發伸縮策略as-policy-discuz02,伸縮組會減少一臺彈性云服務器。
圖7 伸縮策略as-policy-discuz02參數(01)
圖8 伸縮策略as-policy-discuz02參數(02)
單擊“確定”。
返回伸縮策略列表頁面,若伸縮策略為“已啟用”狀態,說明伸縮策略創建成功。
手動將云服務器discuz02移入伸縮組。
單擊伸縮組as-group-discuz名稱進入伸縮組詳情頁面。
切換到“伸縮實例”頁簽,參考圖9操作將discuz02手動移入伸縮組中。
圖9 將discuz02移入伸縮組
為保證discuz02不被伸縮活動移出伸縮組,需修改伸縮組的最小實例數。
單擊伸縮組as-group-discuz名稱,進入伸縮組詳情頁面。
單擊頁面右上角的“修改”。如圖10所示,修改最小實例數為1。
圖10 修改最小實例數
修改完成后,單擊“確定”。
若論壇可以正常使用,當伸縮組中的云服務器CPU使用率持續高于70%(在伸縮組的“監控”頁簽可對監控指標進行觀察),伸縮組會自動增加一臺云服務器(在伸縮組的“活動歷史”頁簽可對伸縮活動歷史進行查看)。當伸縮組中的云服務器CPU使用率持續低于30%,且伸縮組中至少存在兩臺云服務器時,伸縮組會自動減少一臺云服務器,則本次實踐是成功的。若不然,請聯系技術支持定位伸縮組不能正常進行伸縮活動的原因。
當應用場景有變化,需要在云服務器上部署新的軟件時,可使用彈性伸縮的生命周期掛鉤功能,在實例加入和移出伸縮組時進行自定義操作,靈活的管理加入或移出彈性伸縮組的實例。具體操作可參見生命周期掛鉤。
當所需的彈性云服務器的規格變更時,可創建新的伸縮配置,操作可參考使用新模板創建伸縮配置。創建完成后,可參考為伸縮組更換伸縮配置為伸縮組更換伸縮配置,即可改變伸縮組新加入實例的規格。
網站和Web應用程序
版權聲明:本文內容由網絡用戶投稿,版權歸原作者所有,本站不擁有其著作權,亦不承擔相應法律責任。如果您發現本站中有涉嫌抄襲或描述失實的內容,請聯系我們jiasou666@gmail.com 處理,核實后本網站將在24小時內刪除侵權內容。