筆者過往經驗經常會遇到因為活動或遇到系統負載過大,導致單一主機無法負荷而造成服務延宕、甚至不可用,遇到這種情況,通常會準備多台主機增加負載能量,但流量可能只是一個早上的時間,為了一瞬的流量而必須耗費大量資源,在雲端的環境中解決流量過大的解決方案,則可以透過彈性的方式應對突發流量兆呈的主機負載問題
AutoScaling是一組自動伸縮的規則,可以根據流量、CPU使用率等等參數,來自動水平擴展機器數量
水平擴展
AutoScaling包含三種架構:
同時又分為以下幾種模式:
選擇彈性伸縮
選擇創建伸縮組
可根據自己的需求選擇,此處因先前有建立過ECS Instance了,因此選擇第二項
設置詳細的策略,可根據自身業務場景選擇,此次配置如下
此處請選擇VPC、Subnet以及欲加入伸縮組的機器
有建立Load Balance、RDS的服務,可以在這邊一併選擇,讓伸縮組知道當擴展的時候,Instances應該跟著哪些服務一起運行
上述選擇完畢後,點選創建伸縮組
建立完畢後,選擇查看詳情,才能進一步編輯Scaling規則
選擇伸縮規則與伸縮活動
點選創建伸縮規則
創建伸縮規則,可根據不同狀況選擇伸縮規則,在創建前必須先創建報警任務
創建報警任務
建立實際操作流程,此處顯示的是當CPU使用率平均值連續兩次大於等於50%,並小於80%時,會發出告警,同時擴展兩台主機。若大於80%,則擴展到四台主機
最大實例數為3台,代表當擴展到了第四台後,若CPU降低使用率則會自動縮減到3台
此處展示伸縮組裡面最小實例限制為1的時候,當有兩台主機時,伸縮組會自動縮減一台主機
CDN通過全球佈署眾多節點以服務快取源站內容,達成就近存取,讓使用者在存取網頁、圖片、影片等物件的速度加快,並且根據地區來分散存取節點,達成分流的效果;同時降低源站的壓力
上圖可以看到,在台灣的User 1若要存取南美洲的內容,原本需要通過DNS並經過路由繞到南美洲存取,中間的延遲時間較高。但如果透過CDN,就可以先將資料預先Cache(快取)在最靠近台灣的CDN節點上,User 1只要去該節點,即可取得網站資料。並且可以透過這個方式來達成全球分流,不必都到同一個伺服器取得資料,可以很大程度的緩解伺服器壓力,從而避免伺服器無法正常運作的狀況
CDN架構示意圖:
在導覽頁選擇CDN
使用CDN的服務必須創建域名
填寫想要通過CDN分發的網域域名;一般網站內容可以選擇圖片小文件即可;分發地區也可以根據自己的需求選擇,若要在中國內使用CDN,則必須準備ICP備案
填寫源站資訊
完成後將CDN的cname地址解析到DNS cname紀錄
完成CDN佈署後在管理選單內,可以針對回源、Cache、Https等做設置
使用nslookup,回傳Alibabacloud的CDN cname域名及CDN節點IP
在這一篇寫了很多內容,主要是在AutoScaling的設定步驟其實較為繁多,但如果有具體的邏輯也可以很好的針對需求使用這這個服務,而不至於太陽春,在CDN方面阿里雲提供了一個簡單易於設定的平台使用,相較於筆者在使用AWS、akamai等CDN在操作上對於新手來說有很大的優勢