cover

前言:這篇在講什麼?

網路七層與 AWS

如果你已經讀過 AWS 基本概念使用 AWS 建設 VPNAWS 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/UDPNLB(Network Load Balancer)、Security Group
L5 會話層連線管理AWS VPN、Direct Connect
L6 表示層加密、格式ACM(Certificate Manager)
L7 應用層HTTP/DNSALB、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)

子網類型AZCIDR用途
public-subnet-1Publicap-northeast-1a10.0.1.0/24ALB
public-subnet-2Publicap-northeast-1c10.0.2.0/24ALB
private-subnet-1Privateap-northeast-1a10.0.10.0/24App Server
private-subnet-2Privateap-northeast-1c10.0.20.0/24App Server

為什麼要跨 AZ? 高可用性。如果一個機房掛了,另一個 AZ 還能接住流量。ALB 也要求至少 2 個 AZ 的子網。

Step 3:建立 Internet Gateway 並掛到 VPC

Internet Gateway (IGW) 是 VPC 連接外部網路的入口。沒有它,你的 Public Subnet 也出不了門。

Step 4:設定 Route Table

  • Public Subnet 的 Route Table0.0.0.0/0 → IGW(外部流量走 Internet Gateway)
  • Private Subnet 的 Route Table0.0.0.0/0 → NAT Gateway(讓內部服務可以抓套件、更新,但外面連不進來)

Step 5:建立 Security Group

你需要至少兩個 Security Group:

ALB 用的 SG:

方向Port來源用途
Inbound800.0.0.0/0HTTP
Inbound4430.0.0.0/0HTTPS

App Server 用的 SG:

方向Port來源用途
Inbound8080ALB 的 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 系列的第四篇,建議按順序閱讀:

  1. AWS 基本概念 — 帳號、EC2、VPC 的基礎認識
  2. 使用 AWS 建設 VPN — 實作 VPC + Subnet + IGW + Security Group
  3. AWS IAM 設定 — 權限管理與安全最佳實踐
  4. 本篇:AWS 網路基礎與服務部署 — 從 VPC 設定走到服務上線