返回首頁AWS

AWS VPC 入門教學:虛擬私有雲架設、子網路、安全設定【2025】

20 min 分鐘閱讀

AWS VPC 入門教學:虛擬私有雲架設、子網路、安全設定【2025】

AWS VPC 入門教學:虛擬私有雲架設、子網路、安全設定【2025】

為什麼你的資料庫不應該有公開 IP?為什麼 Web Server 和 Database 要放在不同的子網路?為什麼同樣的安全群組設定,有時能連線有時不能?這些問題的答案都在 VPC。

VPC 是 AWS 網路架構的基礎。理解 VPC,你才能設計出安全、可靠的雲端架構。這篇文章會帶你從頭認識 VPC——從基本概念、核心元件,到實際建立一個標準的三層架構。


什麼是 AWS VPC?

VPC(Virtual Private Cloud)是你在 AWS 雲端的私有網路。你可以把它想像成在 AWS 資料中心裡劃出一塊專屬於你的區域,有自己的 IP 範圍、子網路、路由規則。

VPC 的核心價值

1. 隔離性

VPC 與 VPC 之間完全隔離。你的資源不會被其他用戶看到或存取。

2. 控制權

你可以完全控制網路設定:

  • IP 位址範圍
  • 子網路劃分
  • 路由表
  • 網路閘道
  • 安全規則

3. 連接性

VPC 可以連接到:

  • 網際網路(透過 Internet Gateway)
  • 企業內網(透過 VPN 或 Direct Connect)
  • 其他 VPC(透過 VPC Peering 或 Transit Gateway)

VPC vs 傳統網路

面向傳統企業網路AWS VPC
建置時間數週到數月幾分鐘
擴展性受限於硬體幾乎無限
設定方式實體設備 + CLIAWS Console / API
成本硬體 + 維護用多少付多少
跨區域需要專線原生支援

為什麼需要 VPC?

當你在 AWS 上建立 EC2、RDS、Lambda 等資源時,它們需要一個網路環境。VPC 就是這個環境。

沒有 VPC 的問題:

  • 所有資源都暴露在公網
  • 無法控制資源之間的存取
  • 無法連接企業內網
  • 無法滿足合規要求

有 VPC 的好處:

  • 資料庫放在私有子網路,只有應用層能存取
  • Web Server 在公有子網路,可接受網際網路流量
  • 明確的安全邊界和流量控制
  • 符合金融、醫療等產業法規

VPC 核心元件

要理解 VPC,需要先認識這些核心元件:

子網路(Subnet)

子網路是 VPC 內的 IP 位址區塊。每個子網路對應一個可用區(AZ)。

公有子網路 vs 私有子網路

特性公有子網路私有子網路
可接收網際網路流量
可主動連到網際網路是(透過 IGW)要透過 NAT Gateway
適合放什麼Web Server、Bastion HostDatabase、App Server
路由表指向Internet GatewayNAT Gateway

子網路規劃範例:

VPC: 10.0.0.0/16(65,536 個 IP)
│
├── Public Subnet 1:  10.0.1.0/24(256 IP)- AZ-a
├── Public Subnet 2:  10.0.2.0/24(256 IP)- AZ-b
├── Private Subnet 1: 10.0.11.0/24(256 IP)- AZ-a
├── Private Subnet 2: 10.0.12.0/24(256 IP)- AZ-b
├── DB Subnet 1:      10.0.21.0/24(256 IP)- AZ-a
└── DB Subnet 2:      10.0.22.0/24(256 IP)- AZ-b

路由表(Route Table)

路由表決定網路流量要往哪裡送。每個子網路都會關聯一個路由表。

公有子網路的路由表:

目的地目標
10.0.0.0/16local(VPC 內部)
0.0.0.0/0igw-xxxxx(Internet Gateway)

私有子網路的路由表:

目的地目標
10.0.0.0/16local
0.0.0.0/0nat-xxxxx(NAT Gateway)

Internet Gateway(IGW)

Internet Gateway 讓 VPC 內的資源可以與網際網路通訊。

特點:

  • 每個 VPC 只能有一個 IGW
  • 高可用,由 AWS 管理
  • 免費(不收取閘道本身的費用)
  • 支援 IPv4 和 IPv6

使用條件:

  1. VPC 附加 IGW
  2. 子網路路由表有指向 IGW 的路由
  3. 執行個體有公有 IP 或 Elastic IP
  4. 安全群組允許流量

NAT Gateway

NAT Gateway 讓私有子網路的資源可以主動連到網際網路(例如下載更新),但網際網路無法主動連入。

特點:

  • 單向:只能從內到外
  • 部署在公有子網路
  • 高可用(單 AZ),建議每個 AZ 一個
  • 收費:每小時 $0.045 + 資料處理費

