提高AWS可用性?試試流量轉(zhuǎn)移

責(zé)任編輯:editor005

作者:Chris Moyer

2015-12-15 14:21:06

摘自:TechTarget中國

可用性在公有云的范疇意味著公司必須確保自己的服務(wù)宕機時間最少。支持地理路由和健康檢查很簡單,只要設(shè)置一個在故障發(fā)生時可以切換到其他端點的區(qū)域端點。

可用性在公有云的范疇意味著公司必須確保自己的服務(wù)宕機時間最少。對于很多web規(guī)模的企業(yè)來說連接的丟失意味著客戶的丟失。要確保可用性,重要的是在故 障變成徹底斷電以前就要發(fā)現(xiàn)并想法減輕。使用AWS,開發(fā)人員可以采取三管齊下的方法來提高持續(xù)性,通過使用如Amazon Route 53,彈性負(fù)載均衡和自動擴(kuò)展組這樣的工具。

直接請求過程,例如視頻回放的請求,不是由事件驅(qū)動的?;谶@個原因,并行化在這里不像在其他后端進(jìn)程那樣適用。對于那些需要立刻作出反應(yīng)的直接請求,開 發(fā)人員必須提供高可用性的支持。如果用戶在嘗試播放視頻時得到一個“500錯誤,服務(wù)器不可用”的回應(yīng),該業(yè)務(wù)將有可能失去用戶。

企業(yè)可以很輕松地發(fā)布一整夜維護(hù)的聲明并期待客戶能夠接受這段時間內(nèi)將不能訪問服務(wù)的日子已經(jīng)過去了。如果一個業(yè)務(wù)想要提供99.999%的正常運行時間,那么一個月的停機時間大約只能有40分鐘。

為了實現(xiàn)這種AWS可用性,開發(fā)人員必須能預(yù)見到錯誤-而不只是避免錯誤。開發(fā)人員必須有一個適當(dāng)?shù)牧鞒?,可以從任何形式的破壞性狀況下恢復(fù),他們必須能夠處理所有類型的網(wǎng)絡(luò)和區(qū)域問題。他們還需要有位于靠近國際客戶區(qū)域地點的服務(wù)器并能將客戶路由到正確的地理位置。

開發(fā)人員應(yīng)該關(guān)注三個層面來實現(xiàn)全球AWS可用性。在最頂層是Amazon Route 53。在地區(qū)層面,開發(fā)者可以使用彈性負(fù)載均衡(ELB),然后在域?qū)用?,他們需要增加自動擴(kuò)展組。

圖1:典型的AWS高可靠性架構(gòu)

  圖1:典型的AWS高可靠性架構(gòu)

該架構(gòu)保護(hù)資源避免幾個潛在的問題,包括地理問題,通過直接引導(dǎo)用戶到離其最近的網(wǎng)絡(luò)位置,用ELB解決單獨域的問題,使用自動擴(kuò)展組解決單獨服務(wù)器的問題。開發(fā)人員可以配置自動擴(kuò)展組來自動殺掉未響應(yīng)ELB健康檢查的任何實例。

經(jīng)受住區(qū)域性亞馬遜Web服務(wù)問題的考驗

然而所有這些都假定AWS不會有一整個區(qū)域的斷電。但并非總是如此,事實上,有很多記錄在案的事件表明,亞馬遜曾經(jīng)有過某個具體服務(wù)的一整個區(qū)域斷電,包 括DynamoDB和彈性計算云。如果亞馬遜在一個地區(qū)出現(xiàn)問題,一個業(yè)務(wù)可能會失去那片地區(qū)的所有客戶并需要手動將流量重定向到另一個區(qū)域,除非你添加 了Route 53健康檢查。

支持地理路由和健康檢查很簡單,只要設(shè)置一個在故障發(fā)生時可以切換到其他端點的區(qū)域端點。例如,如果一個網(wǎng)站是example.com,它可以設(shè)置us- east.example.com,us-west.example.com和eu-west.example.com這三個端點。然后配置 Example.com使用在地理位置上最近的端點。但其中每個端點將被配置為使用這三個ELB之一,優(yōu)先使用最近的并同時通過健康檢查來轉(zhuǎn)到其它端點 上。

圖2:在這張Route 53配置圖中,黑色代表最理想的選擇,藍(lán)色代表次要選擇,紅色是第三選擇。

圖2:在這張Route 53配置圖中,黑色代表最理想的選擇,藍(lán)色代表次要選擇,紅色是第三選擇。

圖2顯示了一個Route 53區(qū),根據(jù)地理位置配置了三個獨立的端點。如果我們被導(dǎo)向美東端點,則首選是美東負(fù)載平衡器。倘若負(fù)載平衡器不可用,它會嘗試使用美西的負(fù)載平衡器。如 果美西的ELB也宕了,則會轉(zhuǎn)到歐西地區(qū)。如果這三個地區(qū)都宕掉了,那么你的麻煩就很大了。在Route 53的層面適當(dāng)配置健康檢查將有助于減少整個區(qū)域出故障時的宕機時間。

這就是所謂的增加持續(xù)性-預(yù)期到個別的區(qū)域會斷電,并有一個用于恢復(fù)服務(wù)的計劃。但驗證和支持每個區(qū)域的個體可用性很重要。例如,如果整個區(qū)域發(fā)生故障,其他區(qū)域仍然應(yīng)該能夠不受任何影響的工作。這可以通過使用數(shù)據(jù)庫復(fù)制達(dá)到。

幸運的是,亞馬遜已經(jīng)在DynamoDB上支持跨地區(qū)復(fù)制。很多其他的數(shù)據(jù)庫也支持主主復(fù)制方案,這樣可以在出現(xiàn)問題時轉(zhuǎn)到另一個域來支持區(qū)域隔離和持續(xù)性。

當(dāng)開發(fā)者需要支持應(yīng)用的高可用性訪問時,多層次的持續(xù)性是必須的。幸運的是,AWS提供了三種很好的服務(wù)可以結(jié)合起來使用,以解決地區(qū),區(qū)域和實例層面的 問題。通過添加像NewRelic這樣的第三方服務(wù)來監(jiān)控應(yīng)用程序可以為你的業(yè)務(wù)提供各種警報并可以自動修復(fù)服務(wù)以減少停機時間。

鏈接已復(fù)制,快去分享吧

企業(yè)網(wǎng)版權(quán)所有?2010-2024 京ICP備09108050號-6京公網(wǎng)安備 11010502049343號