由於突如其來的病毒疫情,很多人已經在家接近一個月了,開始遠端辦公也半個多月了。這次疫情對很多實體經濟如餐飲、娛樂、旅遊都造成了極大的傷害。但是,事務都有兩面性,某些行業或者企業在此次災難中獲得了之前無法想象的機會和流量。比如線上教育、線上協同、線上醫療、遠端辦公等等。那些巨頭大家,比如釘釘,可謂遇到了千載難逢的破局良機,2月初經歷了幾次卡頓出錯後,短時間內在阿里雲擴容2萬臺伺服器,頻寬資源更是佔用無數。
對於很多小企業,小商家,小應用也同樣面臨著類似的挑戰。如某筆記、作業打卡的APP,短時間內由鮮少問津到日活暴增至40萬,伺服器頻寬被頻繁打滿,屢次升級直到200M仍不能滿足頻寬需求。總結下來很多中小企業或者個人搭建的後端應用在業務快速發展、流量暴增的情況下面臨著原有系統架構的侷限性,假設後端服務部署在阿里雲,那麼具體問題可能有如下幾個:
單機部署,服務的可用性和單機效能都不足頻寬瓶頸,單臺伺服器最大頻寬不足彈性不足,面對週期性波段性的流量變化,應用架構難以靈活應對當然對於網際網路大廠甚至稍微成熟些的企業這些問題都不算是大問題,畢竟網際網路方案演進至今對於高可用、高可靠、高併發和高彈性都有較為豐富和成熟的方案。但是,大家不要忽略一點,在中國網際網路上還有很多個人、工作室、初創企業開發的網站、APP、小程式等等,這些應用平時訪問的人不多,發展可能不怎麼迅速,所以很多情況下都是一臺機器打天下,甚至應用和資料庫都沒有分開。所以本文的重點不是再老生常談怎麼從零開始去搞一套高可用架構,我們就事論事先解決頻寬問題。
本文只針對部署在阿里雲上的後端服務,沒上雲的請自行上雲,其他雲的也可以參照都是相似的。在阿里雲上購買伺服器時是可以選擇和伺服器繫結的固定頻寬,也可以暫時不選擇公網頻寬,然後再購買更靈活的彈性公網IP。
上圖是在阿里雲購買伺服器時的頻寬選擇截圖,最高就只能選到200M。當然很多人除非特別土豪一般不會直接選擇200M,小網站或者APP後端基本上5-10M就夠用了。那麼如果原來頻寬選的很小,但是流量又突增了怎麼辦?這對於雲廠商來說完全不是問題,第一選擇是提高頻寬,而且是臨時提高,時間到了還可以降回去,既保證了業務又不會多收錢,這就是阿里雲的增量頻寬。
這種臨時升級頻寬基本上解決了90%的頻寬問題,當然上文提到的那個教育APP就不在這90%裡,因為即便他們升級到了上限也就是200M也還是解決不了問題。
如果伺服器不是使用的固定IP,而是繫結的彈性公網IP,那麼情況還好一些,因為可以升級彈性公網IP的頻寬,而這個頻寬最高能到500M。
實話說基本上500M頻寬就夠了,因為再高的話一方面價格感人,另一方面真的有這麼大流量那麼早就該用CDN或者OSS下行流量來抵扣了。但是標題既然說了能最高到5Gbps,那麼就總要有個說法,如果你使用了彈性公網IP,那麼可以把彈性公網IP加入到共享頻寬裡享受高頻寬,而共享頻寬是最高支援5Gbps的,價格也是高達40萬/月。如果你真的下單買了,估計立刻電話就被阿里雲打爆了。
這裡其實有個假設,你的伺服器只有一臺,然後用頻寬硬抗流量,這當然不是一個好的選擇,但確實很多人無奈的選擇。最佳方案還是通過DNS或者SLB做負載均衡,將請求流量分發到不同的伺服器上,用CDN去分發靜態檔案的請求,降低伺服器的頻寬需求。
再強調一件事,在購買伺服器的時候儘量不要使用固定頻寬,因為如果IP被封或者出現頻寬不足的情況真的是很麻煩,用彈性公網IP成本上和固定頻寬是一樣的,但靈活性和頻寬上限都要好的多。
再補充一點,如果你就是選擇了固定頻寬,那麼除了將其變為彈性公網IP外,還有一種方法可以使用EIP。阿里雲有一個產品叫做ENI-彈性網絡卡,一臺伺服器根據其規格型號繫結1到多個網絡卡,每個網絡卡可以繫結一個EIP,這樣一臺伺服器就相當於有了多個公網IP,結合DNS雲解析,不僅可以在不影響業務的情況下進行IP切換,還可以在某個IP被黑掉之後業務不斷。