架構示意:

                    網際網路
                        │
                        ▼
                ┌───────────────┐
                │Internet Gateway│
                └───────┬───────┘
                        │
        ┌───────────────┼───────────────┐
        │               │               │
        ▼               ▼               ▼
   ┌─────────┐    ┌─────────┐    ┌─────────┐
   │ Public  │    │ Public  │    │   NAT   │
   │ Subnet  │    │ Subnet  │    │ Gateway │
   │(Web 層) │    │(Web 層) │    │         │
   └─────────┘    └─────────┘    └────┬────┘
                                      │
                    ┌─────────────────┘
                    ▼
              ┌─────────┐
              │ Private │
              │ Subnet  │
              │(App/DB) │
              └─────────┘

安全群組(Security Group)

安全群組是執行個體層級的防火牆,控制進出執行個體的流量。

特點:

  • 有狀態(Stateful):允許進入的流量,回應自動允許出去
  • 預設拒絕所有進入流量
  • 預設允許所有外出流量
  • 只能設定允許規則,不能設定拒絕規則

常見設定範例:

類型協定Port來源說明
SSHTCP2210.0.0.0/16只允許 VPC 內 SSH
HTTPTCP800.0.0.0/0允許所有人 HTTP
HTTPSTCP4430.0.0.0/0允許所有人 HTTPS
MySQLTCP3306sg-app只允許 App 層安全群組

網路 ACL(NACL)

NACL 是子網路層級的防火牆,作為第二道防線。

特點:

  • 無狀態(Stateless):進出規則要分開設定
  • 規則有順序號碼,從小到大評估
  • 可以設定允許和拒絕規則
  • 預設 NACL 允許所有流量

Security Group vs NACL:

面向Security GroupNACL
層級執行個體子網路
狀態有狀態無狀態
規則類型只能允許允許和拒絕
規則評估全部評估按順序評估
預設拒絕所有入、允許所有出允許所有

一般建議: 主要用 Security Group 控制,NACL 作為額外防護層。


子網路規劃

好的子網路規劃是 VPC 設計的關鍵。

CIDR 區塊規劃

CIDR(Classless Inter-Domain Routing)定義 IP 位址範圍。

常用 CIDR:

CIDRIP 數量適用場景
/1665,536VPC
/204,096大型子網路
/24256標準子網路
/2816小型子網路

私有 IP 範圍(RFC 1918):

  • 10.0.0.0 - 10.255.255.255(10.0.0.0/8)
  • 172.16.0.0 - 172.31.255.255(172.16.0.0/12)
  • 192.168.0.0 - 192.168.255.255(192.168.0.0/16)

規劃建議:

  • VPC 用 /16(預留足夠空間)
  • 子網路用 /24(256 IP,實際可用 251 個)
  • 避免與企業內網 IP 範圍重疊

公有子網路 vs 私有子網路

公有子網路:

  • 路由表有指向 IGW 的 0.0.0.0/0 路由
  • 執行個體可獲得公有 IP
  • 適合:Web Server、Bastion Host、NAT Gateway

私有子網路:

  • 路由表沒有直接到 IGW 的路由
  • 執行個體只有私有 IP
  • 適合:Application Server、Database、內部服務

多可用區設計

為了高可用性,建議在至少兩個 AZ 部署資源。

標準三層架構:

                     VPC: 10.0.0.0/16
    ┌─────────────────────────────────────────────┐
    │                                             │
    │   AZ-a                      AZ-b            │
    │   ┌─────────────┐          ┌─────────────┐  │
    │   │ Public      │          │ Public      │  │
    │   │ 10.0.1.0/24 │          │ 10.0.2.0/24 │  │
    │   │   [ALB]     │──────────│   [ALB]     │  │
    │   └──────┬──────┘          └──────┬──────┘  │
    │          │                        │         │
    │   ┌──────▼──────┐          ┌──────▼──────┐  │
    │   │ Private     │          │ Private     │  │
    │   │ 10.0.11.0/24│          │ 10.0.12.0/24│  │
    │   │   [EC2]     │──────────│   [EC2]     │  │
    │   └──────┬──────┘          └──────┬──────┘  │
    │          │                        │         │
    │   ┌──────▼──────┐          ┌──────▼──────┐  │
    │   │ DB Subnet   │          │ DB Subnet   │  │
    │   │ 10.0.21.0/24│          │ 10.0.22.0/24│  │
    │   │   [RDS]     │◄─────────│   [RDS]     │  │
    │   └─────────────┘ Primary   └─────────────┘  │
    │                   Standby                   │
    └─────────────────────────────────────────────┘

VPC 安全設定

安全群組設計原則

1. 最小權限原則

只開放必要的 port,來源盡可能限縮。

