Private Subnet(下圖#1)是一封閉的網路,也就是它並沒有對外。今天若在 Private Subnet 內放置兩台 EC2(下圖#2),因為這兩台 EC2 在同一個網路空間,故能彼此進行溝通。
而如果想讓兩個不同的 Private Subnet 內的 EC2 進行溝通時,必須使用到 Route Table(下圖#1)。每一個 Subnet 都會配到一個 Route Table,用於指引網路流量應該怎麼走及要去哪裡。Route Table 上面有兩個重要的設定,一個是目的地 IP(下圖#2),另一個則是下一站(下圖#3)是要先去哪裡。
如果想要從左邊 Subnet 的 EC2 連到右邊 Subnet 的 EC2,概念上可以直接連過去,但實際上必須先經過一個 Local(下圖#1)的中繼站,再往右邊 Subnet 的 EC2 導過去(如下圖橘色實線所示),到達目的地後,會再返回原出發點(如下圖橘色虛線所示)。
Public Subnet 的目的為讓內部的網路可以與外界 Internet 溝通。要讓Public Subnet 中的 EC2 可以連到 Internet,同樣必須用到 Route Table 來指引路線。此時 Route Table 中的「目的地IP(下圖#1)」即為 Internet,「下一站(下圖#2)」則是一個放置於VPC上的特殊中繼站IGW(Internet Gateway)(下圖#3)。
若是要從 Public Subnet 中的 EC2 連線到 Internet,必須先經過 IGW,透過 IGW 將網路請求導流到 Internet(如下圖橘色實線所示),到達目的地後,再原路返回(如下圖橘色虛線所示)。
若要讓 Private Subnet 中的 EC2 可以連到 Internet,必須將其 Route Table中的「下一站(下圖#1)」改為放置於 Public Subnet 上的虛擬主機 NAT Gateway,簡稱為 NAT gw(下圖#2)。
而當在 Private Subnet 中的 EC2 送出網路請求去 Internet,必須先經過 NAT gw(下圖#2),再由 NAT gw 走與 Public Subnet 一樣的路徑(也就是經由 IGW(下圖#3)再到 Internet,如下圖橘色實線所示),到達目的地後,再原路返回(如下圖橘色虛線所示)。
那這次,我們了解了 AWS VPC 的網路流通方式,透過 Route Table 的設定並搭配 NAT 與 IGW 來連通內外網。
明天,我們將接著介紹「VPC架構 Routes & Security」中網路安全設定的部分!
以 private subnet 到 private subnet 的例子還說,單看文章,不是很懂「下一站」、跟「目的地」的差別,不是都是要連到哪的意思嗎?
在這個狀況下,「目的地」是另一個 private subnet 的 ec2 instance,但「下一站」是 Local 的中繼站。是在 Local 內部中,「目的地」與「下一站」才是指到相同的 ec2 instance。