VPC 可以想成是一道牆,沒有你的同意外面的東西不能進牆內,同理裡面的東西不能出牆外,主要的設定有兩個
- Region
- IP range: 用 CIDR 表示的的 IP 範圍
Subnet
你可以在 VPC 切一個一個的 subnet 去放不同的資源,subnet 主要的用的在於更精細的調整資源的取用,比如我一個外對開放的 backend service 跑在 EC2 上,那我讀可以開一個 Subnet A 接受外部請求,但我的 DB 不想要可以被外部連接,我可以將另一個 subnet 來放我的 DB
創建一個 Subnet 要有
- VPC
- AZ (Availablity Zone)
- IP range
被 AWS 保留的 IP
AWS 會在每個 Subnet 保留 5 個 IP 做 networking 管理使用
假設 VPC 的的 IP 範圍是 10.0.0.0/22,所以總共有 1024 個 IP Address, 如果往下開 4 個 /24 IP 範圍的 subnet,每個 subnet 實際可以使用的 IP 數量是
1024/4 - 5 = 251 |
新手如果怕 IP 不夠用的話可以將 VPC 的 IP 範圍開為 /16
然後 Subnet 的 IP 範圍開為 /24
,這樣就不怕 IP 數量不夠
Interent gateway
VPC 是一個隔離、獨立的環境所以要讓外面的請求可以進到 VPC,我們需要創建 Internet gateway,並且 Attach 到 VPC 上,可以把 Internet Gateway 想是家中的數據機(modem),需要將電腦連上數據機才能上網
Virtual Private Gateway
如果你只想要連本地或私人服務連到你的 AWS VPC,沒有要連接外網,可以使用 Virtual Private Gateway(VGW),使用 VGW 後你就可以連接公司的內網服務到 AWS VPC,VGW 會使用 VPN 連線來確保安全性
Route Table
外部 Request 透 IGW 進到了 VPC,但是他怎麼知道要到哪個房間(Subnet),需要設定 Route Table
Route Table 裡可以設定一系列的 Routes,用來決定 Network Traffic 要導向哪,Route 可以設定在 VPC 層級或 Subnet 層級
當你創建一個新的 VPC 時,AWS 會自動創建一個 Main Route Table,作用於整個 VPC,換句話說,在 VPC 內的服務可以自由的 Access 另一個 VPC 內的服務
Subnet 是否為 Public 也是依據 Route Table 的設定,如果 Subnet 和 IGW 之間有建立 Route 就代表這個 Subnet 是 Public Subnet
所以你需要為 Subnet 創建 Custom Route Table 來建立 Subnet 和 IGW 之間的 Route
- 第一個 Route 是創建 VPC 就創建的 Main Route Table: 讓 Traffic 可以進到 VPC
- 第二個 Route 建立該 Subnet 和 igw 間的 Route,讓 Traffic 可以倒到該 Subnet
創建 Custom Route Table
VPC → Route Table
選擇 VPC
新增Subnet與 Internet Gateway 間的 Route
- 0.0.0.0/0 說明這個 Route 可以接受和傳送來自任何地方的 Traffic
- Target 下拉選單打 internet gateway,會就自動跳該 VPC 現有的 igw 給你選
綁定 Subnet 與 Route Table
選擇我們要綁定的 Subnet
設定 VPC 順序 (Cheatsheet)
- 創建 VPC
- 創建 Subnet
- 創建 Internet Gateway
- 創建 Custom Route Table
Reference: