REL02-BP01 針對工作負載公有端點使用高可用性網路連線
建置與您的工作負載公有端點的高度可用網路連線,可協助您減少由於遺失連線的停機時間,並且改善您的工作負載的可用性和 SLA。為達成此目的,請使用高度可用的 DNS、內容交付網路 (CDN)、API 閘道、負載平衡或反向代理。
預期成果:為您的公有端點規劃、建置和操作高度可用網路連線相當重要。如果您的工作負載由於遺失連線而無法連線,即使您的工作負載正在執行且可用,您的客戶還是會看到您的系統是停機。藉由結合工作負載公有端點高度可用和具彈性的網路連線與工作負載本身的彈性架構,為您的客戶提供可行的最佳可用性和服務水準。
AWS Global Accelerator、Amazon CloudFront、Amazon API Gateway、AWS Lambda 函數 URL、AWS AppSync API 和 Elastic Load Balancing (ELB) 都提供高度可用公有端點。Amazon Route 53 針對網域名稱解析提供高度可用 DNS 服務,確認可以解析您的公有端點地址。
您也可以評估用於負載平衡和代理的 AWS Marketplace 軟體設備。
常見的反模式:
-
設計高度可用的工作負載,而未規劃 DNS 和網路連線以取得高可用性。
-
在個別執行個體或容器上使用公有網際網路地址,並透過 DNS 管理其連線。
-
使用 IP 地址,而非網域名稱來定位服務。
-
未測試您的公有端點已遺失連線的情境。
-
未分析網路輸送量需求和分發模式。
-
未測試和規劃您的工作負載公有端點的網際網路網路連線可能遭到中斷的情境。
-
提供內容 (例如網頁、靜態資產或媒體檔案) 到大型地理區域,而不使用內容交付網路。
-
未針對分散式阻斷服務 (DDoS) 攻擊加以規劃。DDoS 攻擊所存在的風險會將合法流量阻擋在外,並減少使用者的可用性。
建立此最佳實務的優勢:設計高度可用且具彈性的網路連線,可確保您的工作負載可存取並且可供您的使用者使用。
未建立此最佳實務時的風險暴露等級:高
實作指引
建置與您的公有端點的高度可用網路連線的核心是流量的路由。若要確認您的流量可以連線到端點,DNS 必須能夠將網域名稱解析為它們的對應 IP 地址。使用高度可用和可擴展網域名稱系統 (DNS)
若要確認您的工作負載本身是高度可用,請使用 Elastic Load Balancing (ELB)。Amazon Route 53 可以用來將流量目標設定為 ELB,這會將流量分發到目標運算執行個體。您也可以使用 Amazon API Gateway 以及 AWS Lambda 做為無伺服器解決方案。客戶也可以在多個 AWS 區域 中執行工作負載。使用多站點主動/主動模式
Amazon CloudFront 藉由使用全世界邊緣節點的網路為請求提供服務,以低延遲和高資料傳輸率提供簡易 API 來分發內容。內容交付網路 (CDN) 藉由在靠近使用者的位置提供放置或快取的內容來服務客戶。這也會改善您的應用程式的可用性,因為內容的負載從您的伺服器轉移到 CloudFront 的邊緣節點
針對具有分散各地使用者的工作負載,AWS Global Accelerator 可協助您改善應用程式的可用性和效能。AWS Global Accelerator 提供任播靜態 IP 地址,可做為一或多個 AWS 區域 中託管之應用程式的固定進入點。這可讓流量盡可能輸入到使用者附近的 AWS 全球網路,改善您的工作負載的連線能力和可用性。AWS Global Accelerator 也會使用 TCP、HTTP 和 HTTPS 運作狀態檢查來監控您的應用程式端點的運作狀態。您的端點的運作狀態或組態的任何變更都會觸發將使用者流量重新導向到健康的端點,為您的使用者交付最佳效能和可用性。此外,AWS Global Accelerator 有故障隔離設計,使用由獨立網路區域提供服務的兩個靜態 IPv4 地址,增加您的應用程式的可用性。
為了協助客戶防範 DDoS 攻擊,AWS 提供 AWS Shield Standard。Shield Standard 會自動啟用並且防禦常見基礎設施 (第 3 層和第 4 層) 攻擊,例如 SYN/UDP 泛洪和反射攻擊,在 AWS 上支援您的應用程式的高可用性。針對更複雜和更大型攻擊 (例如 UDP 泛洪)、狀態耗盡攻擊 (例如 TCP SYN 泛洪) 的額外保護,並且協助保護您的應用程式在 Amazon Elastic Compute Cloud (Amazon EC2)、Elastic Load Balancing (ELB)、Amazon CloudFront、AWS Global Accelerator 和 Route 53 上執行,您可以考慮使用 AWS Shield Advanced。針對應用程式層攻擊的保護,例如 HTTP POST 或 GET 泛洪,請使用 AWS WAF。AWS WAF 可以使用 IP 地址、HTTP 標題、HTTP 本文、URI 字串、SQL 隱碼攻擊和跨網站指令碼條件來判斷應該封鎖或允許請求。
實作步驟
-
設定高度可用 DNS:Amazon Route 53 是可度可用且可擴展網域名稱系統 (DNS)
Web 服務。Route 53 會將使用者請求連線到 AWS 上或內部部署執行的網際網路應用程式。如需詳細資訊,請參閱將 Amazon Route 53 設定為您的 DNS 服務。 -
設定運作狀態檢查:當使用 Route 53 時,請確認只有運作狀態良好的目標是可解析的。從建立 Route 53 運作狀態檢查和設定 DNS 備援開始。以下是設定運作狀態檢查時要考慮的重要層面:
-
-
當使用 Elastic Load Balancing 做為您流量的目標時,使用指向您負載平衡器區域端點的Amazon Route 53 建立別名記錄。建立別名記錄期間,將 [評估目標運作狀態] 選項設定為 [是]。
-
針對使用 API Gateway 時的無伺服器工作負載或私有 API,使用 Route 53 將流量指向 API Gateway。
-
-
決定內容交付網路。
-
針對使用更靠近使用者的邊緣節點交付內容,從了解 CloudFront 如何交付內容開始。
-
從簡易 CloudFront 分發開始。CloudFront 接著會知道您想要從哪裡交付內容,以及如何追蹤和管理內容交付的詳細資料。以下是設定 CloudFront 分發時要了解和考慮的重要層面:
-
-
設定應用程式層保護:AWS WAF 可協助您保護免受常見 Web 漏洞和機器人的攻擊,這些攻擊會影響可用性、危及安全性或導致消耗過多資源。若要更深入了解,請參閱 AWS WAF 如何運作,當您準備好實作應用程式層 HTTP POST AND GET 泛洪的保護,請參閱開始使用 AWS WAF。您也可以搭配使用 AWS WAF 與 CloudFront,請參閱 AWS WAF 如何使用 Amazon CloudFront 功能上的文件。
-
設定額外 DDoS 保護:根據預設,所有 AWS 客戶都能透過 AWS Shield Standard 獲得以您的網站或應用程式為目標,對於常見、最常發生網路和傳輸層 DDoS 攻擊的保護,不需額外費用。針對在 Amazon EC2、Elastic Load Balancing、Amazon CloudFront、AWS Global Accelerator 和 Amazon Route 53 上執行,面向網際網路應用程式的額外保護,您可以考慮 AWS Shield Advanced 和檢閱 DDoS 彈性架構的範例。若要保護您的工作負載和公有端點免於 DDoS 攻擊,請參閱開始使用 AWS Shield Advanced。
資源
相關的最佳實務:
相關文件:
相關影片:
相關範例: