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 區域,分配工作負載資料和資源。這些位置可以根據需要多樣化。
-
針對限制在單一位置的元件將復原自動化: 如果工作負載的元件只能在單一可用區域或內部部署資料中心執行,您必須在定義的復原目標內實作完整重建工作負載的功能。
-
使用隔板架構: 如同船舶上的隔板一樣,此模式可確保失敗限制在一小部分的請求/使用者中,如此一來才能限制受損的請求數量,讓大部分的請求可以繼續運行,而不會發生錯誤。資料的隔板通常稱為分割區或分區,而服務的隔板稱為儲存格。
改進方案
部署工作負載至多個位置
- 區域服務固有地跨可用區域部署。
- 這包括 Amazon S3、Amazon DynamoDB 和 AWS Lambda (未連線到 VPC 時)
- 將容器、執行個體和函數中的工作負載部署到多個可用區域中。使用多區域資料存放區,包括快取: 使用 EC2 Auto Scaling 的功能、ECS 任務放置、AWS Lambda 函數組態 (在 VPC 中執行時) 和 ElastiCache 叢集。
- 部署 Auto Scaling 群組時,使用單獨的可用區域中的子網路。
Example: Distributing instances across Availability Zones
Amazon ECS task placement strategies
Configuring an AWS Lambda function to access resources in an Amazon VPC
Choosing Regions and Availability Zones - 部署 Auto Scaling 群組時,使用單獨的可用區域中的子網路。
Example: Distributing instances across Availability Zones - 使用 ECS 任務置放參數,指定資料庫子網路群組。
Amazon ECS task placement strategies - 設定要在 VPC 中執行的函數時,在多個可用區域中使用子網路。
Configuring an AWS Lambda function to access resources in an Amazon VPC - 將多個可用區域與 ElastiCache 叢集一起使用。
Choosing Regions and Availability Zones
- 部署 Auto Scaling 群組時,使用單獨的可用區域中的子網路。
AWS re:Invent 2018: Architecture Patterns for Multi-Region Active-Active Applications (ARC209-R2)
- 在另一個 AWS 區域的備份可以進一步確保資料在需要時可用。
- 有些工作負載會有法規要求,規定要使用多區域策略
What is AWS Outposts?
AWS Local Zones FAQ
針對限制在單一位置的元件將復原自動化
- 對於不需要單個執行個體 IP 地址、私有 IP 地址、彈性 IP 地址和執行個體中繼資料的執行個體和容器工作負載,使用 Auto Scaling 群組。
What Is EC2 Auto Scaling?
Service automatic scaling- 啟動組態使用者資料可用於實作自動自我修復大多數工作負載。
- 對於需要單個執行個體 IP 地址、私有 IP 地址、彈性 IP 地址和執行個體中繼資料的工作負載,使用 EC2 執行個體的自動復原。
Recover your instance.- 在偵測到執行個體失敗時,自動復原會將提醒傳送到 SNS 主題。
- 在無法使用 Auto Scaling 或 EC2 復原的情況下,使用 EC2 執行個體生命週期事件或 ECS 事件自動執行自我修復。
EC2 Auto Scaling lifecycle hooks
Amazon ECS events- 使用事件來叫用自動化,以根據您所需的過程邏輯來修復您的元件。
Recover your instance.
- 在偵測到執行個體失敗時,自動復原會將提醒傳送到 SNS 主題。
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)
- Colm MacCarthaigh 在他的 AWS 部落格文章中說明 Amazon Route 53 如何使用隨機切換分區的概念,將客戶請求隔離為分區
Shuffle Sharding: Massive and Magical Fault Isolation