AWS EC2、ENI、Subnet 完整入門指南給|初學者的雲端網路架構實戰教學

Published September 9, 2025 by 徐培鈞
架構

許多初學者在學習 AWS 時,常常對 EC2、Subnet、ENI 這三個概念感到困惑。

大部分人以為「把 EC2 放進 Subnet 就能上網」,但實際上還有一個重要角色叫 ENI(網路介面卡)在中間扮演關鍵作用。

很多人不知道 ENI 的存在,或者不理解為什麼需要這個額外的組件。

這篇文章將用最簡單的比喻和實際例子,幫你徹底理解這三者的分工與關係,以及為什麼在災難備援架構中,正確理解這些概念如此重要。

當你完成這篇文章的閱讀後,你將能夠:

  • 清楚區分 EC2、ENI、Subnet 的功能差異
  • 理解它們之間的連接關係和架構邏輯
  • 掌握 ENI 在高可用架構中的重要性
  • 具備設計多網段、備援架構的基礎知識

核心概念解析:什麼是 EC2、ENI、Subnet?

用生活比喻理解三者關係

想像你要在一棟辦公大樓裡設置電腦網路,這時:

生活比喻一台沒插網路線的電腦主機
實際功能負責「運算」,執行應用程式
生活比喻電腦的網路卡(有插孔、IP、MAC位址)
實際功能連結網路的「橋樑」,負責網路通訊
生活比喻辦公大樓中特定樓層的網路區段
實際功能IP 位址池,屬於特定可用區(AZ)
生活比喻整棟辦公大樓的網路總架構
實際功能你的 AWS 私有網路空間
生活比喻大樓的門禁卡系統
實際功能控制網路流量進出的防火牆

關鍵理解點

重點:EC2 本身沒有網路功能!

這是許多初學者的盲點。EC2 只是一台虛擬電腦,它需要透過 ENI(網路卡)才能連接到網路。就像你買了一台電腦,但沒有網路卡,是無法上網的。

架構關係:三者如何協作?

正確的架構層級

Region(例如:東京)
└── VPC(你的虛擬網路空間)
    └── Availability Zone(可用區 a)
        └── Subnet(子網段,例如 10.0.1.0/24)
            ├── ENI 1(網卡 - IP: 10.0.1.11)
                └── 掛載到 EC2 A(虛擬機器)
            ├── ENI 2(網卡 - IP: 10.0.1.12)
                └── 掛載到 EC2 B(虛擬機器)
            └── ENI 3(網卡 - IP: 10.0.1.13)
                 └── 掛載到 EC2 C(虛擬機器)

連接流程

  1. EC2 啟動 → 需要網路功能
  2. 掛載 ENI → 提供網路介面
  3. ENI 綁定 Subnet → 從 IP 池中分配位址
  4. 套用 Security Group → 設定防火牆規則
  5. 開始網路通訊 → 完成連線

ENI 深度解析:為什麼它如此重要?

ENI 的獨特特性

ENI(Elastic Network Interface)就像一張「可以拔插的網路卡」,它有四個重要特性:

特性一:獨立 IP 和 MAC 位址

想像你有一張實體網路卡,上面寫著固定的序號(MAC)和分配到的門牌號碼(IP)。

具體例子:

  • 你建立了一個 ENI,系統分配給它:
  • MAC 位址:0a:1b:2c:3d:4e:5f (網卡的身分證)
  • IP 位址:10.0.1.15 (網路上的門牌)
  • 這個 ENI 可以從 EC2-A 拔下來,插到 EC2-B 上
  • IP 和 MAC 都不會改變,就像搬家時帶著同一張門牌

特性二:可重複使用

傳統觀念:EC2 掛掉 = 網路設定也消失
ENI 觀念:EC2 掛掉,但「網路卡」還在,可以插到新電腦

具體例子:

步驟1:建立 ENI-Production(IP: 52.1.2.3)
步驟2:插到 EC2-WebServer-A 上運作
步驟3:EC2-WebServer-A 當機
步驟4:拔下 ENI-Production
步驟5:插到備用的 EC2-WebServer-B
步驟6:網站恢復,IP 位址完全沒變

好處: 客戶連線不會斷,DNS 不用更新

特性三:多網卡支援

就像一台電腦可以插多張網路卡,連接不同網路。

具體例子:

假設你經營一個購物網站,需要:

  • 前台:讓客戶瀏覽商品
  • 後台:連接資料庫和金流系統
EC2-購物網站主機
├── ENI-前台(Public Subnet)
   ├── IP: 10.0.1.20(對外)
   ├── 綁定彈性IP: 52.1.2.3(固定對外IP)
   └── Security Group: 只允許 HTTP/HTTPS
└── ENI-後台(Private Subnet)
    ├── IP: 10.0.2.20(僅內網)
    ├── 無對外IP
    └── Security Group: 只允許資料庫連線

實際運作:

  • 客戶訪問 52.1.2.3,透過前台ENI進來
  • 網站需要查詢資料時,透過後台ENI連資料庫
  • 兩個網路完全隔離,提高安全性

特性四:個別安全群組設定

每個 ENI 都可以有自己的「門禁管制」。

具體例子:

同一台 EC2 的雙 ENI 設定:

ENI-1(Web服務)
├── Security Group: Web-SG
├── 允許:全世界的 80, 443 port
└── 拒絕:其他所有連線

ENI-2(管理介面)  
├── Security Group: Admin-SG
├── 允許:公司IP的 22, 3389 port
└── 拒絕:其他所有連線

ENI 在災難備援中的實際應用場景

場景一:電商網站的IP固定需求

背景: 你經營一個線上商店,已經跟金流公司、物流公司設定好固定 IP 白名單。

問題: 如果主機壞了重建,IP會變,所有合作商都要重新設定白名單,至少停機半天。

ENI 解決方案:

平常運作:
├── ENI-Shop(IP: 52.1.2.3)
└── 掛在 EC2-Main 上跑電商系統

主機故障:
├── EC2-Main 當機(硬體故障)
├── ENI-Shop 還在(重要!)
└── 準備啟動備用主機

5分鐘內復原:
├── 啟動 EC2-Backup
├── 掛上 ENI-Shop
└── IP 52.1.2.3 立即恢復服務

結果: 合作商不用改設定,客戶幾乎感覺不到中斷

場景二:雙網段隔離架構

背景: 你開發一個處理敏感資料的系統,需要將「對外服務」和「內部處理」完全分開。

設計需求:

  • 前台:處理用戶請求,可以連接網際網路
  • 後台:處理敏感資料,絕對不能直接連外網

ENI 雙網段設計:

應用伺服器 EC2
├── 前台 ENI
   ├── 位於 Public Subnet(10.0.1.0/24)
   ├── IP: 10.0.1.25
   ├──  Internet Gateway,可對外連線
   ├── Security Group: 允許 HTTPS 443
   └── 負責接收用戶請求
└── 後台 ENI  
    ├── 位於 Private Subnet(10.0.2.0/24)
    ├── IP: 10.0.2.25
    ├──  Internet Gateway,無法對外
    ├── Security Group: 只允許資料庫 port 5432
    └── 負責處理敏感資料

實際流程:
用戶請求  前台ENI接收  應用程式處理  後台ENI查資料庫  回傳結果

安全好處:

  • 即使前台被駭客攻破,也無法直接存取後台網路
  • 敏感資料處理過程完全與外網隔離
  • 可以針對不同ENI設定不同的監控和日誌規則

Subnet 深度理解:網路區段的規劃

Subnet 到底是什麼?用社區大樓來比喻

想像你住在一個大型社區,整個社區叫做「VPC社區」,而 Subnet 就像社區裡的「A棟大樓」。

