自2006年Amazon.com推出S3服務(wù)以來,云計(jì)算市場已經(jīng)發(fā)展了十多年。越來越多的開發(fā)者,初創(chuàng)公司和企業(yè)開始擁抱云計(jì)算。AWS的云服務(wù)給企業(yè)賦能:敏捷業(yè)務(wù)開發(fā),按需供給IT資源,優(yōu)化IT成本,加速創(chuàng)新,并讓快速全球部署成為可能。
目前已經(jīng)有很多企業(yè)客戶采取了盡在云端或云優(yōu)先的策略,把基礎(chǔ)架構(gòu)全部或大部分遷移到AWS云端。典型的架構(gòu)是這樣的:
很多承擔(dān)業(yè)務(wù)負(fù)載的基礎(chǔ)設(shè)施已經(jīng)或正在從傳統(tǒng)的IDC遷移到AWS云上。那么,企業(yè)自身的IT需求是否一樣能享受AWS云的好處呢?在可預(yù)期的將來,云服務(wù)將像電一樣成為標(biāo)準(zhǔn)的公共服務(wù),IT和業(yè)務(wù)基礎(chǔ)設(shè)施全部在云端會(huì)變成趨勢。企業(yè)的基礎(chǔ)設(shè)施架構(gòu)會(huì)變成下圖的樣子。
AWS Marketplace已經(jīng)在北京和寧夏區(qū)域上線。它提供了數(shù)量龐大的來自AWS合作伙伴的產(chǎn)品,包括安全、網(wǎng)絡(luò)、存儲(chǔ)、開發(fā)運(yùn)營等等許多門類。購買,管理和部署這些軟件變得像從應(yīng)用市場下載一個(gè)APP到手機(jī)上一樣簡單。
對企業(yè)來說,上云能降低IT運(yùn)維的壓力。AWS Marketplace進(jìn)一步賦能,簡化了管理和部署IT商業(yè)軟件的過程。
接下來,我將展示IT上云的可能的幾種基礎(chǔ)架構(gòu)形式。
基于虛擬桌面的解決方案
AWS的虛擬桌面服務(wù)WorkSpaces已經(jīng)在寧夏區(qū)域推出。企業(yè)可以在幾分鐘內(nèi)預(yù)置桌面并快速擴(kuò)展。WorkSpaces消除了管理和運(yùn)維虛擬桌面基礎(chǔ)設(shè)施的復(fù)雜性,比傳統(tǒng)的虛擬桌面方案更節(jié)省成本。
用戶通過客戶端(Mac,Windows,平板,甚至支持Chrome或Firefox的瘦客戶端)遠(yuǎn)程登陸到WorkSpaces,然后從這里訪問云上的IT服務(wù),或通過云端的出口訪問Internet。
基于Proxy的解決方案
有些企業(yè)可能暫時(shí)還不能把一些IT資源遷移到云上(比如目錄服務(wù)等·),或者IT上云處于評估階段。這種情況下,部分IT基礎(chǔ)設(shè)施部署在云端,最終用戶的終端仍然在辦公室,采用IT的混合架構(gòu)。
由于VPC的安全保護(hù)機(jī)制,網(wǎng)絡(luò)流量的源IP地址或目標(biāo)IP地址兩者之一必須是VPC內(nèi)部的有效IP地址,否則流量包將被丟棄。這樣,來自企業(yè)的網(wǎng)絡(luò)流量路由到云上再通過云上的網(wǎng)絡(luò)出口訪問Internet是不可行的。
解決辦法就是把這個(gè)流量拆分成兩部分:把來自企業(yè)的流量的目標(biāo)IP地址變成VPC的有效地址,同時(shí)把流向Internet流量的源地址變成VPC的有效IP地址。
通常用設(shè)置代理服務(wù)器的方法就能實(shí)現(xiàn)這種流量拆分,不過代理服務(wù)器可能會(huì)有安全性和兼容性上的問題,有些客戶端程序可能不支持代理服務(wù)器。它不能支持純?nèi)龑恿髁康拇恚龈呖捎玫姆桨笗?huì)比較復(fù)雜。
隧道+NAT方案
還有一種方案是結(jié)合隧道和NAT轉(zhuǎn)換,通過隧道的方式把真實(shí)的目標(biāo)IP地址封裝起來,并在云上的軟路由器內(nèi)完成源地址的NAT轉(zhuǎn)換。
接下來,我將在一個(gè)實(shí)驗(yàn)環(huán)境中對這個(gè)方案的細(xì)節(jié)進(jìn)行展示。
隧道+NAT方案實(shí)驗(yàn)配置
在這個(gè)實(shí)驗(yàn)里,AWS北京區(qū)域用來模擬企業(yè)的物理IDC,AWS寧夏區(qū)域作為云,兩個(gè)區(qū)域通過VPC對等[5]連接。北京區(qū)域的client要通過VPC對等連接到寧夏區(qū)域,并通過寧夏區(qū)域的Internet網(wǎng)關(guān)(IGW)訪問Internet。
實(shí)驗(yàn)中用到北京區(qū)的2個(gè)私有子網(wǎng)(無指向IGW的默認(rèn)路由),寧夏區(qū)的1個(gè)公有子網(wǎng)(默認(rèn)路由指向IGW)。每個(gè)子網(wǎng)內(nèi)各有一臺(tái)可突增性能的T2.micro類型的EC2實(shí)例,其中,router-inside和router-outside在本實(shí)驗(yàn)中作為軟件路由器,安裝了AWS Market Place上的合作伙伴提供的鏡像VyOS。VyOS是一個(gè)基于Linux的開源的網(wǎng)絡(luò)操作系統(tǒng),支持基于軟件的網(wǎng)絡(luò)路由,防火墻和VPN等功能。
下圖是IP包的源地址和目標(biāo)地址在傳輸過程中的變化示意圖。
對于router-inside來說,它要做IP包轉(zhuǎn)發(fā),因此EC2設(shè)置中要禁用源/目標(biāo)檢查。
對于router-outside來說,如果不做源地址NAT則流量會(huì)被丟棄。因?yàn)镮P包的源地址不是寧夏區(qū)VPC內(nèi)部的地址,目標(biāo)地址也不是寧夏區(qū)VPC內(nèi)部的地址。
寧夏區(qū)這里不能用NAT Gateway代替路由器的NAT,因?yàn)樗粚υ吹刂穼儆诒綱PC的IP包進(jìn)行地址轉(zhuǎn)換。
配置完成后,下一步是登陸到client來進(jìn)行驗(yàn)證。因?yàn)閏lient處于私有子網(wǎng),不能直接登陸,需要從公有子網(wǎng)的一臺(tái)實(shí)例跳轉(zhuǎn)登陸。
在client上執(zhí)行traceroute,可以看到IP包經(jīng)過router-inside和router-outside,然后通過寧夏區(qū)的IGW傳向Internet。
下面是兩個(gè)軟路由器的詳細(xì)設(shè)置:
vyos@router-inside:~$ show conf
interfaces {
ethernet eth0 {
address dhcp
}
tunnel tun0 {
address 192.168.254.1/30
encapsulation gre
local-ip 192.168.4.195
remote-ip 172.31.22.79
}
}
protocols {
static {
route 0.0.0.0/0 {
next-hop 192.168.254.2 {
}
}
route 172.31.0.0/16 {
next-hop 192.168.4.1 {
}
}
route 192.168.0.0/21 {
next-hop 192.168.4.1 {
}
}
}
}
system {
host-name router-inside
}
vyos@router-inside:~$
默認(rèn)路由的下一跳是GRE隧道對端的IP地址192.168.254.2,由路由器控制。
到北京VPC和寧夏VPC網(wǎng)段的下一跳是路由器router-inside所在子網(wǎng)(192.168.4.0/24)的默認(rèn)網(wǎng)關(guān)192.168.4.1,由VPC控制。
vyos@router-outside:~$ show conf
interfaces {
ethernet eth0 {
address dhcp
}
tunnel tun0 {
address 192.168.254.2/30
encapsulation gre
local-ip 172.31.22.79
remote-ip 192.168.4.195
}
}
nat {
source {
rule 100 {
outbound-interface eth0
source {
address 192.168.0.0/16
}
translation {
address masquerade
}
}
}
}
protocols {
static {
route 192.168.0.0/21 {
next-hop 192.168.254.1 {
}
}
route 192.168.4.195/32 {
next-hop 172.31.16.1 {
}
}
}
}
system {
host-name router-outside
}
vyos@router-outside:~$
對所有來自北京VPC的IP包進(jìn)行了源地址NAT,變成路由器的接口地址。
到北京VPC網(wǎng)段的下一跳是GRE隧道對端的IP地址192.168.254.1,由路由器控制。
到路由器router-inside的下一跳是路由器router-outside所在子網(wǎng)(172.31.16.0/20)的默認(rèn)網(wǎng)關(guān)172.31.16.1,由VPC控制。