
前言:這篇在講什麼?

如果你已經讀過 AWS 基本概念、使用 AWS 建設 VPN 和 AWS IAM 設定,你應該已經有了帳號、懂得基本操作、也知道怎麼管理權限了。
接下來的問題是:要怎麼把服務真正部署上去?
要部署服務之前,你必須先搞懂 AWS 的網路架構。這篇會用最少的理論、最多的實務,帶你走完從「VPC 建好」到「服務上線」的完整路徑。
OSI 模型速查:對應 AWS 服務
你不需要背 OSI 七層,但你需要知道 AWS 的服務大概在哪一層,這樣除錯的時候才知道問題出在哪裡。
| OSI 層級 | 功能 | 對應 AWS 服務 |
|---|---|---|
| L1 物理層 | 硬體、電纜 | AWS 數據中心(你碰不到) |
| L2 資料鏈路層 | MAC、網卡 | ENI(Elastic Network Interface) |
| L3 網路層 | IP、路由 | VPC、Subnet、Route Table、IGW、NAT GW |
| L4 傳輸層 | TCP/UDP | NLB(Network Load Balancer)、Security Group |
| L5 會話層 | 連線管理 | AWS VPN、Direct Connect |
| L6 表示層 | 加密、格式 | ACM(Certificate Manager) |
| L7 應用層 | HTTP/DNS | ALB、Route 53、API Gateway |
重點:你部署服務最常碰到的是 L3(VPC/Subnet)、L4(Security Group)、L7(ALB/Route 53)。把這三層搞懂,80% 的網路問題你都能自己解。
AWS 網路設置與安全配置
1. VPC 設置與 IP 配置
- VPC(Virtual Private Cloud):AWS 中的 VPC 相當於自定義網路層,允許你設定 IP 範圍、子網、路由規則等,並且可以在內部建立私有網路環境。
- 子網劃分:將 VPC 劃分為公共和私有子網,以隔離公開與內部服務。例如,將 Web 服務部署在公共子網,而數據庫部署在私有子網內。
- 路由與網關:配置路由表來控制流量流向,使用 Internet Gateway 來連接外部網路,或使用 NAT Gateway 來讓私有子網訪問外部資源。
2. 防火牆配置與安全組
- 安全組(Security Groups):AWS 上的虛擬防火牆,用於控制入站和出站流量。可以根據 IP 或端口設定規則,預設拒絕所有未授權的流量。
- 網路 ACL(Network Access Control List):用於子網級別的流量控制,提供更細緻的流量過濾規則,適合需要加強安全的應用場景。
3. 傳輸層與負載均衡
- Elastic Load Balancer (ELB):負責傳輸層的流量分配,支持 TCP 和 UDP 協議,並提供健康檢查功能,確保後端服務的可用性。
- TLS/SSL 加密:可以在 ELB 上配置 TLS 設定,確保數據在傳輸過程中安全加密。可使用 AWS Certificate Manager (ACM) 管理憑證。
4. 會話管理與連接優化
- AWS VPN:用於建立安全的 VPN 通道,連接本地數據中心與 AWS VPC,確保數據傳輸的安全性。
- AWS Direct Connect:提供專用網路連接,降低延遲並提高網路性能,適合對帶寬和穩定性要求較高的業務。
5. DNS 與域名解析
- Amazon Route 53:提供高可用的 DNS 服務,支持域名解析、健康檢查和流量路由策略,確保應用的全球可達性。
- 內部 DNS 設置:在 VPC 中配置內部 DNS,用於解析內部服務域名,便於內部服務間的通信。
6. 流量管理與 QoS
- Traffic Mirroring:複製 VPC 中的網路流量,用於流量分析和監控。
- QoS 設置:雖然 AWS 上沒有直接的 QoS 設置,但可以通過配置網路策略和資源限制來優化網路性能。
從網路設定到服務部署
前面講的是「有哪些元件」,這段講的是「怎麼把它們串起來」。
假設你要部署一個 Web App,整個流程大概長這樣:
flowchart TD A[建立 VPC<br/>設定 CIDR 如 10.0.0.0/16] --> B[劃分子網] B --> B1[Public Subnet x2<br/>跨不同 AZ] B --> B2[Private Subnet x2<br/>跨不同 AZ] B1 --> C[建立 Internet Gateway<br/>掛到 VPC] C --> D[設定 Route Table<br/>Public Subnet → IGW] B2 --> D2[設定 Route Table<br/>Private Subnet → NAT GW] D --> E[建立 Security Group<br/>開放必要 Port] D2 --> E E --> F{選擇部署方式} F -->|容器化| G1[ECS + Fargate<br/>部署在 Private Subnet] F -->|傳統 VM| G2[EC2<br/>部署在 Private Subnet] G1 --> H[建立 ALB<br/>放在 Public Subnet] G2 --> H H --> I[設定 Route 53<br/>綁定域名] I --> J[服務上線!]
Step by Step:部署一個 Web App
Step 1:建立 VPC
CIDR: 10.0.0.0/16(提供 65,536 個 IP)
選一個夠大的 CIDR block,之後要再加子網的時候才不會不夠用。
Step 2:劃分子網(至少 4 個,跨 2 個 AZ)
| 子網 | 類型 | AZ | CIDR | 用途 |
|---|---|---|---|---|
| public-subnet-1 | Public | ap-northeast-1a | 10.0.1.0/24 | ALB |
| public-subnet-2 | Public | ap-northeast-1c | 10.0.2.0/24 | ALB |
| private-subnet-1 | Private | ap-northeast-1a | 10.0.10.0/24 | App Server |
| private-subnet-2 | Private | ap-northeast-1c | 10.0.20.0/24 | App Server |
為什麼要跨 AZ? 高可用性。如果一個機房掛了,另一個 AZ 還能接住流量。ALB 也要求至少 2 個 AZ 的子網。
Step 3:建立 Internet Gateway 並掛到 VPC
Internet Gateway (IGW) 是 VPC 連接外部網路的入口。沒有它,你的 Public Subnet 也出不了門。
Step 4:設定 Route Table
- Public Subnet 的 Route Table:
0.0.0.0/0 → IGW(外部流量走 Internet Gateway) - Private Subnet 的 Route Table:
0.0.0.0/0 → NAT Gateway(讓內部服務可以抓套件、更新,但外面連不進來)
Step 5:建立 Security Group
你需要至少兩個 Security Group:
ALB 用的 SG:
| 方向 | Port | 來源 | 用途 |
|---|---|---|---|
| Inbound | 80 | 0.0.0.0/0 | HTTP |
| Inbound | 443 | 0.0.0.0/0 | HTTPS |
App Server 用的 SG:
| 方向 | Port | 來源 | 用途 |
|---|---|---|---|
| Inbound | 8080 | ALB 的 SG | 只接受 ALB 來的流量 |
原則:只開必要的 port,來源盡量限縮。 不要偷懶開 0.0.0.0/0 給 App Server。
Step 6:部署服務
你可以選擇:
- EC2:自己管 instance,適合需要完整控制的場景
- ECS + Fargate:容器化部署,不用管底層機器,適合大部分 Web App
不管選哪個,服務都放在 Private Subnet。外部流量通過 ALB 轉進來。
Step 7:建立 Application Load Balancer (ALB)
- 放在 Public Subnet(因為要接外部流量)
- Target Group 指向你的 EC2 或 ECS service
- 設定 Health Check path(例如
/health) - 如果有域名,用 ACM 申請憑證並掛上 HTTPS
Step 8:設定 Route 53(Optional,但建議)
- 建立 Hosted Zone
- 新增 A Record(Alias)指向 ALB
- 這樣你的使用者就能用
app.example.com來訪問服務了
實務 Checklist
部署之前,用這個清單確認你沒有遺漏:
- VPC 建立完成,CIDR 設好
- Public/Private Subnet 各至少兩個(跨 AZ)
- Internet Gateway 建立並掛到 VPC
- NAT Gateway 建立(讓 Private Subnet 可以對外抓套件)
- Route Table 設定完成(Public → IGW,Private → NAT GW)
- Security Group 只開必要 port,來源限縮
- Application Load Balancer 建立完成,Health Check 正常
- 服務部署到 Private Subnet(EC2 或 ECS)
- ALB Target Group 健康檢查通過
- (選配)Route 53 域名設定完成
- (選配)ACM 憑證申請並掛到 ALB
系列文章
本篇是 AWS 系列的第四篇,建議按順序閱讀:
- AWS 基本概念 — 帳號、EC2、VPC 的基礎認識
- 使用 AWS 建設 VPN — 實作 VPC + Subnet + IGW + Security Group
- AWS IAM 設定 — 權限管理與安全最佳實踐
- 本篇:AWS 網路基礎與服務部署 — 從 VPC 設定走到服務上線