Subnet 就像一棟大樓,它決定了:

門牌號碼範圍(IP 範圍)

假設 A 棟大樓的門牌是 10.0.1.110.0.1.254,總共可以住 254 戶人家。

  • 寫成網路術語就是:10.0.1.0/24
  • 意思是:這棟大樓有 254 個可用的門牌號碼

大樓位置(可用區)

每棟大樓只能蓋在社區內的一個特定區塊,不能跨區塊。

  • A 棟在社區的東區(對應 AZ-a)
  • B 棟在社區的西區(對應 AZ-b)
  • 不能說 A 棟一半在東區,一半在西區

進出路線(網路路由)

每棟大樓都有固定的進出路線:

  • 有些大樓連接大馬路,可以直接對外(Public Subnet)
  • 有些大樓在內部巷弄,要透過其他路線才能對外(Private Subnet)

一棟大樓裡住了什麼?實際例子

想像 A 棟大樓(Subnet 10.0.1.0/24)裡的住戶分配:

A 棟大樓(門牌範圍:10.0.1.1~10.0.1.254)
├── 11號住戶:小明的電腦(EC2-A)
   └── 網路線接孔-1(ENI-1,門牌10.0.1.11)
├── 12號住戶:小華的電腦(EC2-B)
   └── 網路線接孔-2(ENI-2,門牌10.0.1.12)  
├── 13號住戶:小李的工作站(EC2-C)
   ├── 主要網路線(ENI-3,門牌10.0.1.13)
   └── 備用網路線(ENI-4,門牌10.0.1.14)
└── 15號:預留的網路接孔(ENI-5,門牌10.0.1.15)
    └── 目前沒有電腦連接,但可以隨時使用

重要觀念釐清:破解常見迷思

迷思一:「一棟大樓只能住一戶人家」

錯誤想法: 一個 Subnet 只能放一台 EC2
正確理解: 就像一棟大樓可以住很多戶,一個 Subnet 可以放很多台 EC2

實際例子:

  • 一個網咖的 Subnet(10.0.1.0/24)
  • 可以放 50 台電腦(EC2)
  • 每台都有自己的 IP:10.0.1.11、10.0.1.12…10.0.1.60

迷思二:「電腦直接擁有門牌號碼」

錯誤想法: EC2 直接擁有 IP 位址
正確理解: IP 位址屬於網路接孔(ENI),不是電腦本身

更好的比喻:辦公室座位和分機號碼

  • 你(EC2)坐在辦公室的某個座位
  • 座位上有電話分機(ENI),分機號碼是 2101
  • 如果你換到別的座位,分機號碼 2101 還是留在原座位
  • 但如果你可以「搬走整個電話機」,就能在新座位用同樣的 2101 號碼

實際操作例子:

情況1:EC2 掛掉,重建一台新的
結果:就像重新分配座位,會拿到新的分機號碼

情況2:把 ENI 拔下來插到新 EC2  
結果:就像搬走整個電話機,在新座位還能用原號碼 2101

迷思三:「網路設定跟著電腦走」

錯誤想法: 網路設定(防火牆)綁定在 EC2 上
正確理解: 網路設定綁定在網路接孔(ENI)上

更好的比喻:電話機的來電管制功能

  • 傳統想法:「小王這個人的電話有來電管制」
  • 正確想法:「2101 這支電話機設定了來電管制」

實際例子:

電話機 ENI-A 的來電管制設定:
├── 只接受公司內部來電(內線 1000-2000)
├── 拒絕所有外線來電
└── 允許特定客戶直撥(白名單號碼)

當你把這支電話機從小王桌上搬到小李桌上:
├── 小李用這支電話,所有管制規則都一樣
├── 還是只能接內線和白名單電話
└── 電話機的設定沒有因為換人用就改變

實務應用:為什麼這些概念很重要?

場景:公司網路規劃

你的公司有 3 個部門,每個部門需要不同的網路權限:

VPC-公司網路
├── Subnet-業務部(10.0.1.0/24)
   ├── 可以連外網查客戶資料
   └── 30 EC2,每台配一個 ENI
├── Subnet-研發部(10.0.2.0/24)  
   ├── 只能連內網,保護原始碼
   └── 20 EC2,每台配一個 ENI
└── Subnet-管理部(10.0.3.0/24)
    ├── 可以管理所有網段
    └── 5 EC2,每台配多個 ENI 連接不同網段

場景:災難復原計畫

平常:
生產環境 EC2  ENI(固定 IP:10.0.1.100)

災難發生:
生產 EC2 故障

快速復原:  
備用 EC2  接上同個 ENI(IP 還是:10.0.1.100)

好處:
├── 客戶連線不會斷
├── DNS 不用改
└── 5分鐘內恢復服務

這樣解釋是不是比較清楚了?Subnet 就是一棟有門牌範圍的大樓,ENI 是大樓裡的網路接孔,EC2 是插在接孔上的電腦設備。

實務操作:在 AWS Console 中看到的真實情況

建立 EC2 時,AWS 在背後做了什麼?

當你在 AWS 網頁上點「Launch Instance」建立一台新電腦時,你看到的vs系統實際做的:

你看到的操作步驟

步驟1:選擇機器規格  t2.micro(小型電腦)
步驟2:選擇網路位置  VPC-MyCompany / Subnet-WebServer
步驟3:設定安全群組  允許 HTTP、HTTPS 連線
步驟4:點擊「Launch」→ 等待 2-3 分鐘
步驟5:看到「Instance Running」→ 電腦開好了!

AWS 在背後自動做的事情

系統執行:
├── 看你選了 Subnet-WebServer
├── 自動建立一張「網路卡」ENI-12345
├── 把這張網路卡插到你的新電腦上
├──  Subnet  IP 池裡抓一個號碼:10.0.1.25
├── 把安全群組設定綁定到這張網路卡上
└── 完成!電腦可以上網了

結果:
EC2-WebServer01  插著 ENI-12345(IP: 10.0.1.25)

重點:你以為是「電腦直接連網路」,其實是「電腦插上網路卡才連網路」

什麼時候需要「手動處理網路卡」?

情況一:準備災難備援

一般人的做法(有風險):

  • 只建立一台主機,壞了再說
  • 壞了重建 → IP 會變 → 客戶連不上 → 損失慘重

專業做法(用 ENI):

步驟1:手動建立一張「救命網路卡」ENI-Backup
├── 分配固定 IP:52.1.2.100(重要的對外IP)
├── 設定安全規則:只允許客戶連線
└── 先不要插到任何電腦上,放著備用

步驟2:平常運作
├── 主機 EC2-Main 用一般網路卡運作
├── ENI-Backup 暫時沒使用
└── 客戶透過 52.1.2.100 訪問你的服務

步驟3:災難發生
├── EC2-Main 掛掉了
├── 緊急啟動備用主機 EC2-Backup  
├──  ENI-Backup 插到 EC2-Backup 
└── 5分鐘內恢復,客戶幾乎沒感覺

情況二:同一台電腦需要連接兩個不同網路

實際業務場景:
你的購物網站需要:

  • 前台:客戶瀏覽商品(要能連外網)
  • 後台:處理訂單和金流(只能連內網,安全考量)

解決方案:

購物網站主機 EC2-Shop
├── 網路卡-1(ENI-Frontend)
   ├── IP: 10.0.1.50(前台網路)  
   ├── 可以連接外網
   └── 處理客戶的瀏覽請求
└── 網路卡-2(ENI-Backend)
    ├── IP: 10.0.2.50(後台網路)
    ├── 不能連外網  
    └── 只能連接內部資料庫

在 AWS 網頁上實際怎麼操作?

查看你現在有哪些「網路卡」

操作步驟:

