昨天有位朋友問購買阿里雲服務器時如何選擇可用區,之前我們也沒搞明白可用區是怎么回事。於是借此機會研究了一下,通過這篇博文分享一下我們的理解,不對之處歡迎指出。
地域(Region)與可用區(Availability Zone)是雲服務商划分自己所擁有的物理計算資源(數據中心)的一種方法,就如城市與小區是房地產開發商划分自己房產的一種方法。
地域通常按照數據中心所在的城市進行划分,而同一地域下的多個數據中心又進一步按照可用區進行划分。如果把數據中心比作住宅,那地域就是城市,可用區就是小區。購買服務器時選擇地域與可用區,就如購房時選擇城市與小區。
選擇地域里需要注意2個問題:
1. 不同地域之間的服務器內網是不通的,若要進行網絡通信只能走公網,不僅網絡延遲大,而且要支付額外的帶寬費用。
2. 離用戶越近的地域,網絡延遲越小。所以要根據網站訪問用戶的地區分布進行選擇。
地域的選擇很簡單,但很重要,一旦選定了地域,后續的服務器都應該放在這個地域。
而可用區的選擇卻讓不少人困惑。
在阿里雲官網上是這么解釋“可用區”的:
在同一地域下,電力、網絡隔離的物理區域,可用區之間內網互通,不同可用區之間故障隔離。如果您需要提高應用的高可用性,建議您將實例創建在不同的可用區內。
為了方便理解,我們進行不太准確的簡化,電力、網絡隔離的物理區域通常都是機房,因此簡化為:可用區是一個機房,不同可用區就是不同的機房。選擇可用區,就是選擇服務器(ECS)放在哪個機房?
可用區帶來的好處是跨機房的容錯。比如1個SLB下面掛2台服務器,分別放在不同的可用區(機房),假如其中1台服務器所在的整個機房出現故障,由於另外一個可用區下的服務器不受影響,所以網站依然能正常運行。也就是通過可用區可以實現跨機房的負載均衡與熱備。
而為此要付出的代價是不同可用區的服務器之間內網通信的延遲會有一點增加,但這個延遲(據了解是1-3ms)通常是能接受的。
所以,對於性能要求不是非常苛刻的應用場景,將服務器部署在不同可用區是一個“不把雞蛋放在一個籃子里”的更好選擇。
另外,由於一個機房能容納的服務器數量畢竟是有限的,即使你現在刻意將服務器放在同一個可用區。但當這個可用區“車位已滿”時(服務器都被占用),你后續增加的服務器也將不得不放在不同的可用區。
寫到這里,又抑制不住吐槽的沖動。阿里雲是這么命名可用區的:可用區A,可用區B,可用區C;如果房地產開發商也這樣命名住宅小區:小區A,小區B,小區C,你還有購房的欲望嗎?如果將杭州的可用區命名為濱江可用區,轉塘可用區,體驗上是不是更友好呢?
另外,如果以地圖的方式讓用戶可視化地選擇可用區,是不是更酷一些呢?
就寫到這,歡迎大家補充對地域與可用區的理解。
相關鏈接:雲產品推出可用區