Amazon DOP-C02: 網路與內容交付 — 學習指南
屬於 AWS DevOps Engineer Professional DOP-C02 — 學習指南. 使用經過驗證的解答練習: Amazon 考試中心, 或參加限時模擬考試: ExamRoll.io.
總覽
AWS 上的網路與內容交付涵蓋了基礎的 VPC 建構元件、多帳戶與混合式拓撲的互連選擇,以及在全球範圍內作為應用程式前端、提供保護並加速的邊緣服務。要精通此領域,需要了解封包如何在 VPC 中移動(子網路、路由表、閘道與篩選)、如何互連 VPC 與地端網路(對等連接、Transit Gateway、PrivateLink、Direct Connect、VPN),以及如何在邊緣分發與保護流量(CloudFront、AWS WAF、AWS Global Accelerator)。像 Amazon API Gateway 這類的應用程式進入點,則透過自訂網域、憑證與端點類型與這些基礎元件整合。
VPC 架構與安全控制
VPC 是一個區域性、邏輯上隔離的網路,在每個可用區域中都有一或多個子網路。沿著容錯網域與功能來設計子網路:公有子網路用於面向網際網路的負載平衡器與 NAT 閘道;私有應用程式子網路用於 EC2/ECS/EKS 節點;私有資料子網路則用於資料庫。為每種子網路類型指派不同的路由表,以保持意圖明確並支援區域性出口設計。
網際網路連線由附加在 VPC 層級的網際網路閘道 (IGW) 提供。當子網路的路由表有指向 IGW 的預設路由,且資源擁有公有 IP 或彈性 IP 時,該子網路就成為「公有」子網路。若要讓私有子網路僅能對外存取網際網路,請使用 NAT 閘道。每個可用區域放置一個 NAT 閘道,將每個私有子網路路由到同一個 AZ 的 NAT 閘道,並停用跨 AZ 的 NAT,以避免單點故障並減少跨 AZ 資料處理費用。對於 IPv6,僅限出口的網際網路閘道提供無需 NAT 的僅限對外連線。
路由表決定了目的端前綴的下一跳。常見的目標包括 IGW、NAT 閘道、VPC 對等連接附件、Transit Gateway 附件以及 local。保持路由表簡單:一條用於出口的預設路由,以及多條用於私有互連的明確路由。優先使用前綴清單來參考跨帳戶的共享目的地,以減少人為錯誤。
安全群組與網路 ACL 皆提供網路篩選功能,但其機制不同:
- 安全群組是狀態式的,附加到 ENI 上,且僅評估允許規則。回程流量會自動被允許。它們支援參考其他安全群組,以安全地表達應用程式拓撲。
- 網路 ACL 是無狀態的,應用於子網路邊界,依規則順序評估,並對入站與出站流量有明確的允許/拒絕規則。回程流量必須被明確允許。請謹慎使用 NACL,主要用於粗略的子網路層級拒絕或合規性模式;並維持您的作業系統與負載平衡器所需的暫時性連接埠範圍。
狀態式與無狀態篩選的差異對於故障排除至關重要。如果兩者都使用,則兩者都必須允許該流量。啟用 VPC Flow Logs 將日誌傳送到 CloudWatch Logs 或 S3,以分析已接受/已拒絕的流量並驗證安全態勢。
VPC 間與混合式連線
VPC 對等連接以私有方式連接兩個 VPC,沒有單點故障也沒有頻寬瓶頸,但它是非遞移性的,且需要無重疊的 CIDR。每個 VPC 都必須透過對等連接附件為對等方新增靜態路由。不支援跨對等 VPC 的安全群組參考;請使用 CIDR 進行篩選。提供跨區域對等連接,且預設為加密。
AWS Transit Gateway (TGW) 簡化了網路的規模擴展與區隔。它作為 VPC 與混合式附件的區域性中樞,支援遞移式路由,且每個附件可擴展至數十 Gbps。使用 TGW 路由表來實作區隔(例如,開發 vs. 生產 vs. 共享服務)並控制路由的傳播與關聯。附件包括 VPC、Site-to-Site VPN,以及透過 Transit VIF 和 Direct Connect Gateway 連接的 Direct Connect。為了實現集中式出口,請附加一個出口 VPC 並傳播/選擇性地共享路由。透過區域間對等連接來連接 TGW,以規劃多區域架構。
AWS PrivateLink 提供由消費者發起的私有 L4 存取,讓服務能跨越 VPC/帳戶/區域邊界,而無需暴露提供者的子網路或要求路由設定。服務提供者在端點前放置一個 NLB;消費者則在自己的 VPC 中建立介面 VPC 端點,並為其指派私有 IP 與 DNS 名稱。PrivateLink 是非遞移性的,且僅支援 TCP。使用 PrivateLink 來發布內部服務或私下使用 AWS 服務。當您需要服務層級的暴露、基於 DNS 的使用方式或更嚴格的生產者隔離時,應優先選擇 PrivateLink 而非對等連接/TGW。
混合式連線通常會混合使用 Direct Connect (DX) 與 Site-to-Site VPN。Direct Connect 提供專用、私有、一致的頻寬,具有 1/10 Gbps 的連接埠(以及託管容量)。使用 BGP 進行動態路由與容錯移轉。虛擬介面 (VIF) 類型:
- Private VIF:透過虛擬私有閘道 (VGW) 或透過帶有 Transit VIF 的 Transit Gateway,提供對 VPC 的私有 IP 可達性。
- Public VIF:提供對 AWS 公共服務的公有 IP 可達性;您公告您的公有前綴;AWS 則公告其全球公有前綴。
- Transit VIF:將一個 Direct Connect 閘道連接到一或多個 TGW,以實現可擴展的多 VPC/多區域連線。 設計備援時,應使用位於不同 DX 位置與設備上的兩條實體 DX 連線,需要時可使用獨立的 LAG,並在地端配置雙路由器。新增一個 VPN 作為備份(透過網際網路連接到 VGW 或 TGW 的 VPN),並使用 BGP,以便在 DX BGP 會話中斷時路由能自動容錯移轉。對於 VPN,每個連線使用兩個隧道以實現高可用性 (HA);優先使用 BGP 而非靜態路由;驗證隧道內部的 CIDR 與安全性。
邊緣網路、安全與加速
Amazon CloudFront 是一個全球性的 CDN,透過邊緣快取和最佳化的網路路徑來加速靜態與動態內容。一個 distribution 定義了:
- Origins (來源):S3、自訂來源 (ALB/NLB/EC2/API Gateway),或用於失效接管 (failover) 的 origin groups。啟用 Origin Shield 可增加一個額外的中介層快取,以減少來源負載。
- Behaviors (行為):基於路徑和方法的來源路由、快取與來源請求政策 (標頭/cookie/查詢轉送)、檢視器協定政策 (HTTP→HTTPS)、壓縮、簽署的 URL/cookie,以及函式掛鉤 (CloudFront Functions 用於輕量級的檢視器請求;Lambda@Edge 用於請求/回應的操作)。
- Caching (快取):透過快取政策調整 TTLs,僅根據必要的維度來變更快取鍵 (vary keys),並使用來源請求政策來最小化快取碎片化。對於 API,應避免轉送不必要的標頭/cookie/查詢。在需要時使用欄位級加密 (field-level encryption)。
- Invalidation (失效):對已變更的路徑發出失效請求,或使用版本化的物件金鑰來實現零停機的快取更新。對於非版本化的資產,在部署後自動化執行失效操作。
AWS WAF 在 L7 保護應用程式。一個 web ACL 包含依序評估的規則 (rules) 和規則群組 (rule groups),並帶有一個預設動作。使用 AWS Managed Rules 來取得基準保護 (例如 CommonRuleSet、WordPress、SQLi/XSS),並在需要時使用精選的合作夥伴規則群組。使用匹配陳述式 (IP 集、標頭、URI、內文 JSON、標籤匹配) 新增自訂規則,並與邏輯運算子結合。基於速率的規則 (Rate-based rules) 會對在一個時間窗內超過設定請求率的用戶端進行節流,並可選擇性地使用範圍縮小陳述式 (scope-down statements) 來鎖定特定路徑或標頭。將 web ACL 與 CloudFront distributions、Application Load Balancers、API Gateway (REST/HTTP) 和 AppSync 關聯。監控容量 (WCU),啟用取樣日誌到 CloudWatch Logs 或 Kinesis Data Firehose,並使用 CAPTCHA/Challenge 動作來緩解機器人流量,而不會阻擋合法流量。
AWS Global Accelerator 提供靜態的 anycast IP,作為區域端點的前端,並透過 AWS 全球網路加速 TCP/UDP 流量。它在 L4/7 運作,具備基於健康狀態的路由和快速的失效接管。設定項目包括:
- 每個 Region 的端點群組 (Endpoint groups),包含健康檢查和權重。
- 流量調節器 (Traffic dials) 用於控制傳送到一個 Region 的流量百分比 (例如,1% 的金絲雀部署或在維護期間設為 0%),這與端點權重無關。 支援的端點包括 ALB、NLB、EC2 執行個體和 Elastic IPs。當需要處理非 HTTP、對延遲敏感的狀態協定,或需要靜態 IP 和確定性的失效接管時,請使用 Global Accelerator。對於 HTTP/S 快取和在邊緣執行函式,CloudFront 仍然是首選;這兩者是互補的。
API 前端入口:網域、憑證與端點策略
Amazon API Gateway 為 REST 和 HTTP API 提供三種端點類型:
- 邊緣優化 (Edge-optimized) (僅限 REST API):API Gateway 會建立並管理一個 CloudFront distribution;最適合全球用戶端,並在邊緣節點進行 TLS 終止。自訂網域憑證必須透過 ACM 位於 us-east-1 (N. Virginia)。
- 區域性 (Regional):適用於位於相同區域的用戶端,或當您想用自己的 CloudFront distribution 或 Global Accelerator 作為 API Gateway 的前端時。自訂網域憑證必須與 API 位於相同區域。
- 私有 (Private):僅能透過介面 VPC 端點在您的 VPC 內部存取;沒有公開的網際網路路徑。
自訂網域可統一跨階段和 API 的路由與 TLS。使用基礎路徑對應 (base path mappings) 將路徑對應到階段。將憑證儲存在 ACM 中;根據用戶端的支援度選擇 RSA/ECDSA。對於邊緣優化端點,請在 us-east-1 申請/匯入憑證。對於區域性端點,請在該區域申請/匯入。強制執行符合您合規態勢的 TLS 政策。透過將 Web ACL 直接關聯到區域性 API,或保護作為 API 前端的 CloudFront distribution,來與 WAF 整合。若要實現具備進階快取和標頭正規化 (header normalization) 的最低延遲全球 API,請在區域性 API 前方放置一個 CloudFront distribution,視需要使用來源存取控制 (origin access control) 和簽署請求 (signed requests),並調整快取和來源請求政策以避免快取膨脹。結合 Lambda 授權方或 Amazon Cognito 進行驗證,並利用節流 (throttling) 和用量計畫 (usage plans) 來保護後端,以補充 WAF 基於速率的規則。
實務問題情境
Shopify 正在推出一個新的全球結帳微服務,以服務全球的商家。需求如下:跨 20 多個帳戶的微服務之間需有私密的東⻄向流量、內部 API 零公開曝險、為結帳的終端使用者提供可預測的低延遲、具備自適應速率限制的強大 L7 保護,以及與地端風險引擎的彈性混合式連線。
逐步方法:
- 使用軸輻式 (hub-and-spoke) Transit Gateway 設計來區隔網路
- 建立一個集中式的網路帳戶,並在其中部署一個區域性的 AWS Transit Gateway。透過 RAM 分享的 TGW 附件,將每個帳戶的所有工作負載 VPC (spokes) 連接起來。使用多個 TGW 路由表來強制執行區隔 (例如:生產 vs. 共享服務 vs. 開發),並僅傳播必要的路由。
- 為何選擇 TGW:與全網狀 (full-mesh) 的對等連線相比,TGW 可擴展可轉移路由 (transitive routing) 並簡化路由管理;支援混合式附件。
- 使用 AWS PrivateLink 發佈內部微服務
- 在每個生產者 VPC 中,將一個 NLB 放置在內部微服務目標群組的前方,並建立一個 VPC 端點服務。在消費者 VPC 中,為這些服務建立介面端點,並啟用端點專用的私有 DNS。
- 為何選擇 PrivateLink:提供服務層級、僅限 TCP、非轉移性的連線,且無路由曝險;生產者保持隔離,且不需要對整個 CIDR 區塊開放輸入安全群組 (SG) 權限。
- 透過 Direct Connect 和 VPN 建立備援的混合式連線
- 在不同的 DX 位置佈建兩條 10 Gbps 的 Direct Connect 連線,並終止於不同的地端路由器上。建立一個 Direct Connect Gateway,並透過 Transit VIF 連接到 TGW。在兩端設定 BGP,使用不同的 ASN 和 MED/local-pref 政策。將一個啟用 BGP 的 Site-to-Site VPN 附件 (含兩個通道) 新增到 TGW 作為備援。
- 為何這樣組合:DX 提供可預測的頻寬和較低的抖動 (jitter);BGP 加上 VPN 備援可提供自動容錯移轉和高可用性。
- 使用 AWS Global Accelerator 作為公開結帳服務的前端
- 建立一個加速器 (accelerator),並設定兩個接聽器 (listeners) (80/443 → 443)。在 us-east-1 和 eu-west-1 中定義端點群組,每個群組都指向結帳服務的 ALB。將流量調節 (traffic dials) 設定為 50/50 的穩定狀態,並在 ALB 的運作狀態端點上啟用運作狀態檢查。如果需要會話固定 (session pinning),請啟用用戶端親和性 (client affinity)。
- 為何選擇 Global Accelerator:提供 Anycast 靜態 IP、快速的區域性容錯移轉,以及針對低延遲、具狀態 (stateful) 的結帳流程進行 TCP 優化。
- 透過 CloudFront 和 AWS WAF 在邊緣提供保護
- 將 CloudFront 放置在區域性 API Gateway (用於冪等的 GET 請求和靜態資產) 的前方,並直接放置在服務動態內容的 ALB 前方,以利用標頭正規化和 TLS 卸載。設定快取政策,將變異因子 (variance) 限制在必要的標頭/查詢,啟用 Origin Shield 以減少來源負載,並為非版本化的資產自動化失效宣告 (invalidations)。
- 將一個 AWS WAF Web ACL 附加到 CloudFront,其中包含 AWS 受管規則、用於業務邏輯過濾的自訂規則群組,以及一個在結帳路徑上使用縮小範圍陳述式 (scope-down statement) 的基於速率的規則。針對可疑的流量高峰啟用 CAPTCHA,並將日誌記錄到 Kinesis Data Firehose 進行分析。
- 為何選擇 CloudFront + WAF:全球 TLS 終止、在安全的情況下進行快取、基於邊緣的 L7 控制,以及透過 AWS Shield 吸收 DDoS 攻擊。
- 使用自訂網域和強固的 TLS 來公開 API
- 對於大量寫入的 API 方法,使用受 CloudFront 保護的 API Gateway 區域性端點。每個區域在 ACM 中建立自訂網域,套用嚴格的 TLS 政策,並將基礎路徑對應到階段。對於內部管理 API,部署私有 API (Private APIs) 並透過介面 VPC 端點存取;關聯最低權限的安全群組。
- 為何這樣劃分:區域性端點加上 CloudFront 提供了結合邊緣控制的靈活性;私有 API 則讓內部介面遠離網際網路。
- 透過分層控制來鎖定 VPC
- 應用最低權限、具狀態的安全群組,並盡可能參考生產者/消費者的安全群組。保持 NACL 簡單 (全部允許),除非為了合規需要進行針對性的子網路拒絕。啟用 VPC 流量日誌 (VPC Flow Logs) 並搭配 CloudWatch 指標篩選器來偵測異常來源。每個 AZ 放置一個 NAT 閘道器,並將私有子網路路由到本地的 NAT,以避免跨 AZ 的相依性。
- 為何使用分層控制:安全群組 (SG) 透過連線追蹤處理大部分的意圖;NACL 提供粗略的安全護欄;區域性 NAT (zonal NAT) 則能改善彈性與成本。
此設計提供了私密、區隔化的東⻄向連線 (Transit Gateway + PrivateLink)、彈性的南北向混合式路徑 (DX + VPN with BGP)、全球加速且受保護的公開入口 (Global Accelerator + CloudFront + WAF),以及符合 AWS VPC 路由、閘道器和過濾最佳實務的操作控制。
← 儲存、資料庫與資料管理 · 所有領域 · Systems Manager、修補與維運自動化 →
練習這些題目 → · 在 ExamRoll.io 上限時練習 →
Pass the whole exam — not just this question
You found this answer. Get every verified question and explanation in one place, and save hours of prep. Free to start.
通過考試 →