此内容已过时。此版本的架构完善的框架现在可在以下位置找到: https://docs.aws.amazon.com/zh_cn/wellarchitected/2022-03-31/framework/reliability.html

REL 11: 如何将您的工作负载设计为可承受组件故障的影响?

在设计具有高可用性和较短平均恢复时间 (MTTR) 要求的工作负载时必须考虑到弹性。

资源

Static stability in AWS: AWS re:Invent 2019: Introducing The Amazon Builders’ Library (DOP328)
AWS OpsWorks: Using Auto Healing to Replace Failed Instances
What Is Amazon EventBridge?
Amazon Route 53: Choosing a Routing Policy
What Is AWS Global Accelerator?
The Amazon Builders' Library: Static stability using Availability Zones
The Amazon Builders' Library: Implementing health checks
Well-Architected lab: Level 300: Implementing Health Checks and Managing Dependencies to Improve Reliability
The Berkeley/Stanford Recovery-Oriented Computing (ROC) Project
Multiple data center HA network connectivity
AWS Marketplace: products that can be used for fault tolerance
APN Partner: partners that can help with automation of your fault tolerance

最佳实践:

改进计划

监控工作负载的所有组件以检测故障

  • 根据恢复目标确定您的组件的收集间隔。
  • 为组件配置详细的监控。
  • 创建自定义指标来测量业务关键性能指标 (KPI) : 工作负载实现关键业务功能。这些功能应用作 KPI 来帮助确定间接问题发生的时间。
    Publishing Custom Metrics
  • 使用用户 Canary 来监控用户的故障体验: 可运行与模拟客户行为的综合事务测试(又称为“Canary 测试”,但不要和 Canary 部署相混淆)是最重要的测试流程之一。从不同的远程位置针对您的工作负载终端节点持续地运行此类测试。
    Amazon CloudWatch Synthetics enables you to create user canaries
  • 创建跟踪用户体验的自定义指标: 如果您可以衡量客户体验,就可以确定客户体验何时会下降。
    Publishing Custom Metrics
  • 设置警报,以在检测到工作负载未正常运行时发出警报,并指示什么时候自动扩展资源。 : 可以在控制面板上显示警报,可以通过 SNS 或电子邮件发送提醒,并使用 Auto Scaling 来扩展或缩减工作负载的资源。
    Using Amazon CloudWatch Alarms
  • 创建控制面板以可视化形式呈现指标: 可以使用控制面板直观地查看趋势、离群值和表示其他潜在问题的指标,或者提供您可能需要进行调查的问题的指示。
    Using CloudWatch Dashboards
  • 故障转移到运行状况良好的资源

  • 故障转移到运行状况良好的资源: 确保如果某个资源发生故障,该运行状况良好的资源可以继续为请求提供服务。对于位置故障(如可用区或 AWS 区域),确保您拥有适当的系统以故障转移到未受损位置内运行状况良好的资源。
  • 自动修复所有层

  • 使用 Auto Scaling 组在应用程序中部署多个层: Auto Scaling 可以对无状态应用程序执行自我修复,以及添加和移除容量。
    How AWS Auto Scaling Works
  • 在部署了无法部署到多个位置,但在故障后允许重新启动的应用程序的 EC2 实例上,实施自动恢复。 : 当无法将应用程序部署到多个位置时,可以使用自动恢复来替换发生故障的硬件并重新启动实例。 实例元数据和关联的 IP 地址将被保留,以及 Amazon EBS 卷和 Elastic File System 或 Lustre 和 Windows 文件系统的挂载点。
    Amazon EC2 Automatic Recovery
    Amazon Elastic Block Store (Amazon EBS)
    Amazon Elastic File System (Amazon EFS)
    What is Amazon FSx for Lustre?
    What is Amazon FSx for Windows File Server?
  • 当无法使用自动扩展或自动恢复,或者自动恢复出故障时,使用 AWS Step Functions 和 AWS Lambda 实施自动恢复。 : 当您无法使用自动扩展,并且无法使用自动恢复或自动恢复失败时,您可以使用 AWS Step Functions 和 AWS Lambda 进行自动修复。
    What is AWS Step Functions?
    What is AWS Lambda?
  • 使用静态稳定性来防止双模态行为

  • 使用静态稳定性来防止双模态行为: 双模态行为是指您的工作负载在正常和故障模式下展现出不同的行为,例如,若可用区发生故障时依赖于启动新的实例。
    The Amazon Builders' Library: Static stability using Availability Zones
    Static stability in AWS: AWS re:Invent 2019: Introducing The Amazon Builders’ Library (DOP328)
  • 当事件影响可用性时发出通知

  • 在业务关键性能指标超出低阈值时发出警报: 收到关于您的业务 KPI 的低阈值警报可帮助您了解工作负载什么时候不可用或未正常工作。
    Creating a CloudWatch Alarm Based on a Static Threshold
  • 针对调用自动修复的事件发出警报: 您可以使用任何已创建的自动化功能直接调用 SNS API 来发送通知。
    What is Amazon Simple Notification Service?