如何在阿里雲上構建高可用的跨AZ部署方案
引言:
針對企業而言,不管業務是不是在雲上,服務的穩定和連續性總歸是無法迴避的話題,為了降低不可抗力因素對服務提供造成的影響,我們有了高可用性和容災的概念。雖然我們的產品已有很高的可用性,我們仍不能忽視構建服務高可用性和容災的重要性。
針對一般企業而言,主要會用到ECS, SLB, RDS, OSS
產品介紹:
ECS
雲伺服器。相當於阿里雲上的虛擬機,本身沒有高可用性和容災,需要通過架構來實現。
SLB
負載均衡,高可用性和容災可以從兩點來闡述:
1. 負載均衡的服務提供是基於集群部署的,各集群有一定數量的節點,避免了單點故障,個別或者部分節點伺服器宕機不會影響負載均衡服務的提供。
2. 當前提供的負載均衡實例大多是多可用區實例,主備實例在同城不同可用區機房,當主實例機房出現故障,能及時進行切換,來實現容災和服務的高可用性。
多可用區實例分布可以參考:
https://help.aliyun.com/document_detail/52395.html
RDS
雲資料庫。
單機基礎版RDS:https://help.aliyun.com/document_detail/48980.html
雙機高可用版RDS:在同一可用區有主備實例,在主實例出現故障時候可以進行主備切換,具有高可用和容災特性.
多可用區RDS:主備實例在不同可用區
RDS之間還可以用DTS同步和遷移數據。
OSS
文件以chunk分塊方式存儲,默認每塊存三副本,並分布在不同機架的ChunkServer節點上。在盤古集群中Master允許宕機1台,Chunkserver允許同時宕機2台,KVServer與WS允許宕機多台。
基本架構:
一. 多可用區SLB + 不同可用區ECS
如下圖所示,在負載均衡實例下綁定不同可用區的 ECS,當可用區A未出現故障時,用戶訪問流量如藍色實線所示;當可用區A發生故障時,用戶訪問流量的分發將變成黑色虛線,這樣即可以避免因為單個可用區的故障而導致對外服務的不可用,也可以通過不同產品間可用區的選擇來降低延遲。
搭建:
1.創建多可用區SLB實例
登錄阿里雲控制台,選擇負載均衡,點擊右上角「創建負載均衡」按鈕
以華北2為例,購買主可用區B、備可用區A的多可用區實例。
2.在SLB主備可用區分別創建ECS實例
分別在華北2可用區A和B創建測試實例,本例中採用默認安全組,經典網路,1核1G內存CentOS 7.2實例。
3.創建監聽並添加後端伺服器
在控制台負載均衡界面,找到創建的實例,點擊「管理」
點擊後端伺服器,選擇未添加的伺服器,找到對應實例並點擊「添加」
我們可以在已添加界面看到對應ECS實例及其權重
點擊左側監聽欄,選擇「添加監聽」,根據需要選擇監聽屬性。本例中採用TCP四層模式,監聽80埠,後端轉發80埠,使用默認加權輪詢,並開啟會話保持,使用默認1000s超時時間。
設置健康檢查為TCP模式,檢查後端80埠
之後我們可以在監聽頁面看到添加的監聽及其狀態。
後續客戶只需要在ECS上部署相關服務並監聽80埠,並將域名解析到SLB公網IP,那麼負載均衡即可將請求轉發到後端ECS並提供服務。
二. 多可用區SLB + 不同可用區ECS +高可用RDS
多可用區版RDS:
對於沒有多可用區RDS的地域,可以在對應可用區分別建立一台RDS,其中備用可用區的作為備庫,跟主可用區的RDS實例進行同步。
搭建:
多可用區RDS的情況:
在多可用區SLB和不同可用區ECS的基礎上,購買rds實例:
只有部分地域有多可用區RDS:
購買後可以在控制台查看:
同樣在控制台我們可以查看RDS高可用信息以及進行主備切換:
不同可用區分別搭建RDS的情況:
分別在可用區A和B購買雙機高可用RDS。然後創建DTS同步
具體同步作業創建參考:
https://help.aliyun.com/document_detail/26633.html?spm=5176.doc26592.6.597.1CsqxD
三.高可用性-異地容災
在前面同城多可用區的情況下,異地也部署一套環境。
具體訪問哪邊可以配置DNS解析,RDS用DTS同步。
推薦閱讀:
※「直播聯盟」解3大難題,為何偏偏由樂視雲執牛耳?
※什麼是雲支付?
※分散式系統設計:PART I 單點模式
※國內哪個雲平台比較靠譜?
※雲計算九條定律
TAG:雲計算 |