1. 登入 AWS Console
2. 搜尋「EC2」→ 點進去
3. 左側選單找到「Network Interfaces」
4. 你會看到一個清單,每一行就是一張「網路卡」

清單會顯示:
├── ENI ID: eni-12345678(網路卡編號)
├── IP Address: 10.0.1.25(這張卡的IP)  
├── Subnet: subnet-abc123(插在哪棟大樓)
├── Instance: i-987654321(插在哪台電腦)
└── Status: In-use(正在使用中)

手動建立一張「備用網路卡」

操作步驟:

1.  Network Interfaces 頁面
2. 點「Create Network Interface」
3. 填寫設定:
   ├── Description: 備用網路卡-購物網站
   ├── Subnet: 選擇你要的大樓(subnet-web)
   ├── Private IP: 可選特定號碼或自動分配
   └── Security Groups: 選擇防火牆規則
4. 點「Create」
5. 完成!現在你有一張沒插在任何電腦上的網路卡

把網路卡插到電腦上

操作步驟:
1.  Network Interfaces 清單中
2. 選擇你要的網路卡(打勾)
3. 點「Actions」→「Attach」
4. 選擇要插到哪台電腦:
   ├── Instance: 選擇目標電腦(EC2)
   └── Device Index: 通常選 1(第二張網路卡)
5. 點「Attach」
6. 完成!這台電腦現在有兩張網路卡了

設定固定的對外 IP(彈性 IP)

為什麼需要?
├── 一般 IP:電腦重開可能會變
├── 彈性 IP:永遠不變,適合對外服務
└── 就像申請市話專線 vs 用手機號碼的差別

操作步驟:

1. 左側選單找「Elastic IPs」
2. 點「Allocate Elastic IP address」→ 申請一個固定IP
3. 選擇剛申請的 IP  Actions  Associate  
4. 選擇要綁定的網路卡(ENI)
5. 完成!現在這張網路卡有固定對外 IP 

實際檢查:你的 EC2 真的有 ENI 嗎?

簡單驗證步驟:

1. 進入你的 EC2 詳細頁面
2. 往下滾動找到「Networking」區塊
3. 你會看到:
   ├── Network Interface: eni-xxxxxxxx(這就是網路卡ID!)
   ├── Private IP: 10.0.x.x(內網IP)  
   ├── Public IP: 52.x.x.x(外網IP,如果有的話)
   └── Security Groups: sg-xxxxxxxx(防火牆設定)

這證明:你的 EC2 確實是透過 ENI 連網的!

常見問題與疑難排解

觀念釐清 Q&A

Q: 為什麼不能直接讓 EC2 連到 Subnet?
A: 因為網路功能需要專門的介面(ENI)來處理。這樣設計讓網路配置更靈活,可以獨立管理。

Q: ENI 可以跨 Subnet 使用嗎?
A: 不行。每個 ENI 建立時就綁定特定 Subnet,不能移到其他 Subnet。

Q: 一台 EC2 最多可以有幾個 ENI?
A: 依 EC2 機型而定,小型約 2-3 個,大型可達 15 個以上。

實務設計建議

單一網段應用

簡單網站:EC2 + 1個ENI + Public Subnet

雙網段隔離

企業應用:EC2 + 前台ENI(Public) + 後台ENI(Private)

高可用備援

關鍵服務:主機群 + 可移動ENI + 自動切換腳本

結語

理解 EC2、ENI、Subnet 的關係是 AWS 網路架構的基礎。記住這個核心邏輯:

EC2(運算)→ ENI(網路介面)→ Subnet(網路區段)→ VPC(網路空間)

每一層都有其專門功能,分層設計讓你能建構更靈活、可靠的雲端架構。

在災難備援場景中,ENI 的可移動性更是實現快速故障切換的關鍵技術。

掌握了這些概念後,你就具備了設計 AWS 高可用架構的重要基礎。

接下來可以開始實作練習,將理論轉化為實際的操作經驗。