從 Day23 開始,我們一步步搭起了:
這三者合起來,已經是個完整的雲端應用了。
但在這個過程中,你可能有注意到一些問題:
這些現象看似神秘,其實背後都有一個共同的原因:
👉 它們都活在同一個「網路世界」中,也就是 VPC(Virtual Private Cloud)。
💡 一句話理解:
VPC 是 AWS 上的「虛擬私人網路」,讓你在雲端擁有一塊專屬的網路空間。
你可以把整個 AWS 想成一座「雲端大城市」,
而每一個使用者申請的 VPC,就是在城市裡劃出一塊區域:
這塊區域上,你可以:
換句話說:
VPC 是所有 AWS 服務運作的「網路基礎設施」。
沒有 VPC 的世界,就像所有房子都建在同一條馬路上,
大家彼此都能看到、都能互通,安全性極低。
而 VPC 的出現,解決了三件事:
你可以建立多個 VPC,讓不同專案的服務彼此隔離。
例如:
一個 VPC 給測試環境
一個 VPC 給正式環境
這樣可以避免誤連線、資料誤操作。
VPC 搭配 Security Group 和 NACL,
能夠細緻地控制「誰能進、誰能出」。
例如:
透過 Route Table、Internet Gateway、NAT Gateway,
你可以決定哪些子網可以上網、哪些只能內部存取。
這也是為什麼「RDS 放在 Private Subnet、EC2 放在 Public Subnet」是 AWS 的最佳實踐。
元件 | 角色說明 |
---|---|
VPC | 你的虛擬私有網路,所有服務的基礎環境。 |
Subnet | 子網路,區分公有與私有區域。 |
Internet Gateway (IGW) | 讓 VPC 能連到外部網際網路。 |
NAT Gateway | 讓私有子網的主機能「對外連線」但外部無法主動連入。 |
Route Table | 決定流量要走哪條路。 |
Security Group | 控制進出流量的防火牆規則。 |
Network ACL | 子網層級的進階流量控制。 |
🌍 Internet
|
+----------------+
| InternetGateway|
+----------------+
|
┌──────────────────────────┐
│ VPC 10.0.0.0/16 │
│ │
│ +-------------------+ │
│ | Public Subnet | │ --> EC2 (Web Server)
│ | 10.0.1.0/24 | │
│ +-------------------+ │
│ │
│ +-------------------+ │
│ | Private Subnet | │ --> RDS (Database)
│ | 10.0.2.0/24 | │
│ +-------------------+ │
└──────────────────────────┘
這張圖能讓人一眼看懂:
💡 小知識:
在 AWS 裡,幾乎所有服務(EC2、RDS、Lambda)都「必須」放在某個 VPC 之下。
它是整個雲端架構的「底層基礎建設」。
服務 | 依附於 VPC 的部分 | 為什麼重要 |
---|---|---|
EC2 | 放在 Public Subnet | 需要能被外界存取 |
RDS | 放在 Private Subnet | 只允許內部連線 |
S3 | 不在 VPC 裡,但可透過 VPC Endpoint 連線 | 提高安全性 |
💡 小知識:
雖然 S3 不屬於 VPC 網路,但可以建立「VPC Endpoint」讓流量走內部路線,不經外網,安全又穩定。
Security Group 是 VPC 的第一層安全防線
它是狀態式防火牆,能自動允許回應流量。
Private Subnet 並非不能上網
搭配 NAT Gateway,就能「單向上網」。
一個 AWS 帳號可建立多個 VPC
用來區隔不同環境(開發、測試、正式)。
今天,我們沒有寫一行程式,
卻認識了 AWS 背後最重要的基礎:網路架構的設計思維。
VPC 就像你在雲端世界的「地基」——
所有 EC2、RDS、S3、Lambda 都是在這塊地上蓋出來的。
理解 VPC,可以讓我們設計出更安全、可維護、具延展性的雲端應用。