為了實現跨 AWS 區域 (Cross-Region) 的故障轉移 (Failover),並同時兼顧高可用性 (High Availability) 與低延遲 (Low Latency),以下是幾個最關鍵的 AWS 服務與功能:
1. 網路與流量路由層 (Traffic Management)
這是實現跨區域故障轉移的第一道防線,負責將使用者流量導向健康的區域。
- Amazon Route 53 (DNS 服務)功能: 透過 DNS 策略進行流量管理。如何實現低延遲: 使用 延遲路由政策 (Latency-based Routing),Route 53 會根據使用者的位置,將請求導向延遲最低的 AWS 區域。如何實現故障轉移: 使用 故障轉移路由政策 (Failover Routing) 搭配 Health Checks。當主要區域 (Primary) 的健康檢查失敗時,Route 53 會自動將 DNS 解析更新為備援區域 (Secondary) 的 IP。注意:DNS 故障轉移受限於 TTL (Time To Live),可能會有幾分鐘的快取延遲。
- AWS Global Accelerator功能: 提供兩個靜態的 Anycast IP,利用 AWS 的全球骨幹網路 (Global Network) 傳輸流量,而非公共網際網路。如何實現低延遲: 流量進入離使用者最近的邊緣節點 (Edge Location),然後走 AWS 專用光纖直達終點,減少網路抖動與延遲。如何實現故障轉移: 它不需要依賴 DNS 快取更新。如果某個區域的端點健康檢查失敗,Global Accelerator 會在幾秒鐘內將流量重新路由到另一個健康的區域。這是比 Route 53 更快、更穩定的故障轉移方案。
- Amazon CloudFront (CDN)功能: 內容傳遞網路。如何實現低延遲: 透過全球邊緣節點快取靜態內容,讓使用者就近存取。如何實現故障轉移: 支援 Origin Group (源站群組) 功能。你可以設定主要源站 (例如東京的 S3) 和次要源站 (例如大阪的 S3)。如果主要源站回傳錯誤 (如 5xx),CloudFront 會自動請求次要源站。
2. 資料庫層 (Database Layer)
僅有前端路由切換是不夠的,後端資料必須在不同區域間保持同步,才能在切換後繼續運作。- Amazon Aurora Global Database功能: 專為關聯式資料庫設計的跨區域解決方案。優勢: 一個主區域負責寫入,最多可複製到 5 個次要區域。複製延遲通常 < 1 秒。故障轉移: 當主區域發生災難時,可以快速將次要區域「晉升 (Promote)」為新的主資料庫,通常在 1 分鐘內完成切換。
- Amazon DynamoDB Global Tables功能: NoSQL 資料庫的全託管多區域複寫。優勢: 提供 Active-Active (雙活/多活) 架構。你可以在任何一個區域進行寫入,資料會自動傳播到其他區域。故障轉移: 由於所有區域都是「活」的,這提供了極高的可用性。如果一個區域掛掉,應用程式只需將流量導向另一個區域即可讀寫,無需手動晉升資料庫。
- Amazon ElastiCache Global Datastore (Redis)功能: 跨區域的記憶體快取複寫。優勢: 允許將 Redis 叢集寫入到一個區域,並由其他區域進行讀取,實現低延遲的本地讀取與災難復原準備。
3. 儲存層 (Storage Layer)
- Amazon S3 Multi-Region Access Points (MRAP)功能: 為跨多個區域的 S3 Bucket 提供一個單一的全球端點 (Global Endpoint)。如何實現低延遲與故障轉移: 類似於 Global Accelerator 的概念,MRAP 透過 AWS 全球網路,自動將請求路由到延遲最低的 Bucket。如果某個區域的 Bucket 變得無法存取或延遲過高,它會自動將流量轉向其他區域的複製 Bucket。這必須搭配 S3 Cross-Region Replication (CRR) 使用。
總結推薦組合