❌ 錯誤:開放 0.0.0.0/0 存取資料庫
✓ 正確:只允許應用層安全群組存取資料庫

2. 分層設計

每一層有自己的安全群組:

層級安全群組允許來源
Web 層sg-web0.0.0.0/0 (80, 443)
App 層sg-appsg-web (8080)
DB 層sg-dbsg-app (3306)

3. 使用安全群組引用

不要用 IP,用安全群組 ID 作為來源:

❌ 來源:10.0.11.0/24
✓ 來源:sg-app

好處:即使 IP 變動,規則仍然有效。

安全群組範例

Web Server(sg-web):

方向類型Port來源/目標
HTTP800.0.0.0/0
HTTPS4430.0.0.0/0
SSH22sg-bastion
AllAll0.0.0.0/0

Application Server(sg-app):

方向類型Port來源/目標
Custom8080sg-web
SSH22sg-bastion
MySQL3306sg-db
HTTPS4430.0.0.0/0

Database(sg-db):

方向類型Port來源/目標
MySQL3306sg-app
AllAll0.0.0.0/0

NACL 最佳實踐

通常保持預設 NACL(允許所有)即可,主要靠 Security Group 控制。

需要用 NACL 的場景:

  • 需要明確拒絕特定 IP
  • 合規要求需要子網路層級控制
  • 作為額外的安全防線

NACL 設定範例:

規則 #方向類型Port來源動作
100HTTP800.0.0.0/0允許
110HTTPS4430.0.0.0/0允許
120SSH2210.0.0.0/16允許
130Custom1024-655350.0.0.0/0允許
*AllAll0.0.0.0/0拒絕

注意:因為無狀態,需要允許臨時 port(1024-65535)讓回應流量進來。

網路架構對了,安全性自然提升

VPC 設計看似簡單,但魔鬼藏在細節裡。子網路怎麼劃分?安全群組怎麼設計?NAT Gateway 要幾個?這些決定會影響安全性、效能和成本。

CloudInsight 團隊有豐富的 VPC 架構經驗,預約免費諮詢,讓我們幫你設計安全、高效的網路架構。


VPC 建立步驟教學

以下是建立標準三層架構 VPC 的完整步驟。

步驟一:建立 VPC

  1. 前往 AWS Console > VPC
  2. 點擊「Create VPC」
  3. 選擇「VPC and more」(會自動建立子網路、路由表等)

設定:

  • Name tag:my-vpc
  • IPv4 CIDR:10.0.0.0/16
  • Number of AZs:2
  • Number of public subnets:2
  • Number of private subnets:2
  • NAT gateways:In 1 AZ(省錢)或 1 per AZ(高可用)
  • VPC endpoints:None(之後需要再加)
  1. 點擊「Create VPC」

步驟二:檢視建立的資源

AWS 會自動建立:

  • 1 個 VPC
  • 2 個公有子網路
  • 2 個私有子網路
  • 1 個 Internet Gateway
  • 1-2 個 NAT Gateway
  • 對應的路由表

步驟三:驗證路由表

公有子網路路由表應該有:

目的地目標
10.0.0.0/16local
0.0.0.0/0igw-xxxxx

私有子網路路由表應該有:

目的地目標
10.0.0.0/16local
0.0.0.0/0nat-xxxxx

步驟四:建立安全群組

Web 層安全群組(sg-web):

  1. VPC > Security Groups > Create security group
  2. 設定:
    • Name:sg-web
    • VPC:my-vpc
  3. Inbound rules:
    • HTTP (80) from 0.0.0.0/0
    • HTTPS (443) from 0.0.0.0/0

App 層安全群組(sg-app):

  1. 設定:
    • Name:sg-app
    • VPC:my-vpc
  2. Inbound rules:
    • Custom TCP (8080) from sg-web

DB 層安全群組(sg-db):

  1. 設定:
    • Name:sg-db
    • VPC:my-vpc
  2. Inbound rules:
    • MySQL (3306) from sg-app

步驟五:測試連通性

建立測試 EC2:

  1. 在公有子網路建立 EC2(選擇 sg-web)
  2. 確認可以從網際網路 SSH 連入
  3. 確認可以 ping 外部網站

測試私有子網路:

  1. 在私有子網路建立 EC2(選擇 sg-app)
  2. 透過公有子網路的 EC2 跳轉連入
  3. 確認可以 ping 外部網站(透過 NAT Gateway)
  4. 確認外部無法直接連入

VPC 最佳實踐

網路設計

1. 預留足夠 IP 空間

  • VPC 用 /16
  • 為未來擴展預留子網路

2. 跨多個 AZ 部署

  • 至少 2 個 AZ
  • 關鍵服務考慮 3 個 AZ

3. 使用 VPC Flow Logs

  • 記錄所有網路流量
  • 用於安全分析和故障排除

