出海第一步:搞定業(yè)務(wù)系統(tǒng)的多區(qū)域部署
出海的企業(yè)越來(lái)越多,他們不約而同開始在全球范圍內(nèi)部署應(yīng)用程序。這樣做的原因有很多,例如降低延遲,改善用戶體驗(yàn);滿足一些國(guó)家或地區(qū)的數(shù)據(jù)隱私法規(guī)與合規(guī)要求;通過在全球范圍內(nèi)部署應(yīng)用程序來(lái)提高容災(zāi)能力和可用性;更好地覆蓋不同地區(qū)的市場(chǎng),并提供針對(duì)當(dāng)?shù)匚幕驼Z(yǔ)言的本地化體驗(yàn)……
延伸閱讀,點(diǎn)擊鏈接了解 Akamai Cloud Computing
本文我們將告訴大家,在Linode云計(jì)算平臺(tái)上,如何借助VLAN快速實(shí)現(xiàn)多區(qū)域部署。
首先我們需要明確一些基本概念和思路:
- VLAN和VPC都是網(wǎng)絡(luò)隔離方法,可以借此保護(hù)部署在公有云中的基礎(chǔ)設(shè)施。通過減少網(wǎng)絡(luò)攻擊面,同時(shí)供我們對(duì)需要以及不需要訪問互聯(lián)網(wǎng)的應(yīng)用程序?qū)舆M(jìn)行分割,有助于提高整體安全性。
- “地域”(Region)是指一個(gè)云服務(wù)提供商內(nèi)部包含的不同地理位置,而“區(qū)域”(Zone)通常是指在一個(gè)地域內(nèi)提供的多個(gè)托管地點(diǎn)。例如,云服務(wù)商可能在北京設(shè)立了“北方地域”,并在廣州設(shè)立了“南方地域”,每個(gè)地域都是通過當(dāng)?shù)氐亩鄠€(gè)“區(qū)域”提供服務(wù)的。
- 除了通過距離用戶更近的地理位置提供延遲更低的服務(wù),多地域部署的應(yīng)用程序還可以幫助我們大幅提高應(yīng)用程序的可靠性與容錯(cuò)性。任何可能對(duì)一個(gè)位置運(yùn)行的工作負(fù)載造成影響的問題(包括硬件故障或本地網(wǎng)絡(luò)中斷),都可將用戶重新路由到另一個(gè)位置從而加以緩解。
部署多地域VLAN
為了在多地域部署的不同VLAN分段之間進(jìn)行路由,可以使用虛擬專用網(wǎng)絡(luò)(VPN)將VLAN網(wǎng)段捆綁在一起。
首先需要使用一個(gè)充當(dāng)公共路由器的Linode節(jié)點(diǎn)將部署在一個(gè)地域的所有相關(guān)VLAN捆綁在一起。此時(shí),每個(gè)VLAN網(wǎng)段都是獨(dú)立且隔離的二層域,在自己的第三層子網(wǎng)內(nèi)運(yùn)行。各個(gè)VLAN網(wǎng)段之間的所有流量都會(huì)流經(jīng)該路由器,我們可以在路由器上通過防火墻規(guī)則來(lái)管理允許哪些流量在不同網(wǎng)段之間穿越。
隨后可以配置這個(gè)路由器實(shí)例,借助公共互聯(lián)網(wǎng)和VPN軟件(如WireGuard或IPSec等協(xié)議)將其他網(wǎng)段之間的流量橋接在一起。
上述例子展示了一個(gè)包含兩個(gè)地域的部署。每個(gè)地域負(fù)責(zé)通過一個(gè)路由器實(shí)例管理兩個(gè)獨(dú)立VLAN之間的連接,隨后,每個(gè)路由器即可使用配置有多個(gè)接口的Linode路由器實(shí)例在本地橋接多個(gè)地域。路由器可通過WireGuard隧道,借助每個(gè)地域的公共互聯(lián)網(wǎng)橫跨每個(gè)地域。
配置NAT出口點(diǎn)
至此,流量已經(jīng)可以不受地域限制在VLAN之間流動(dòng)。此外,路由器實(shí)例可以充當(dāng)網(wǎng)絡(luò)地址轉(zhuǎn)換(NAT)出口點(diǎn),為本地VLAN提供互聯(lián)網(wǎng)連接(如果部署路由器實(shí)例時(shí)未提供本地互聯(lián)網(wǎng)連接)。這種配置下,本地路由器實(shí)例將被指定為默認(rèn)網(wǎng)關(guān)(例如通常會(huì)在10.0.0.0/24網(wǎng)絡(luò)中配置為10.0.0.1)。我們還可以將路由器實(shí)例當(dāng)作安全套接字外殼(SSH)的管理堡壘機(jī)。
實(shí)現(xiàn)這類NAT配置的一種常見方法是使用防火墻規(guī)則來(lái)標(biāo)記WireGuard流量,并對(duì)檢測(cè)出的未包含該標(biāo)記的所有流量進(jìn)行IP掩蔽(IP masquerading)。
例如,路由器可配置為使用如下的iptables規(guī)則:
iptables -t nat -A POSTROUTING -o eth0 -m mark ! --mark 42 -j MASQUERADE
我們可以配置WireGuard在其配置中使用FirewallMark(如“42”),該配置保證了不對(duì)WireGuard流量進(jìn)行NAT,但對(duì)所有VLAN流量進(jìn)行NAT。
隨后即可配置云防火墻規(guī)則允許路由節(jié)點(diǎn)之間的WireGuard通信(通常為udp/51820)。
最后,如果需要,還可以使用防火墻規(guī)則配置路由器實(shí)例,從而控制或記錄流經(jīng)本地和全局網(wǎng)段的流量。
注意事項(xiàng)
上述例子中的部署可用于在全球范圍內(nèi)跨越多個(gè)地域?qū)崿F(xiàn)共享,并借助路由器實(shí)例控制不同VLAN網(wǎng)段之間的流量。在通過隧道將多個(gè)VLAN網(wǎng)段的流量傳輸至一個(gè)聚合點(diǎn)時(shí),務(wù)必要了解這樣做可能對(duì)性能和帶寬產(chǎn)生的影響。此時(shí)可獲得的性能主要取決于分配給路由器的計(jì)算資源所具備的上行帶寬。
在確定要使用的VPN協(xié)議時(shí)也需要慎重,這主要是為了保證滿足部署的特定要求。所選擇的技術(shù)將對(duì)點(diǎn)對(duì)點(diǎn)帶寬以及通過公共互聯(lián)網(wǎng)所發(fā)出的流量的安全性產(chǎn)生極大影響。例如,WireGuard會(huì)使用Cryptography來(lái)保證流量不被攔截,相比諸如strongSwan這種IPSec實(shí)現(xiàn),可以更好地減少漏洞和暴露,可信度更高。
多云部署
用來(lái)跨越多個(gè)地域的這種技術(shù)還可用于跨越多個(gè)云平臺(tái)。例如,我們可以在另一個(gè)云平臺(tái)的網(wǎng)絡(luò)邊界內(nèi)部署一個(gè)路由器實(shí)例,并將其綁定到該實(shí)例本地且由云提供商提供的VPC中。通過在路由器之間使用WireGuard隧道將不同云提供商的網(wǎng)絡(luò)橋接在一起,這種做法對(duì)于專門在私有網(wǎng)絡(luò)中保持隔離的服務(wù)往往能起到很好的效果。
總結(jié)
在設(shè)計(jì)自己的私有網(wǎng)絡(luò)時(shí),有很多工具可供我們使用,這樣做的收益往往超過了所帶來(lái)的復(fù)雜性。如果應(yīng)用程序和用戶數(shù)都在快速增長(zhǎng),妥善設(shè)計(jì)的環(huán)境將有助于降低大部分用戶可能遇到的延遲,從而極大改善用戶體驗(yàn)。另外,額外的容錯(cuò)能力也有助于改善服務(wù)的可靠性,并改善服務(wù)的可用性和可訪問性。
通過上述方法,我們已經(jīng)可以借助VLAN將應(yīng)用快速部署到多個(gè)區(qū)域,從而更好地從現(xiàn)代化云平臺(tái)的分布式架構(gòu)中獲益。以Akamai的Linode云平臺(tái)為例,目前這個(gè)平臺(tái)已經(jīng)上線了26個(gè)核心云數(shù)據(jù)中心和超過4100個(gè)邊緣計(jì)算節(jié)點(diǎn),遍布全球130多個(gè)國(guó)家和地區(qū),隨著時(shí)間推移,這個(gè)龐大的平臺(tái)規(guī)模和覆蓋面還將繼續(xù)擴(kuò)大。
而這種規(guī)模的覆蓋面,為企業(yè)提供了大量可部署的位置、有吸引力的成本和高質(zhì)量服務(wù),幫助企業(yè)通過大規(guī)模部署和運(yùn)營(yíng),借助更靠近邊緣位置的云解決方案吸引和維系客戶,在為客戶營(yíng)造低延遲高性能體驗(yàn)的同時(shí)更好地遵守?cái)?shù)據(jù)駐留和主權(quán)法規(guī),推動(dòng)業(yè)務(wù)更穩(wěn)妥地發(fā)展。
—————————————————————————————————————————————————
如您所在的企業(yè)也在考慮采購(gòu)云服務(wù)或進(jìn)行云遷移,
點(diǎn)擊鏈接了解Akamai Linode的解決方案