本指南演示了如何使用 AWS 服务(例如 Amazon DynamoDB 全局表)构建弹性多区域应用程序。它阐述了检测和响应区域范围的中断、提供高可用性和最大限度地减少任务关键型应用程序停机时间的最佳实践。本指南通过动态路由受影响区域的流量并利用全局数据复制来帮助您实现应用程序弹性。

请注意:[免责声明]

架构图

下载架构图 PDF 
  • 主要区域
  • 此架构图显示如何设置和构建弹性多区域应用程序。要进行跨区域失效转移和失效自动恢复,请打开另一个选项卡。

  • 跨区域失效转移和失效自动恢复
  • 此架构图显示了在发生中断时如何执行跨区域失效转移和失效自动恢复。要设置主要区域,请打开另一个选项卡。

Well-Architected 支柱

当您在云中构建系统时,AWS Well-Architected Framework 可以帮助您了解所做决策的利弊。框架的六大支柱使您能够学习设计和操作可靠、安全、高效、经济高效且可持续的系统的架构最佳实践。使用 AWS 管理控制台中免费提供的 AWS Well-Architected Tool,您可以通过回答每个支柱的一组问题,根据这些最佳实践来检查您的工作负载。

上面的架构图是按照 Well-Architected 最佳实践创建的解决方案示例。要做到完全的良好架构,您应该遵循尽可能多的 Well-Architected 最佳实践。

  • Amazon CloudWatch 通过 DynamoDBLambdaAPI GatewayRoute 53 的指标来监控应用程序的运行状况。在事件发生期间,指标有助于评测清空决策的用户影响。CloudWatch Synthetics 金丝雀模拟客户互动,即使在没有流量的情况下也能验证用户体验。金丝雀通过揭示面向客户的问题来补充组件指标。CloudWatch 仪表板为运营人员提供统一的性能视图。Route 53 ARC 检查应用程序的准备情况。失效转移后,仪表板监控失效转移区域。

    阅读卓越运营白皮书 
  • API Gateway HTTPS 端点加密所有通信。AWS Identity and Access Management(IAM)实施最低权限原则,仅授予服务正常运行所需的权限。DynamoDB 加密静态和传输中的数据,而 CloudWatch 日志也经过加密,保护您的敏感信息。采用这些以安全为重点的 AWS 服务可降低数据泄露风险并增强应用程序的整体安全状况。

    阅读安全性白皮书 
  • DynamoDB 全局表可跨多个 AWS 区域复制数据。使用 Route 53 路由和 Route 53 ARC 的自动失效转移可帮助您的应用程序在发生中断时无缝继续运行。Lambda 提供可扩展的应用程序层,将您的服务与预配置的计算资源分离。使用 CloudWatchCloudWatch Synthetics 金丝雀进行实时监控可为您的团队提供在关键事件期间做出明智决策所需的信息。这些 AWS 服务可帮助您构建一个强大且高度可用的应用程序,可以承受意外失效。

    阅读可靠性白皮书 
  • 完全托管的无服务器 AWS 服务会自动扩展以匹配您的工作负载。DynamoDBLambdaAPI GatewayRoute 53 会动态分配资源,使您的应用程序可以处理流量激增和波动,而不会影响用户体验。CloudWatch 会监控应用程序的指标,使您能够识别和解决性能瓶颈。Route 53 会自动将流量分配到延迟最低的区域,从而提高用户的响应能力。

    阅读性能效率白皮书 
  • AWS 服务会自动扩展资源以满足您的应用程序需求。LambdaDynamoDB 仅对您使用的计算和存储资源收费,无需过度配置。API GatewayLambda 协同工作,仅在收到有效的 API 请求时启动您的应用程序逻辑,因此您只需为使用的资源付费。

    阅读成本优化白皮书 
  • 无服务器架构图可优化资源分配,减少对预置硬件的需求并实现高效的能源使用。API GatewayLambda 仅针对有效请求启动,可以最大限度地减少计算消耗。DynamoDB 根据需要分配存储,可防止浪费。资源在流量高峰和失效转移期间纵向扩展,然后在需求减少时缩减。这种自动、精确的供需匹配可最大限度地提高能源效率并降低能源消耗。

    阅读可持续性白皮书 

实施资源

示例代码为起点。它经过行业验证,是规范性但不是决定性的,可以帮助您开始。

博客

使用 Amazon DynamoDB 全局表构建弹性应用程序:第 4 部分

这篇博客文章讨论了多区域部署的运营问题,包括可观测性、部署管道和运行手册。

免责声明

示例代码;软件库;命令行工具;概念验证;模板;或其他相关技术(包括由我方人员提供的任何前述项)作为 AWS 内容按照《AWS 客户协议》或您与 AWS 之间的相关书面协议(以适用者为准)向您提供。您不应将这些 AWS 内容用在您的生产账户中,或用于生产或其他关键数据。您负责根据特定质量控制规程和标准测试、保护和优化 AWS 内容,例如示例代码,以使其适合生产级应用。部署 AWS 内容可能会因创建或使用 AWS 可收费资源(例如,运行 Amazon EC2 实例或使用 Amazon S3 存储)而产生 AWS 费用。

本指南中提及第三方服务或组织并不意味着 Amazon 或 AWS 与第三方之间存在认可、赞助或从属关系。AWS 的指导是一个技术起点,您可以在部署架构时自定义与第三方服务的集成。

此页内容对您是否有帮助?