跳至主要内容

AWS 解决方案库

有关使用 Amazon Aurora 扩展多区域应用程序的指南

概览

本指南将演示如何利用本地读取、全局写入方法扩展您的 Web 应用程序或移动应用程序,以构建一个跨越多个 AWS 区域并具有弹性和自我修复能力的系统。在每个区域内,您的应用程序会在 AWS 托管的计算实例上自动扩展,以满足不断变化的需求。代理服务将保持您的数据库连接,并拆分读取和写入,以优化性能。如果一个区域出现故障,系统可以快速切换到备份,利用事件驱动型自动化功能监控问题并同步您的配置。

工作原理

这些技术细节包含一张架构图,用于说明如何有效使用本解决方案。该架构图展示了关键组件及其相互作用,并逐步概述了架构的结构和功能。

自信地进行部署

为部署做好准备了吗? 查看 GitHub 上的示例代码,了解详细的部署说明,以根据需要按原样部署或进行自定义部署。 

访问示例代码

Well-Architected 支柱

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

多区域环境中的卓越运营要求确保您的基础设施在不同的区域之间平稳地运行。Amazon CloudWatch 用于监控各个方面,包括 Aurora 全球数据库的性能、亚马逊 EKS 集群(例如 CPU 和内存使用情况)以及通过应用程序负载均衡器路由的传入请求。可以通过 Aurora 内部的性能洞察进一步观察数据库性能。此外,当配置这种方法时,强调通过 Amazon EKS、应用程序负载均衡器、Aurora Global DatabaseGlobal Accelerator 之间的协作隔离各个分区中的故障。这一合作增强了可扩展性和弹性,特别是在缓解罕见但有可能发生的可用区(AZ)或区域故障方面。

阅读卓越运营白皮书

本指南利用各种 AWS 服务来保护资源和数据。Amazon EKS 利用 Kubernetes 的基于角色的访问控制(RBAC)来管理对集群资源的访问权限,以使只有经过授权的实体才能与敏感的组件进行交互。通过使用 AWS Transit Gateway 和 G lobal Accelerator 可以增强网络安全,它们在区域之间提供安全的通信渠道,并有助于缓解分布式拒绝服务 (DDoS) 攻击。Aurora Global Database 利用静态加密和传输中加密来增强数据安全性,以保护敏感信息免遭未经授权的访问。此外,AWS 身份和访问管理 (AWS IAM) 用于管理用户权限和访问策略,因此只有经过身份验证和授权的用户才能与 AWS 资源进行交互。

阅读安全白皮书

本指南在架构的多个层级中包含冗余和容错功能。Amazon EKS 利用多个可用区来分配工作负载,以实现高可用性和容错功能。使用 Aurora Global Database,可通过跨区域复制数据、最大限度地降低数据丢失风险以及帮助确保区域中断时的运营连续性来增强数据库可靠性。此外,Global Accelerator 会将流量路由到运行状况良好的端点,并自动将流量从运行状况不佳或性能下降的资源重新路由出去,以保持服务可用性。Amazon EKS 和应用程序负载均衡器内的自动扩缩机制有助于管理工作负载需求的波动,这样,无需手动干预即可动态分配资源以满足性能需求。

阅读可靠性白皮书

本指南利用各种 AWS 服务和功能来简化资源利用、增强可扩展性,以及最大限度地减小延迟。 Amazon EKS 采用自动扩展功能,以根据工作负载需求动态调整计算资源。利用 Horizontal Pod Autoscaler 和 Karpenter 等插件以及应用程序负载均衡器,支持对应用程序和 worker 节点进行自动扩展和弹性扩展,以及在运行状况良好的目标之间高效地分配流量。

Aurora 有助于跨区域扩展数据库读取,并将应用程序放在用户附近的位置。此外,与不使用 Aurora Optimized Reads for Aurora PostgreSQL 的实例相比,Aurora Optimized Reads for Aurora PostgreSQL 最多可以将查询延迟缩小到 1/8 并节省 30% 的成本。

Global Accelerator 通过 AWS 全球网络基础设施路由应用程序流量,进一步将网络性能提高了多达 60%,并利用从遍布全球的 AWS 边缘站点投放的两个静态 IP 简化了多区域部署的管理。

阅读性能效率白皮书

在本指南中,通过战略性地利用 AWS 服务和功能来帮助优化成本,并侧重于最大限度地提高效率,同时最大限度地减少开支。借助 Amazon EKS,Horizonal Pod Auto Scaling 和 Karpenter 可以自动扩缩应用程序和 worker 节点,以优化资源分配,从而满足不同的需求水平。

Aurora 提供了两种针对特定工作负载需求量身定制的存储配置,因此在成本优化方面发挥了关键作用。Aurora 标准配置为具有中等 I/O 使用率的应用程序提供了经济实惠的定价,而 Aurora I/O 优化型配置为 I/O 密集型工作负载提供了增强定价,并支持在不超支的情况下实现最佳性能。Aurora 自动扩展功能根据应用程序工作负载的波动动态调整只读副本,以便高效地利用资源以及最大限度地减少不必要的开支。

此外,在A urora 亚马逊EK S上使用 AWS Graviton处理器,特别是Graviton3实例,可以优化性价比,在保持高性能的同时大幅节省成本。

阅读成本优化白皮书

本指南将在 AWS 云端部署和集成 Amazon EKS 集群和 Aurora Global Database,无需购买任何物理硬件。容量提供程序最大限度地减少了虚拟“基础设施”预置,并在工作负载需要时执行必要的自动扩展活动。

在 Kubernetes 平台上运行的每个容器组(pod)(包括 Amazon EKS 集群和 Aurora Global Database)都会消耗内存、CPU、I/O 和其他资源。

此外,通过支持使用节能型处理器实例(例如 AWS Graviton 处理器),本指南提高了可持续性。通过在 Amazon EC2Aurora 中使用 Graviton,能够以更少的资源提高工作负载的性能,从而减少用户的总体资源占用量。

阅读可持续发展白皮书

免责声明

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

找到今天要查找的内容了吗?

请提供您的意见,以便帮助我们提高页面内容的质量