AWS VPC

AWS為用戶提供了一個虛擬的數(shù)據(jù)中心番捂,用戶可以將EC2 instance蹦哼、RDS(Amazon Relational Database Service)朵逝、EMR Clusters等資源部署到這個虛擬的數(shù)據(jù)中心淳蔼。不僅如此稚虎,這些資源還需要同internet進行通訊撤嫩。

Amazon VPC 允許用戶在 Amazon Web Services (AWS) 云中預(yù)置出一個邏輯隔離的部分偎捎,讓用戶在自己定義的虛擬網(wǎng)絡(luò)中啟動 AWS 資源蠢终。用戶可以完全掌控這個虛擬網(wǎng)絡(luò)環(huán)境,包括選擇自己的 IP 地址范圍茴她、創(chuàng)建子網(wǎng)以及配置路由表和網(wǎng)絡(luò)網(wǎng)關(guān)寻拂。

VPC 概念和基礎(chǔ)知識

Fundamental

IP 地址范圍

根據(jù)RFC 1918,為了解決IPV4地址將要耗盡和ISP(Internet Service Provider)路由負(fù)荷即將過載的問題丈牢,人們提出了一個方案:一個ISP從地址注冊組織獲得一個地址塊祭钉,然后根據(jù)每個客戶的要求將塊內(nèi)的地址分配給客戶。到許多客戶的路由將會被聚合起來,對其他服務(wù)提供商呈現(xiàn)為一個單一的路由己沛。

在企業(yè)內(nèi)部使用IP的主機在企業(yè)內(nèi)部無多義慌核,而根據(jù)其在企業(yè)之間是否可能有多義的IP地址距境,可以將主機分為“私有的”和“公開的”。

因特網(wǎng)域名分配組織IANA組織(Internet Assigned Numbers Authority)保留了以下三個IP地址塊用于私有網(wǎng)絡(luò)垮卓。
10.0.0.0 - 10.255.255.255 (10/8比特前綴)
172.16.0.0 - 172.31.255.255 (172.16/12比特前綴)
192.168.0.0 - 192.168.255.255 (192.168/16比特前綴)
我們把第一塊稱為“24-比特塊”垫桂,第二塊稱為“20-比特塊”,第三塊稱為“16-比特塊”注意(在前面的CIDR 記號中)粟按,第一塊地址就是一個A類網(wǎng)絡(luò)號诬滩,第二塊地址是16個連續(xù)的B類網(wǎng)絡(luò)號集合,第三塊地址是256個連續(xù)的C類網(wǎng)絡(luò)號集合灭将。

假設(shè)疼鸟,一個私有網(wǎng)絡(luò)172.31.0.0/16,那么可以將這個私有網(wǎng)絡(luò)的IP分為兩部分庙曙,“172.32”是網(wǎng)絡(luò)號空镜,后16位是主機號。這個私有網(wǎng)絡(luò)中的IP地址范圍不會和Internet中的IP沖突捌朴。但是姑裂,要盡量避免和其他VPC中的私有IP地址范圍產(chǎn)生沖突。

AWS推薦 /16 的IPv4 CIDR block(例如172.31.0.0/16)男旗。

在VPC中建立subnet

Subnet

為每個AZ建立一個subnet舶斧,這樣,如果一個AZ的 subnet出現(xiàn)了問題察皇,就不會影響到其他subnet:172.32.0.0/24茴厉,172.32.0.1/24,172.32.0.2/24什荣。

Routing in a VPC

每個VPC都有一個route table矾缓,用于告訴系統(tǒng)如何對package進行路由。每個VPC都有一個default table稻爬,用于描述package如何在VPC內(nèi)部進行通訊嗜闻。用戶可以為subnet創(chuàng)建不同的route table。

VPC 內(nèi)部

通過default table完成

和Internet

和 internet 通訊的三要素:

  • 某種形式的connection
  • route to internet
  • public address
VPC network

從這張圖上可以看到桅锄,VPC是如何實現(xiàn)三要素的琉雳。
首先,VPC 通過 internet gateway和internet建立連接友瘤。在圖里是個“門”的形狀翠肘,不過最新的圖里面是這樣的圖標(biāo):


