本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
多區域基本 4:營運準備度
操作多區域工作負載是一項複雜的任務,伴隨多區域架構特有的操作挑戰。這些包括 AWS 帳戶 管理、重組部署程序、建立多區域可觀測性策略、建立和測試復原程序,然後管理成本。營運準備度審查 (ORR) 可協助團隊準備用於生產的工作負載,無論是在單一區域還是跨多個區域執行。
4.a: AWS 帳戶 管理
若要跨 部署工作負載 AWS 區域,請確保跨區域帳戶內所有AWS 服務 配額的同位。首先,識別屬於架構的所有 AWS 服務 ,查看待命區域中的計劃用量,然後將計劃用量與目前的用量進行比較。在某些情況下,如果之前未使用待命區域,您可以參考預設的服務配額來了解起點。然後,在將使用的所有服務中,使用 Service Quotas 主控台
在每個區域中設定 AWS Identity and Access Management (IAM)
4.b:部署實務
多區域功能可能會使將工作負載部署到多個區域變得複雜。您需要確保一次部署到一個區域。例如,如果您使用主動-被動的方法,您應該先部署到主要區域,然後再部署到待命區域。 AWS CloudFormation
不過,當應用程式或資料的狀態未外部化至持久性存放區時,狀態功能的部署可能會變得更加複雜。在這些情況下,請仔細量身打造部署程序以符合您的需求。設計部署管道和程序,以一次部署到一個區域,而不是同時部署到多個區域。這可減少區域之間相互關聯失敗的機率。若要了解 Amazon 用來自動化軟體部署的技巧,請參閱 AWS 建置者程式庫文章自動化安全的實作部署
4.c:可觀測性
當您設計多區域時,請考慮如何監控每個區域中所有元件的運作狀態,以取得區域運作狀態的整體檢視。這可能包括監控複寫延遲的指標,這不是單一區域工作負載的考量。
當您建置多區域架構時,請考慮也從待命區域觀察工作負載的效能。這包括從待命區域執行運作狀態檢查和 Canary (合成測試),以提供主要區域運作狀態的外部檢視。此外,您可以使用 Amazon CloudWatch 網路監視器
來自待命區域的 Canary 應監控客戶體驗指標,以判斷工作負載的整體運作狀態。這是必要的,因為如果主要區域發生問題,主要區域中的可觀測性可能會受損,並會影響您評估工作負載運作狀態的能力。
在這種情況下,觀察該區域以外的 可以提供洞見。這些指標應彙總到每個區域中可用的儀表板,以及每個區域中建立的警示。由於 CloudWatch
4.d:程序和程序
回答問題的最佳時機:「我應該何時容錯移轉?」 在您需要之前很長。在問題發生之前預先定義包含人員、程序和技術的復原計畫,並定期進行測試。決定復原決策架構。如果有精準的復原程序,而且充分了解復原的時間,您可以選擇使用符合 RTO 目標的容錯移轉來啟動復原程序。識別主要區域中的應用程式問題之後,可能會立即發生此時間點,或者當區域中應用程式內的復原選項已用盡時,可能會進一步進入事件。
容錯移轉動作本身應該 100% 自動化,但啟動容錯移轉的決定應由人類做出,通常是組織中少數的預定人員。這些人員應考慮資料遺失和事件的相關資訊。此外,需要明確定義容錯移轉的條件,並在組織內全面了解。若要定義和完成這些程序,您可以使用 AWS Systems Manager Runbook,以允許完整的end-to-end自動化,並確保在測試和容錯移轉期間執行的程序一致性。
這些 Runbook 應該可在主要和待命區域中使用,以啟動容錯移轉或容錯回復程序。當此自動化準備就緒時,請定義並遵循定期測試節奏。這可確保發生實際事件時,回應會遵循組織可信的明確定義、實務程序。考慮資料對帳程序的既定公差也很重要。確認提議的程序符合已建立的 RPO/RTO 要求。
4.e:測試
擁有未經測試的復原方法等於沒有復原方法。基本的測試層級是執行復原程序,以切換應用程式的操作區域。有時這稱為應用程式輪換方法。我們建議您建置將區域切換為正常操作狀態的功能;不過,僅此測試還不夠。
彈性測試對於驗證應用程式的復原方法也很重要。這包括注入特定失敗案例、了解您的應用程式和復原程序如何反應,然後在測試未按計劃進行時實作所需的任何緩解措施。在沒有錯誤的情況下測試復原程序,並不會告訴您應用程式在發生錯誤時的整體行為。您必須制定計劃,以根據預期的失敗案例來測試復原。 AWS Fault Injection Service提供越來越多的案例清單,協助您開始使用。
這對於高可用性應用程式尤其重要,因為需要嚴格測試以確保符合業務連續性目標。主動測試復原功能可降低生產失敗的風險,進而建立應用程式可達到所需限制復原時間的信心。定期測試也會建立營運專業知識,這可讓團隊在中斷發生時快速可靠地從中斷中復原。行使復原方法的人工元素或程序與技術層面同樣重要。
4.f:成本和複雜性
多區域架構的成本影響取決於更高的基礎設施用量、營運開銷和資源時間。如前所述,待命區域中的基礎設施成本與預先佈建時主要區域中的基礎設施成本類似,因此會加倍您的總成本。佈建容量,使其足以進行日常操作,但仍保留足夠的緩衝容量來容忍需求激增。然後,在每個區域中設定相同的限制。
此外,如果您採用主動-主動架構,您可能需要進行應用程式層級的變更,才能在多區域架構中成功執行應用程式。這些變更可能需要耗費大量時間和資源,才能設計和操作。組織至少需要花時間了解每個區域的技術和業務相依性,以及設計容錯移轉和容錯回復程序。
團隊也應該進行正常的容錯移轉和容錯回復練習,以熟悉將在事件期間使用的 Runbook。雖然這些練習對於從多區域投資取得預期成果至關重要,但它們代表機會成本,並從其他活動佔用時間和資源。
4.g:組織多區域容錯移轉策略
AWS 區域 提供故障隔離界限,以防止相關故障,並在 AWS 服務 故障發生時包含對單一區域造成的影響。您可以使用這些錯誤界限來建置多區域應用程式,這些應用程式由每個區域中獨立的錯誤隔離複本組成,以限制共用命運案例。這可讓您建置多區域應用程式,並使用各種方法,從備份和還原到指示燈,再到主動-主動,以實作多區域架構。不過,應用程式通常不會單獨運作,因此請將您將使用的元件及其相依性視為容錯移轉策略的一部分。一般而言,多個應用程式會共同支援使用者案例,這是提供給最終使用者的特定功能,例如在社交媒體應用程式上張貼圖片和字幕,或在電子商務網站上查看。因此,您應該制定組織多區域容錯移轉策略,以提供必要的協調性和一致性,讓您的方法成功。
組織可以從中挑選四種高階策略,以引導多區域方法。這些是從最精細到最廣泛的方法列出:
-
元件層級容錯移轉
-
個別應用程式容錯移轉
-
相依性圖表容錯移轉
-
整個應用程式產品組合容錯移轉
每個策略都有權衡並解決不同的挑戰,包括容錯移轉決策的靈活性、測試容錯移轉組合的能力、模式行為的存在,以及組織在規劃和實作方面的投資。若要深入了解每個策略,請參閱 AWS 部落格文章建立組織多區域容錯移轉策略
關鍵指引
-
檢閱所有 AWS 服務 配額,以確保它們在工作負載將運作的所有區域中是相同的。
-
部署程序應該一次以一個區域為目標,而不是同時涉及多個區域。
-
複寫延遲等其他指標專屬於多區域案例,應加以監控。
-
將工作負載的監控延伸到主要區域之外。監控每個區域的客戶體驗指標,並從執行工作負載的每個區域外部測量此資料。
-
定期測試容錯移轉和容錯回復。實作容錯移轉和容錯回復程序的單一 Runbook,並將其用於測試和即時事件。用於測試和即時事件的 Runbook 不應不同。
-
了解容錯移轉策略的權衡。實作相依性圖表或整個應用程式產品組合策略。