亚马逊AWS官方博客

构建全球服务的“韧性骨架” – Agora.io 基于 Aurora Global Database 的跨区域容灾最佳实践

Agora成立于2014年,是全球实时音视频云服务开创者,为开发者提供简单、灵活且强大的 API,使他们能够将语音、视频、互动流媒体、聊天以及人工智能功能嵌入到自己的应用程序中。

Agora推出了全球首个对话式 AI 引擎,以赋能开发者基于任何大语言模型构建实时语音对话体验。Agora 还使语音 AI 得以应用于物联网领域。通过集成芯片组和硬件模块,开发者们能够迅速为联网设备添加对话式 AI 功能——从而打造出更智能的产品。Agora创造了全球首个、迄今为止规模最大的实时音视频网络——软件定义实时网 SD-RTN™。

Agora的技术服务已覆盖全球 200 多个国家和地区,客户包括Whatnot,Agnes AI,SOMA,Kumu,Parallel,Akool 等遍布全球的巨头、独角兽及创业企业。2020年6月26日,Agora母公司 Agora, Inc. 成功登陆纳斯达克,股票代码为“API”。

服务可用性的探索

Agora SD-RTN™ (Software Defined Real-Time Network)网络节点覆盖全球 200 多个国家和地区,通过就近接入、智能路由等控制策略,实现全球平均端到端延时 < 400 ms,服务可用SLA 质量保证,登录成功率 > 99%,全年可用时间高达 99.99%。

面对这样的 SLA 保证,技术团队需要保证系统有足够的高可用和容灾能力来应对所有非预期故障和预期维护的发生。然而对于基础设施服务而言,故障无法 100% 避免,如网络中断或者区域性网络拥塞、停电、自然灾害等,如何通过有效的高可用架构和容灾策略保证最终服务全年可用时间超过 99.99% 成为我们面临的挑战。

我们首先考虑的问题是将核心服务进行全球化跨多区域部署,以避免单一区域故障对服务 SLA 的影响。网关和应用由于属于无状态服务,是多区域部署架构中率先得以解决的问题,而数据库作为有状态服务如何实现跨区域部署并实现超低延迟成为 2019 年我们进行系统建设时遇到的挑战。我们的需求非常明确,即能够实现跨区域部署和灵活切换,同时跨区域的数据传输需要超低延迟以实现 RPO<1 秒和分钟级 RTO。在此基础上,为不同区域的用户提供本地就近访问能力,实现更低的服务访问延迟。

基于上述需求,Aurora Global Database(以下简称 GDB) 的特性进入我们的选型范围,其中最吸引我们的是多区域部署和低复制延迟,其采用物理复制的方式,能够满足跨区域复制延迟<1秒,同时多区域部署很好的满足了我们全球不同地区的用户进行就近服务访问的需求。

在 2019年我们启动了对于 Aurora GDB 在美东和美西区域的部署和测试,测试结果令我们感到满意:美东和美西两个区域之间 Aurora GDB 的平均延迟稳定保持在 110ms 左右,高负载情况下延迟最高在 200ms 左右。

构建高可用 API 服务

基于以上探索,我们首先在音视频权限管控业务中进行跨区域部署的验证。音视频权限管控是在实时音视频通信系统中对用户权限进行精细化管控的业务,如身份与权限验证,功能权限限制和角色权限管理等,是音视频服务中应用最为频繁的业务模块之一。由于用户分布在多个国家或地区,该服务需要提供就近访问以满足低访问延迟,同时管控业务可用性成为部分依赖权限管控能力的客户业务能正常运行的基石。

结合用户分布情况,我们在北美 3 个不同区域中部署了 Aurora GDB,同时在每个区域中均部署了管控应用服务,结合网关层的 HA 设计,最终实现了跨区域的管控高可用和容灾架构。

跨区域高可用架构下的管控业务流程为:客户的服务端通过 OpenAPI 对音视频参与成员进行管控请求 → 网关根据请求发起所在地区将请求就近路由至管控服务集群 → 管控应用就近访问数据库节点同时下发管控权限至分布式系统 → 如请求中涉及写入操作则采用 Global Database Write Forward特性在主区域进行写入。终端用户从SD-RTN大网进行就近接入后,通过分布式系统访问下发权限,根据相关权限进入音视频空间。

其中网关应用中配置流量向不同区域转发的权重,同时启用延迟嗅探,如果请求返回时间超过最大响应时长,将自动启动流量负载重新平衡,自动将流量负载切换至响应时间更低的区域以保证管控操作及时有效的下达。目前该业务系统已经稳定运行5年以上,为管控服务提供低延迟高稳定性的服务支持。在此基础上,我们陆续将综合管控平台,账单系统以及用户体系等业务进行了基于 Aurora GDB 的跨区域高可用的系统改造。

容灾切换演练实战

上述业务流程已经能够实现对区域级的服务故障如网络抖动,硬件故障等进行自动化处理。对于区域级更大规模故障如何进行演练和验证成为另外的问题。在 Aurora GDB 的多区域部署中,有两种区域即主区域和辅助区域,分别对应数据库的读写和只读操作,所以我们的容灾切换演练也围绕这两种区域的角色展开。