Internet Gateway

其次,VPC提供了兩個route表辫秧。一個是igw_id束倍,部署在共有subnet上,用與將目的地址不是本subnet的package發(fā)送到internet gateway,以實現(xiàn)同internet的通訊绪妹,該網(wǎng)關(guān)允許來自internet的請求甥桂;另一個route表是Nat_gw_id,部署在私有subnet上邮旷,指向NAT gateway格嘁,這是一張單向表,只允許從VPC內(nèi)部訪問internet的request(Outbound internet access)通過廊移,不允許internet到VPC內(nèi)部的request通過糕簿。這里為了讓私有subnet能夠和internet gateway 通訊,引入了一個新的網(wǎng)關(guān)狡孔,NAT gateway懂诗,其圖標(biāo)為:


NAT Gateway

最后,在launch上面的subnet的時候苗膝,為其制定了一個公有IP殃恒,即198.51.100.3。

網(wǎng)絡(luò)安全

Security Group(SG)

首先有一點值得強調(diào)辱揭,Security Group是Stateful的离唐,如果一個入站(inbound)的traffic是被允許通過的,那么其對應(yīng)的出站(outbound)的response也必然被允許通過问窃。

具體來說亥鬓,在下圖中共有7個實例,其中4個被標(biāo)成了黃色域庇,表示需要和internet 通訊的web sever嵌戈;另外3個被標(biāo)成了藍色,表示不需要和外部通訊的backend server听皿。為黃色的實例建立Security Group MyWebServer熟呛,為藍色的實例建立Security Group MyBackendServer,這樣可以允許來自任意地址的traffic訪問MyWebServer內(nèi)的實例尉姨,而只允許來自MyWebServer訪問MyBackendServer內(nèi)的實例庵朝。

Security Groups

Network Access Control List(NACL)

NACL也是VPC的一種安全機制,但是和Security Group 有一些不同之處:

Security Groups vs NACL

Flow logs

在VPC中又厉,日志有以下幾種級別:

  • instance level
  • subnet level
  • VPC level

如以下圖所示九府,VPC將日志信息發(fā)送到AWS 的 Bucket 和 Cloud Watch 組件上,進一步用于可視化馋没、問題排查昔逗、流量分析降传。這里篷朵,流量分析僅涉及package的描述信息,而不涉及package的payload信息。

Flow logs

這里又多了三個新的圖標(biāo):


Flow Logs

Bucket

CloudWatch

最后声旺,讓我們簡單看一下VPC flow logs的格式:


Format

這條日志描述了以下信息:
接受從共有地址210.21.226.2的ssh入站package笔链。

Connectivity Options for VPCs

VPC主要涉及兩類連接:

  • Connecting to other VPCs
  • Connecting to your on-premises networks


    VPC conections

Connecting to other VPCs

VPC之間的連接有兩種形式,VPC peering 和 Transit gateway腮猖。

  • 首先鉴扫,來看VPC peering。
屏幕快照 2021-07-29 下午10.32.58.png

VPC peering 是指在兩個VPC之間建立連接澈缺,使得他們之間可以相互通訊坪创,就好像在同一個私有網(wǎng)絡(luò)內(nèi)一樣。VPC Peering 可以跨AWS region姐赡,也可以跨 AWS 賬戶莱预。

VPC Peering 有其自身的局限性,它無法在兩個重疊的CIDR block間建立連接项滑。 而且它是1對1的關(guān)系依沮,也就是說下圖所示的關(guān)系是不可能的:

VPC peering

必須以以下方式建立連接:


1:1 relationship
  • 接下來,再看 Transit gateway
Transit gateway

在Peering模式下枪狂,必須在任意兩個VPC之間建立連接危喉。如果有很多VPC,這項工作將變得異常繁重州疾。這個時候辜限,就需要引入Transit Gateway 模式了。

Transit gateway 將多個VPC之間的連接關(guān)系集中管理严蓖,且這些VPC可以來自不同的賬戶列粪,盡管他們必須和Transit gateway在同一region。

Transit gateway
  • 比較 Peering 和 Transit gateway
Comparing

Connect to on-premises networks

有兩種方法在 VPC 和 on-premises 之間建立網(wǎng)絡(luò)連接:AWS VPN 和 AWS Direct Connection谈飒。

summary

AWS VPN

為了建立AWS VPN岂座,首先需要在 on_premise 端建立Customer gateway,并為其配置路由杭措;在VPC端费什,建立 Virtual private gateway。之后手素,為這兩個 gateway 建立兩個獨立的IPSec tunnel鸳址,之所以需要兩個IPSec tunnel,是為了保證通訊的高可用性(HA)泉懦。最后稿黍,如果沒有用動態(tài)的路由協(xié)議(例如 BGP),那么就需要更新VPC內(nèi)的路由表崩哩,告訴 VPC 如何到達on-premise巡球。


AWS VPN

看起來不錯言沐,但是 AWS VPN 畢竟是運行在 internet 上的,有一定的不確定性酣栈,而 Direct Connect 就可以解決這個問題险胰。

Direct Connect

在AWS上,不僅有VPC矿筝,還有各種各樣的service起便,這些service是在VPC之外的。我們希望從on_premise訪問VPC的同時窖维,也能訪問到這些service榆综。為此,就需要 AWS Direct Connect Location 的幫助铸史。AWS Direct Connect Location 被發(fā)布到website上奖年,可以根據(jù)data center的位置就近選擇。這是一種物理上的專線沛贪,在On_Premise端陋守,建立private virtual interface(VLAN),用于訪問VPC利赋;同時建立一條public virtual(VLAN)水评,用于訪問service。

location

這里引入了兩個新的圖標(biāo):


Direct-Connect
VPN gateway

在網(wǎng)上還找到了一張清楚些的圖媚送,以供參考:


image.png

多個VPC

也可以讓 On_Premise network 連接多個VPC:
一種方式是建立一個Private virtual interface (VLAN)中燥,然后通過Direct Gateway 同多個VPC建立連接:


Multiple VPCs

另一種方式是通過AWS VPC。在沒有 transit gateway的時候塘偎,需要為每個VPC建立一個AWS VPC connection:


on_premise network to multiple VPC without transit gateway

而有了 transit gateway 疗涉, 事情變得更加簡單,通過一個 transit gateway吟秩,就可以建立從 On_Premise 到所有VPCs的連接:


on_premise network to multiple VPC transit gateway

Route 53

AWS DNS


Route 53

VPC endpoints

在VPC之外咱扣,AWS的公有地址空間內(nèi)還有很多服務(wù),我們可以通過direct connect 和 virtual interface涵防,從On_Premise network 去訪問這些資源闹伪。但是如何在VPC內(nèi)部訪問這些資源呢?可以通過 IGW, NAT devices的方式訪問壮池,但是如果你覺得那樣做比較麻煩(因為需要public IP)偏瓤,可以選擇 endpoint 的方式實現(xiàn)。

  • 通過IGW 訪問


    IGW

    有兩種方式:gateway endpoint 和 interface endpoint椰憋。

gateway endpoint

在route table上厅克,可以配置一個指向AWS service的路由目標(biāo),這個gateway就是所謂的gateway endpoint橙依。這里沒有public IP证舟,只需要private IP 就可以完成設(shè)置硕旗。


gateway endpoint
Endpoint
interface endpoint

通過interface endpoint,不需要任何路由褪储,就你所訪問的AWS service好像在VPC內(nèi)部一樣卵渴。


Interface endpoint

這里慧域,有一個新的圖標(biāo)PrivateLink鲤竹。PrivateLink是interface endpoint得以實現(xiàn)的關(guān)鍵。通過PrivateLink昔榴,你可以將你的AWS Service 分享給千千萬萬個VPC辛藻。為此,你需要將被分享的Service放在一個 Network LoadBalancer 后面互订,使得該服務(wù)可以作為一個 endpoint service 被其他VPC訪問吱肌。其他的VPC可以訂閱你的Service,并在他的VPC創(chuàng)建endpoint代表你的Service仰禽,通過本地地址的endpoint訪問你的Service氮墨。


