本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
REL11-BP04 在復原期間依賴資料平面而非控制平面
控制平面提供APIs用於建立、讀取和描述、更新、刪除和列出 (CRUDL) 資源的管理,而資料平面則處理 day-to-day服務流量。對可能影響彈性的事件實作復原或緩解回應時,請盡量使用最少數量的控制平面操作來復原、重新擴展、還原、修復或容錯移轉服務。資料平面動作應取代這些降級事件期間的任何活動。
例如,以下全都是控制平面動作:啟動新的運算執行個體、建立區塊儲存,以及說明佇列服務。啟動運算執行個體時,控制平面必須執行多項工作,例如尋找具有容量的實體主機、配置網路介面、準備本機區塊儲存磁碟區、產生憑證,以及新增安全規則。控制平面往往是複雜的協同運作。
預期成果:當資源進入受損狀態時,系統能夠將流量從受損資源轉移到健康狀況良好的資源,來自動或手動復原。
常見的反模式:
-
取決於變更DNS記錄以重新路由流量。
-
依賴控制平面擴展操作來取代因佈建資源不足而受損的元件。
-
依賴廣泛的多服務多API控制平面動作來修復任何類別的損害。
建立此最佳實務的優勢:提高自動化修復的成功率可減少平均復原時間,並改善工作負載的可用性。
未建立此最佳實務時的風險暴露等級:中。對於某些類型的服務降級,則會影響控制平面。廣泛使用控制平面進行修復的相依性可能會增加復原時間 (RTO) 和平均復原時間 (MTTR)。
實作指引
若要限制資料平面動作,請評估每一項服務還原時所需的動作。
利用 Amazon Application Recovery Controller 來轉移DNS流量。這些功能會持續監控應用程式從故障中復原的能力,並可讓您控制跨多個 AWS 區域、可用區域和內部部署的應用程式復原。
Route 53 路由政策使用控制平面,因此不要依賴它進行復原。Route 53 資料平面會回答DNS查詢,並執行和評估運作狀態檢查。它們是全域分佈的,專為 100% 可用性服務層級協議 (SLA)
您建立、更新和刪除 Route 53 資源的 Route 53 管理和APIs主控台會在控制平面上執行,這些平面旨在優先考慮管理 時所需的強大一致性和耐用性DNS。為了實現此目標,控制平面位於單一區域中:美國東部 (維吉尼亞北部)。雖然這兩個系統都建置得非常可靠,但 中不包含控制平面SLA。在極少數情況下,資料平面的彈性設計允許它保持可用性,而控制平面則不允許。對於災難復原和容錯移轉機制,使用資料平面功能提供可能最好的可靠性。
將運算基礎設施設計為靜態穩定,以避免在事件期間使用控制平面。例如,如果您使用 Amazon EC2執行個體,請避免手動佈建新執行個體,或指示 Auto Scaling 群組新增執行個體作為回應。為獲得最高層級的彈性,請在用於容錯移轉的叢集中佈建足夠的容量。如果必須限制此容量閾值,請在整體 end-to-end系統上設定限流,以安全地限制到達有限資源集的總流量。
對於 Amazon DynamoDB 、Amazon API Gateway、負載平衡器和無 AWS Lambda 伺服器等服務,使用這些服務會利用資料平面。不過,建立新的函數、負載平衡器、API閘道或 DynamoDB 資料表是控制平面動作,應該在降級之前完成,作為事件的準備和容錯移轉動作的演練。對於 Amazon RDS,資料平面動作允許存取資料。
如需資料平面、控制平面以及如何 AWS 建置服務以滿足高可用性目標的詳細資訊,請參閱使用可用區域 的靜態穩定性
了解哪些作業位於資料平面,哪些位於控制平面。
實作步驟
針對需要在降級事件之後還原的每個工作負載,評估容錯移轉執行手冊、高可用性設計、自動修復設計,或 HA 資源還原計畫。找出可能視為控制平面動作的每個動作。
考慮將控制動作變更為資料平面動作:
-
Auto Scaling (控制平面) 到預先擴展的 Amazon EC2 資源 (資料平面)
-
Amazon EC2執行個體擴展 (控制平面) 到 AWS Lambda 擴展 (資料平面)
-
使用 Kubernetes 評估任何設計,以及控制平面動作的性質。新增 Pod 是 Kubernetes 中的資料平面動作。動作應限於新增 Pod 而不是新增節點。使用過度佈建的節點
是限制控制平面動作的慣用方法
請考慮可讓資料平面動作影響相同修復措施的替代方法。
-
Route 53 記錄變更 (控制平面) 或 Amazon Application Recovery Controller (資料平面)
如果服務具任務關鍵性,請考慮次要區域中的某些服務,以便在未受影響的區域中執行更多控制平面和資料平面動作。
-
主要區域中EKS的 Amazon EC2 Auto Scaling 或 Amazon,相較於次要區域中EKS的 Amazon EC2 Auto Scaling 或 Amazon,並將流量路由至次要區域 (控制平面動作)
-
將僅供讀取複本設為主要,或在主要區域中嘗試相同的動作 (控制平面動作)
資源
相關的最佳實務:
相關文件:
相關影片:
相關範例:
相關工具: