一年省 40% 数据库成本:Aurora Serverless v2 混合部署的技术验证与成本分析

引言

数据库高可用的成本悖论:备库必须有(故障时接管),但平时没啥用(读流量不到 5%)。以 db.r6g.2xlarge 为例,备库每月 $902,绝大部分时间在空转。

Amazon Aurora Serverless v2 的混合部署方案提供了一个解法:主库预置实例保性能,备库 Serverless v2 省成本。三七互娱海外品牌 37GAMES 对此进行了完整验证。

方案设计

Aurora Serverless v2 支持与预置实例混合部署,作为 Replica 运行。核心特性:

  • 容量范围:0.5-128 ACU,按实际使用量计费
  • 扩缩容速度:分钟级,对应用透明
  • 故障转移优先级:Tier 0-15,决定预热策略

Tier 配置的权衡:

  • Tier 0/1:Serverless 提前扩容到对应 ACU 值预热。故障切换后立即满载,但空闲成本高
  • Tier 15:Serverless 独立扩缩,空闲成本最低。故障后需要 1-2 分钟扩容恢复

37GAMES 选择 Tier 15,最大化空闲期成本节省。

测试验证

环境:ap-northeast-1(东京),Aurora MySQL 3.04,主库 db.r6g.2xlarge,Serverless v2 0.5-32 ACU。

负载:400 QPS 写入 + 16,000 QPS 读取(全部走写入端点,保证读写一致性),主库 CPU 74%。

四阶段测试覆盖空闲态、稳定负载和两次故障转移:

阶段 场景 Serverless ACU 表现
1 空闲态 0.5 最低成本待机,CPU 极低
2 稳定负载 1.5 仅热备,不承载业务流量
3 预置→Serverless 1.5→22(~2min) 写 400 QPS 稳定,读 2 分钟恢复 16K QPS
4 Serverless→预置 22→1.5 预置立即满载,Serverless 缩容

验证结论:

  • 故障切换时间:~20 秒
  • 数据完整性:零丢失(两次切换均通过验证)
  • 写入性能:故障期间通过应用层重试保持稳定
  • 读取恢复:~2 分钟(Serverless 扩容期间)

成本分析

基于 ap-northeast-1 价格(r6g.2xlarge $1.253/h,Serverless v2 $0.15/ACU/h):

方案 主库/月 备库/月 总成本/月 节省比例
双预置实例 $902 $902 $1,804 基准
预置+Serverless $902 $162 $1,064 41%
+Savings Plans $902 $105 $1,007 44%

备库单项成本从 $902 降至 $162,降幅 82%。

说明:r6g 实例不支持 Database Savings Plans(仅第 7 代以上实例支持),44% 节省来自 Serverless v2 的 35% 折扣。使用 r7g 可进一步叠加。

适用场景分析

高匹配度

  • 备库作为纯高可用保障(读流量<5%)
  • 读负载有明显峰谷(游戏活动/促销/季节性业务)
  • 多租户应用(租户间负载差异大)
  • 开发测试环境

低匹配度

  • 备库承载大量稳定读流量(>50%),预置实例单位成本更优
  • 需要亚秒级故障恢复(Tier 0/1 可满足但成本接近双预置)

实施建议

  1. 现有集群可平滑升级:在 Aurora 集群中添加 Serverless v2 Reader 即可
  2. 故障转移优先级按 RTO 选择:容忍 2 分钟恢复用 Tier 15,需要即时恢复用 Tier 0
  3. 应用层必须配重试:连接重试 + 指数退避覆盖 20 秒切换期
  4. 建议配合 RDS Proxy:平滑故障转移期间的连接中断

参考:37GAMES 在 Aurora Serverless v2 高可用及成本优化上的实践
服务:Amazon Aurora | Amazon RDS Proxy

posted @ 2026-04-30 11:36  亚马逊云开发者  阅读(2)  评论(0)    收藏  举报