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 GroupNACL

能夠細緻地控制「誰能進、誰能出」。

例如:

  • 只允許 EC2 連到 RDS
  • 禁止外部直接存取資料庫

3.流量管理(Traffic Routing)

透過 Route TableInternet GatewayNAT Gateway

你可以決定哪些子網可以上網、哪些只能內部存取。

這也是為什麼「RDS 放在 Private Subnet、EC2 放在 Public Subnet」是 AWS 的最佳實踐。


三、VPC 的核心組成

元件 角色說明
VPC 你的虛擬私有網路,所有服務的基礎環境。
Subnet 子網路,區分公有與私有區域。
Internet Gateway (IGW) 讓 VPC 能連到外部網際網路。
NAT Gateway 讓私有子網的主機能「對外連線」但外部無法主動連入。
Route Table 決定流量要走哪條路。
Security Group 控制進出流量的防火牆規則。
Network ACL 子網層級的進階流量控制。

四、圖解理解:雲端裡的城市地圖

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
        🌍 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 | │
│ +-------------------+ │
└──────────────────────────┘

這張圖能讓人一眼看懂:

  • 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,可以讓我們設計出更安全、可維護、具延展性的雲端應用。