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