四招教你玩轉(zhuǎn)VPC
互聯(lián)網(wǎng)上各種軟件、應(yīng)用、手機App充斥著人們的每一天,這些應(yīng)用也越來越易用、卻也使得開發(fā)變得復(fù)雜。開發(fā)人員使用到的組件也更多了。稍微大些的應(yīng)用開發(fā)將會使用組件解耦、系統(tǒng)分層,以便降低緊耦合帶來的各種不良后果。
本文將介紹VPC如何實現(xiàn)各個組件分層和隔離,并將以VPC子網(wǎng)是否連通互聯(lián)網(wǎng)、云平臺VPC之間連通、本地數(shù)據(jù)中心與云端VPC的連通等介紹VPC的4種典型應(yīng)用方式和解決需求的實現(xiàn)方法。
VPC有什么作用
VPC通過子網(wǎng)將資源進行邏輯隔離為用戶提供隔離的網(wǎng)絡(luò)環(huán)境、靈活的可定義子網(wǎng)網(wǎng)段,并支持隨時在現(xiàn)有VPC中追加新的定義網(wǎng)段,保證IP地址取之不盡,解決傳統(tǒng)子網(wǎng)帶來的節(jié)點數(shù)量的限制,同時用戶可以使用VPN等方式連接本地數(shù)據(jù)中心后將業(yè)務(wù)平滑遷移到云端。
第一招:VPC內(nèi)連接互聯(lián)網(wǎng)
VPC內(nèi)使用子網(wǎng)將資源進行了隔離,初始情況下子網(wǎng)內(nèi)資源無法連接到互聯(lián)網(wǎng),所有資源和服務(wù)僅可內(nèi)網(wǎng)訪問,起到了預(yù)想的與公網(wǎng)隔離的效果。但如果資源只能內(nèi)網(wǎng)訪問顯然也不是我們想要的,我們創(chuàng)建的Web應(yīng)用等服務(wù)需要暴露在公網(wǎng)上,也就需要VPC子網(wǎng)內(nèi)的資源具有訪問互聯(lián)網(wǎng)的能力。
問題
在VPC子網(wǎng)內(nèi)的資源能夠連接到互聯(lián)網(wǎng)。
解決方法
- 為VPC子網(wǎng)內(nèi)每一個云主機資源綁定EIP;
- 通過NAT網(wǎng)關(guān)將VPC子網(wǎng)內(nèi)資源路由至NAT網(wǎng)關(guān),并通過其綁定的EIP連接互聯(lián)網(wǎng)。
具體實現(xiàn)
(圖:VPC子網(wǎng)中云主機通過EIP或NAT網(wǎng)關(guān)連接互聯(lián)網(wǎng))
- 創(chuàng)建VPC及子網(wǎng)subnet-a,并部署相關(guān)云主機等資源;
- 選擇使用EIP方式,申請EIP并綁定至云主機UHost,則云主機UHost可以通過EIP與互聯(lián)網(wǎng)進行連接;這種方式配置最簡單,但是卻要為每一臺云主機UHost綁定EIP,如果資源數(shù)量較多,不建議使用這種方式;
- 選擇使用NAT網(wǎng)關(guān)方式,在VPC中創(chuàng)建NAT網(wǎng)關(guān)并選擇subnet-a連通,此時子網(wǎng)subnet-a中的所有資源將會路由至NAT網(wǎng)關(guān),并通過綁定在NAT網(wǎng)關(guān)上的EIP連接互聯(lián)網(wǎng);這種方式通過一個配置即可滿足一個子網(wǎng)內(nèi)資源的連接互聯(lián)網(wǎng)需求;
- 云主機綁定EIP方式與NAT網(wǎng)關(guān)方式,兩者可以取其一進行使用。
(圖:通過端口轉(zhuǎn)發(fā)規(guī)則將流量轉(zhuǎn)發(fā)至NAT網(wǎng)關(guān)綁定的EIP以連接互聯(lián)網(wǎng))
應(yīng)用場景
我們選擇通過一臺云主機UHost提供個人博客的Web服務(wù),在創(chuàng)建云主機UHost時選擇部署在VPC1的192.168.1.0/24子網(wǎng)內(nèi),申請一個EIP綁定到該云主機UHost上來提供外網(wǎng)訪問能力,互聯(lián)網(wǎng)上用戶可以直接通過該EIP訪問到該博客網(wǎng)站。
第二招:通過VPC子網(wǎng)隔離內(nèi)外網(wǎng)組件
一臺云主機很難滿足普通應(yīng)用的需求,例如搭建具有更高可用性的企業(yè)博客,通常需要用到多臺云主機、負載均衡、EIP,一些配置信息、博客數(shù)據(jù)還需要使用云數(shù)據(jù)庫服務(wù)。用戶可訪問的Web服務(wù)需要連接公網(wǎng),而用戶數(shù)據(jù)、日志數(shù)據(jù)等只需在系統(tǒng)內(nèi)部和Web服務(wù)器連接使用,因此需要根據(jù)資源是否對外網(wǎng)連接進行分層,從而部署在不同子網(wǎng)中。
需求
因業(yè)務(wù)需求將資源和組件劃分為互聯(lián)網(wǎng)可訪問、互聯(lián)網(wǎng)不可訪問進行隔離。
解決方法
在VPC中創(chuàng)建子網(wǎng)subnet-a(供連接互聯(lián)網(wǎng)),創(chuàng)建subnet-b(供內(nèi)網(wǎng)使用),通過NAT網(wǎng)關(guān)只連接subnet-a并面向互聯(lián)網(wǎng)開放;subnet-b不連接到該NAT網(wǎng)關(guān)并且其中資源也不綁定EIP。
具體實現(xiàn)
(圖:連接公網(wǎng)的子網(wǎng)和只供內(nèi)網(wǎng)訪問的子網(wǎng))
- 創(chuàng)建VPC;
- 創(chuàng)建兩個子網(wǎng)subnet a和subnet b,subnet a為前端接入子網(wǎng),部署云主機;subnet b為數(shù)據(jù)庫子網(wǎng)部署云數(shù)據(jù)庫;
- 配置NAT網(wǎng)關(guān),并連接前端接入子網(wǎng)subnet-a,使其可以連接到互聯(lián)網(wǎng),對外提供前端接入功能;數(shù)據(jù)庫子網(wǎng)subnet-b僅在VPC內(nèi)訪問,前端接入子網(wǎng)中的云主機UHost,可以連接后端業(yè)務(wù)子網(wǎng)中的后端服務(wù)器和云數(shù)據(jù)庫并實現(xiàn)業(yè)務(wù)支撐和數(shù)據(jù)操作。
通過如上配置,既實現(xiàn)了對互聯(lián)網(wǎng)的訪問又保證了云數(shù)據(jù)庫只供內(nèi)網(wǎng)訪問,為其安全增加了一道保障。
應(yīng)用場景:后端業(yè)務(wù)子網(wǎng)臨時連接互聯(lián)網(wǎng)
如上所述,數(shù)據(jù)庫私有子網(wǎng)中只能內(nèi)網(wǎng)訪問,但是仍會碰到云數(shù)據(jù)庫進行版本更新、漏洞修復(fù)等需要訪問互聯(lián)網(wǎng)的情況。基于這種臨時需求,我們可以通過NAT網(wǎng)關(guān)的白名單模式來連接互聯(lián)網(wǎng)。在NAT網(wǎng)關(guān)配置中添加subnet-b,但是需要使用白名單模式, 僅允許開放指定數(shù)據(jù)庫的特定端口,盡可能避免全部暴露在互聯(lián)網(wǎng)。
(圖:使用NAT網(wǎng)關(guān)白名單并配置端口轉(zhuǎn)發(fā)規(guī)則實現(xiàn)指定資源和端口對互聯(lián)網(wǎng)開放)
只需通過NAT網(wǎng)關(guān)連接需要外網(wǎng)訪問能力的子網(wǎng)即可,通過白名單模式和端口轉(zhuǎn)發(fā)規(guī)則配置可以實現(xiàn)細粒度的訪問控制。
第三招:云平臺多VPC之間互聯(lián)
在構(gòu)建業(yè)務(wù)時會按照生產(chǎn)環(huán)境、開發(fā)環(huán)境、測試環(huán)境等在不同的VPC中部署資源,偶爾需要打通不同環(huán)境的VPC。在VPC規(guī)劃時可能因為對可變因素考慮不足,導(dǎo)致VPC設(shè)置過小,或者資源在VPC之間的分布不合理而又不便重新部署,這些可能都需要將多個VPC進行連接。
需求
因生產(chǎn)環(huán)境與測試環(huán)境等分割環(huán)境、前期對VPC規(guī)劃不足等原因而需要將云平臺多個VPC進行連接。
解決方法
UCloud云平臺支持跨地域、跨項目的多個VPC連接,且可在控制臺直接操作配置。
具體實現(xiàn)
- 在云平臺VPC配置中直接選擇多個VPC,可直接實現(xiàn)VPC聯(lián)通;
- 在VPC1中所有流量會路由至虛擬NAT網(wǎng)關(guān)1,同樣VPC2中所有流量會路由至虛擬NAT網(wǎng)關(guān)2;
- UCloud云平臺會自動將VPC1和VPC2進行連接,便可以實現(xiàn)兩個VPC之間的流量傳輸。
此過程不再需要我們配置路由表,但為了方便了解數(shù)據(jù)流向,我們可以分析下后端實現(xiàn)的虛擬路由表。VPC1中虛擬路由表為:
VPC2中虛擬路由表為:
具體配置方式就比較簡單了,如下圖所示。
第四招:連接本地網(wǎng)絡(luò)與云端VPC
需求
用戶業(yè)務(wù)部署在多個地域或者本地數(shù)據(jù)中心,需要將業(yè)務(wù)本地網(wǎng)絡(luò)與云端VPC進行聯(lián)通。
解決方法
- 使用VPN、專線接入UConnect連接本地數(shù)據(jù)中心VPC子網(wǎng)與UCloud云平臺的VPC子網(wǎng);
- 使用跨域通道UDPN連接UCloud云平臺的多個VPC子網(wǎng)。
具體實現(xiàn)
NAT Gateway
- 在云端部署VPC公網(wǎng)子網(wǎng)、私網(wǎng)子網(wǎng),并部署業(yè)務(wù)所需云平臺資源;
- 在云端配置IPSec VPN,其中配置云端網(wǎng)關(guān)地址、客戶本地(對端)網(wǎng)關(guān)地址;
- 在客戶本地安裝VPN軟件,并配置客戶本地網(wǎng)關(guān)、云端網(wǎng)關(guān);
- 在云端和客戶本地VPN中配置VPN隧道(tunnel)并連通指定子網(wǎng),測試流量正常。
應(yīng)用場景
跨地域的VPC連通有多種類型,按照所屬位置來說包括:
- 云平臺間連通:多個VPC分布在UCloud云平臺的多個地域中
- 混合云架構(gòu)(基礎(chǔ)):連通客戶本地數(shù)據(jù)中心的VPC和UCloud云平臺的VPC
- 混合云架構(gòu):云平臺上有多個VPC,并且在本地數(shù)據(jù)中心也有VPC
很多傳統(tǒng)行業(yè)在本地數(shù)據(jù)中心部署有業(yè)務(wù),在遷移上云的過程中可能將核心數(shù)據(jù)或業(yè)務(wù)保留在本地,產(chǎn)生了混合云的架構(gòu)。連通本地數(shù)據(jù)中心和云端VPC的方式也有幾種:自建VPN方式、云端IPSec VPN、專線接入UConnect等,具體差異在運維成本、通信效率等方面,VPC子網(wǎng)連通配置上大同小異。
UCloud云平臺VPC之間的連通可以選擇跨域通道UDPN,基于同城環(huán)網(wǎng)、專線等基礎(chǔ)設(shè)施,實現(xiàn)了超遠程專線網(wǎng)絡(luò)。 UDPN為云平臺中跨地域的各個數(shù)據(jù)中心間,提供低延遲、高質(zhì)量的跨地區(qū)內(nèi)網(wǎng)數(shù)據(jù)傳輸?shù)哪芰Α?/p>
總結(jié)
VPC無論是在傳統(tǒng)服務(wù)器管理還是云端資源管理上都非常成熟,也是比較基礎(chǔ)的服務(wù)。本文根據(jù)VPC子網(wǎng)是否需要連接到公網(wǎng)、云平臺多個VPC互相連通以及本地網(wǎng)絡(luò)與云端VPC的打通進行了概述和整理,回根溯源VPC的應(yīng)用場景主要還是以上幾種情況。當然現(xiàn)實情況下還要根據(jù)業(yè)務(wù)場景靈活的使用VPC,難點還是在解決異構(gòu)環(huán)境的打通、大型網(wǎng)絡(luò)下復(fù)雜的規(guī)劃和管理。