安全設計

1. 分層防護

  • Security Group:主要控制
  • NACL:額外防線
  • WAF:應用層防護

2. 限制 SSH/RDP 存取

  • 使用 Bastion Host
  • 或使用 Systems Manager Session Manager(更安全)

3. 定期審查安全群組

  • 移除不需要的規則
  • 避免 0.0.0.0/0 存取敏感 port

成本優化

1. NAT Gateway 費用

  • 每小時 $0.045 + $0.045/GB
  • 可能是 VPC 中最大的費用項目
  • 考慮使用 NAT Instance(更便宜但要自己管)

2. VPC Endpoint

  • 存取 S3、DynamoDB 等服務不需要走 NAT Gateway
  • Gateway Endpoint:免費(S3、DynamoDB)
  • Interface Endpoint:收費

3. 跨 AZ 流量

  • 同 AZ 內流量免費
  • 跨 AZ 流量 $0.01/GB
  • 設計時考慮資料流向

常見問題

為什麼 EC2 無法連到網際網路?

檢查清單:

  1. ✓ EC2 在公有子網路?
  2. ✓ 子網路路由表有指向 IGW?
  3. ✓ EC2 有公有 IP 或 Elastic IP?
  4. ✓ 安全群組允許出站流量?
  5. ✓ NACL 允許流量?

私有子網路如何存取網際網路?

使用 NAT Gateway:

  1. 在公有子網路建立 NAT Gateway
  2. 私有子網路路由表加入 0.0.0.0/0 → NAT Gateway

VPC Peering vs Transit Gateway?

  • VPC Peering:1 對 1 連接,免費但不支援傳遞路由
  • Transit Gateway:中央樞紐,支援多 VPC,收費

少量 VPC 用 Peering,多 VPC 用 Transit Gateway。

如何連接企業內網?

選項:

  1. Site-to-Site VPN:透過網際網路加密連線
  2. Direct Connect:專線連接,更穩定但成本高
  3. Client VPN:遠端用戶連入 VPC

下一步

VPC 是所有 AWS 架構的基礎。掌握 VPC,你就能設計出安全、可靠的雲端環境。

建議的學習路徑:

  1. 實作:建立三層架構 VPC,部署簡單應用
  2. 安全:設計分層安全群組
  3. 連接:嘗試 VPC Peering
  4. 進階:Transit Gateway、Direct Connect

VPC 架構需要第二意見?

網路架構的錯誤可能導致安全漏洞或意外的高額費用。CloudInsight 團隊幫助過數百家企業設計 VPC 架構,從新建到遷移都有豐富經驗。

預約免費架構諮詢,讓我們幫你檢視和優化 VPC 設計。


延伸閱讀


插圖:VPC 架構總覽圖

場景描述: VPC 架構總覽圖。一個大框代表 VPC,內部分成公有子網路和私有子網路。顯示 Internet Gateway 在 VPC 邊界連接網際網路,NAT Gateway 在公有子網路,箭頭顯示流量方向。標示 EC

視覺重點:

  • 主要內容清晰呈現

必須出現的元素:

  • 依據描述中的關鍵元素

需要顯示的中文字:

顏色調性: 專業、清晰

避免元素: 抽象圖形、齒輪、發光特效

Slug: vpc-architecture-overview

插圖:Security Group 與 NACL 比較圖

場景描述: Security Group 與 NACL 比較圖。左側顯示 Security Group 包圍單一 EC

視覺重點:

  • 主要內容清晰呈現

必須出現的元素:

  • 依據描述中的關鍵元素

需要顯示的中文字:

顏色調性: 專業、清晰

避免元素: 抽象圖形、齒輪、發光特效

Slug: security-group-vs-nacl

插圖:三層架構詳細圖

場景描述: 三層架構詳細圖。垂直排列三層:Web 層(公有子網路,有 ALB)、App 層(私有子網路,有 EC

視覺重點:

  • 主要內容清晰呈現

必須出現的元素:

  • 依據描述中的關鍵元素

需要顯示的中文字:

顏色調性: 專業、清晰

避免元素: 抽象圖形、齒輪、發光特效

Slug: vpc-three-tier-architecture

插圖:VPC 路由說明圖

場景描述: VPC 路由說明圖。以流程圖呈現一個封包從網際網路到私有子網路 EC

視覺重點:

  • 主要內容清晰呈現

必須出現的元素:

  • 依據描述中的關鍵元素

需要顯示的中文字:

顏色調性: 專業、清晰

避免元素: 抽象圖形、齒輪、發光特效

Slug: vpc-routing-explained

需要專業的雲端建議?

無論您正在評估雲平台、優化現有架構,或尋找節費方案,我們都能提供協助

預約免費諮詢

相關文章