PrivateLink

Interface endpoint

參考資料

AWS 2019 summit 視頻地址:https://aws.amazon.com/cn/vpc/?vpc-blogs.sort-by=item.additionalFields.createdDate&vpc-blogs.sort-order=desc
演講者:Perry Wald and Tom Adamski

參考讀書筆記:https://blog.csdn.net/Jerry7810/article/details/103581167

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市吐葵,隨后出現(xiàn)的幾起案子规揪,更是在濱河造成了極大的恐慌,老刑警劉巖温峭,帶你破解...
    沈念sama閱讀 206,126評論 6 481
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件猛铅,死亡現(xiàn)場離奇詭異,居然都是意外死亡凤藏,警方通過查閱死者的電腦和手機奸忽,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,254評論 2 382
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來揖庄,“玉大人栗菜,你說我怎么就攤上這事√闵遥” “怎么了苛萎?”我有些...
    開封第一講書人閱讀 152,445評論 0 341
  • 文/不壞的土叔 我叫張陵,是天一觀的道長检号。 經(jīng)常有香客問我腌歉,道長,這世上最難降的妖魔是什么齐苛? 我笑而不...
    開封第一講書人閱讀 55,185評論 1 278
  • 正文 為了忘掉前任翘盖,我火速辦了婚禮,結(jié)果婚禮上凹蜂,老公的妹妹穿的比我還像新娘馍驯。我一直安慰自己阁危,他們只是感情好,可當(dāng)我...
    茶點故事閱讀 64,178評論 5 371
  • 文/花漫 我一把揭開白布汰瘫。 她就那樣靜靜地躺著狂打,像睡著了一般。 火紅的嫁衣襯著肌膚如雪混弥。 梳的紋絲不亂的頭發(fā)上趴乡,一...
    開封第一講書人閱讀 48,970評論 1 284
  • 那天,我揣著相機與錄音蝗拿,去河邊找鬼晾捏。 笑死,一個胖子當(dāng)著我的面吹牛哀托,可吹牛的內(nèi)容都是我干的惦辛。 我是一名探鬼主播,決...
    沈念sama閱讀 38,276評論 3 399
  • 文/蒼蘭香墨 我猛地睜開眼仓手,長吁一口氣:“原來是場噩夢啊……” “哼胖齐!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起嗽冒,我...
    開封第一講書人閱讀 36,927評論 0 259
  • 序言:老撾萬榮一對情侶失蹤呀伙,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后辛慰,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體区匠,經(jīng)...
    沈念sama閱讀 43,400評論 1 300
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 35,883評論 2 323
  • 正文 我和宋清朗相戀三年帅腌,在試婚紗的時候發(fā)現(xiàn)自己被綠了驰弄。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 37,997評論 1 333
  • 序言:一個原本活蹦亂跳的男人離奇死亡速客,死狀恐怖戚篙,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情溺职,我是刑警寧澤岔擂,帶...
    沈念sama閱讀 33,646評論 4 322
  • 正文 年R本政府宣布,位于F島的核電站浪耘,受9級特大地震影響乱灵,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜七冲,卻給世界環(huán)境...
    茶點故事閱讀 39,213評論 3 307
  • 文/蒙蒙 一痛倚、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧澜躺,春花似錦蝉稳、人聲如沸抒蚜。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,204評論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽嗡髓。三九已至,卻和暖如春收津,著一層夾襖步出監(jiān)牢的瞬間饿这,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 31,423評論 1 260
  • 我被黑心中介騙來泰國打工朋截, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留蛹稍,地道東北人吧黄。 一個月前我還...
    沈念sama閱讀 45,423評論 2 352
  • 正文 我出身青樓部服,卻偏偏與公主長得像,于是被迫代替她去往敵國和親拗慨。 傳聞我的和親對象是個殘疾皇子廓八,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 42,722評論 2 345

推薦閱讀更多精彩內(nèi)容