首先是辅助(只读)区域,由于网关配置了流量负载权重,所以只读区域级故障处理变得异常简单,通常基于请求错误码和超时的熔断策略,网关可以自动处理从区域的故障,而针对一些无法被熔断的故障,我们只需要手动将该区域流量权重置为 0 即可实现所有访问请求的绕道而行,完全规避故障区域对服务进行的影响,实际验证整个过程大概能在分钟级左右完成。待区域服务恢复后,重新调整区域流量权重即可恢复对于该区域的的服务访问请求。

对于主区域故障的处理,在实际演练中分为如下三步:

  1. 进行 Aurora GDB 跨区域的Switchover 操作(适用于容灾演练,切换 RPO=0)或者 Failover 操作(适用于真实故障,切换 RPO 通常小于 1 秒),实现数据层的故障切换,切换过程通常会在控制台触发后的 1 分钟左右完成。
  2. 在 Aurora GDB 切换后,确认应用写请求所配置的 Endpoint。如果是通过 Global Writer Endpoint 写入,不需要修改连接信息;如果是通过主区域 Writer Endpoint 或者辅助区域 Reader Endpoint 进行写转发,则需要修改 Endpoint 为 Global Writer Endpoint 或者新的主区域Writer Endpoint。
  3. 类似于只读区域的处理逻辑,进行流量负载重平衡即可完成跨区域故障转移。

Aurora Global Database 数据库升级

预期内的系统维护也将对服务的可用性提出挑战,Aurora Global Database 在过去不支持蓝绿升级,我们主要依靠网关流量调度后,将 GDB 降级为单区域集群,利用蓝绿升级主集群后再恢复 GDB 跨区域架构的方法进行升级(方案一)。2025年11月蓝绿升级发布以后我们对 GDB 的蓝绿升级进行了测试和验证,发现蓝绿升级 GDB 集群能够实现在 3 分钟内完成所有主区域和辅助区域的切换,实际停机时间在 40 秒左右(方案二)。蓝绿升级对 GDB的支持,极大的降低了 GDB 集群的升级复杂度,提供了更便捷和一键式的体验。

方案一:网关流量调度后升级主区域集群

网关流量切换至主要区域,将辅助区域益处,通过蓝绿部署的方式升级主要区域 Aurora 集群,增加辅助区域,重新进行流量负载均衡。

方案二: Aurora Global Database 蓝绿部署

通过控制台可以创建一个镜像生产环境(蓝色)Aurora全球数据库的暂存环境(绿色),包括主区域和所有辅助区域。当准备将暂存环境设为新的生产环境时,在控制台执行蓝/绿切换。

下图为在控制台执行蓝/绿切换的整体流程,可以看到总耗时在三分钟左右完成蓝/绿切换。

下图为测试应用的中断报错日志,可以看到整体中断大约 40 秒,流程为:只读 → 中断访问 → 只读 → 恢复正常。

结语

在全球化业务快速发展的今天, 高可用性和低延迟已成为实时音视频服务的核心竞争力。Agora 通过采用Aurora Global Database构建的跨区域容灾架构,不仅实现了99.99%的服务可用性承诺,更在实践中验证了多区域部署在应对各类故障场景下的有效性。

从2019年开始的技术探索,到如今覆盖全球200多个国家和地区的稳定服务,这一路走来我们深刻体会到:容灾不是一蹴而就的,而是需要持续演练、优化和完善的系统工程。Aurora Global Database的物理复制能力、Write Forward特性,以及最新的蓝绿部署支持,为我们提供了强大的技术底座。但更重要的是,我们在此基础上构建的网关层动态感知、流量智能调度、以及完善的容灾演练机制,这些才是保障服务高可用的关键。

展望未来,随着AI对话、实时互动等新场景的不断涌现,我们将继续深化Aurora Global Database在更多核心业务中的应用,持续优化跨区域数据同步性能,进一步降低RTO和RPO指标。同时,我们也期待与AWS一起,探索更多创新的解决方案,为全球开发者提供更加稳定、快速、可靠的实时音视频服务。

技术的价值在于解决实际问题,架构的意义在于支撑业务发展。希望我们的实践经验能够为正在进行全球化部署和容灾体系建设的企业提供参考和启发。

*前述特定亚马逊云科技生成式人工智能相关的服务目前在亚马逊云科技海外区域可用。亚马逊云科技中国区域相关云服务由西云数据和光环新网运营,具体信息以中国区域官网为准。

本篇作者

庞博

Agora 云平台架构师,负责 RTC(Real Time Communication)媒体后台的架构演进与落地。

张靖宇

亚马逊云科技 RDS 数据库产品经理,具有丰富的关系型数据库和大规模数据库架构经验,对互联网和金融业态有深入理解。

Chen Young

亚马逊云科技数据库专家架构师,十余年数据库行业经验,主要负责基于亚马逊云计算数据库产品的解决方案与架构设计工作。

顾培培

亚马逊云科技技术客户经理,主要负责媒体广告行业客户的架构优化、成本管理、技术咨询等工作,拥有超过 10 年项目实施和客户支持经验。

陈一品

亚马逊云科技解决方案架构师,负责媒体广告行业解决方案构建,有 10+ 年的互联网从业经验。在加入亚马逊云科技之前,就职于支付宝、IBM 等企业,有丰富的架构师经验。

AWS 架构师中心: 云端创新的引领者

探索 AWS 架构师中心,获取经实战验证的最佳实践与架构指南,助您高效构建安全、可靠的云上应用