此內容已過時。這個版本的 Well-Architected 框架現在可以在以下位置找到: https://docs.aws.amazon.com/zh_tw/wellarchitected/2022-03-31/framework/reliability.html

REL 10: 如何使用故障隔離來保護您的工作負載?

故障隔離界限會在工作負載內將失敗影響限制至有限數量的元件。界限外的元件不受失敗影響。使用多個故障隔離界限時,您可以限制對工作負載的影響。

資源

AWS re:Invent 2018: Architecture Patterns for Multi-Region Active-Active Applications (ARC209-R2)
Shuffle-sharding: AWS re:Invent 2019: Introducing The Amazon Builders’ Library (DOP328)
AWS re:Invent 2018: How AWS Minimizes the Blast Radius of Failures (ARC338)
AWS re:Invent 2019: Innovation and operation of the AWS global network infrastructure (NET339)
What is AWS Outposts?
Global Tables: Multi-Region Replication with DynamoDB
AWS Local Zones FAQ
AWS Global Infrastructure
The Amazon Builders' Library: Workload isolation using shuffle-sharding

最佳實務:

改進方案

部署工作負載至多個位置

  • 使用多個可用區域和 AWS 區域: 跨多個可用區域或視需要跨 AWS 區域,分配工作負載資料和資源。這些位置可以根據需要多樣化。
  • 如果您的工作負載必須部署至多個區域,請選擇多區域策略: 大多數的可靠性需求都可透過多個可用區域策略,在單一 AWS 區域內滿足。視需要使用多區域策略,以符合您的業務需求。
    AWS re:Invent 2018: Architecture Patterns for Multi-Region Active-Active Applications (ARC209-R2)
  • 評估 AWS Outposts 是否適用於您的工作負載: 如果您的工作負載需要內部部署資料中心達到低延遲要求,或有本機資料處理要求。然後使用 AWS Outposts 在內部設施執行 AWS 基礎設施和服務
    What is AWS Outposts?
  • 判斷 AWS 本機區域是否協助您為使用者提供服務: 如果您有低延遲要求,請查看 AWS 本機區域是否靠近您的使用者。如果是如此,則使用它來部署更靠近這些使用者的工作負載
    AWS Local Zones FAQ
  • 針對限制在單一位置的元件將復原自動化

  • 實作自我修復: 盡可能使用 Automatic Scaling 來部署執行個體或容器。如果無法使用 Automatic Scaling,則對 EC2 執行個體使用自動復原,或者根據 Amazon EC2 或 ECS 容器生命週期事件實作自我修復自動化。
  • 對於需要單個執行個體 IP 地址、私有 IP 地址、彈性 IP 地址和執行個體中繼資料的工作負載,使用 EC2 執行個體的自動復原。
    Recover your instance.
  • 在無法使用 Auto Scaling 或 EC2 復原的情況下,使用 EC2 執行個體生命週期事件或 ECS 事件自動執行自我修復。
    EC2 Auto Scaling lifecycle hooks
    Amazon ECS events
  • 使用隔板架構

  • 使用隔板架構: 如同船舶上的隔板一樣,此模式可確保失敗限制在一小部分的請求/使用者中,如此一來才能限制受損的請求數量,讓大部分的請求繼續運行,而不會發生錯誤。資料的隔板通常稱為分割區或分區,而服務的隔板稱為儲存格
    Shuffle-sharding: AWS re:Invent 2019: Introducing The Amazon Builders’ Library (DOP328)
    AWS re:Invent 2018: How AWS Minimizes the Blast Radius of Failures (ARC338)
  • 評估以儲存格為基礎的架構是否適用於您的工作負載: 在以儲存格為基礎的架構中,每個儲存格都是完整的獨立服務執行個體,且具有固定的大小上限。隨著負載增加,工作負載會增加更多儲存格。分割區索引鍵用於傳入流量,以判斷使用哪個儲存格處理請求。任何失敗都會限制在它發生的單一儲存格之中,因此受損的請求數量會受到限制,而其他儲存格會繼續運行,且不會發生錯誤。務必要識別適當的分割區索引鍵,以最大程度地減少跨儲存格互動,並避免在每個請求中都加入複雜的對應服務。需要複雜對應的服務最終僅僅是將問題移轉到了對應服務,而需要跨儲存格互動的服務則會降低儲存格的獨立性 (因此提高了假定的可用性)。