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