iT邦幫忙

2025 iThome 鐵人賽

DAY 28
0
Modern Web

30 天,讓 TypeScript 把你的 Node.js 開發再升級系列 第 28

Day 28|AWS VPC 入門:初探雲端世界的隱形網路

  • 分享至 

  • xImage
  •  

前言

從 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 子網層級的進階流量控制。

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

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


上一篇
Day 27|AWS S3 實作檔案上傳:打造你的雲端檔案儲存中心
系列文
30 天,讓 TypeScript 把你的 Node.js 開發再升級28
圖片
  熱門推薦
圖片
{{ item.channelVendor }} | {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言