AWS DynamoDB NoSQL 数据库
AWS DynamoDB 是 AWS 的完全托管 Serverless NoSQL 数据库,提供键值和文档双数据模型,On-Demand 按请求计费或 Provisioned 预留容量两种模式,支持 Global Tables 多区域自动同步和 DAX 微秒级缓存加速。通过 SevenColorYun 购买可享受充值返赠 5% 起的代理优惠。
产品规格
- 数据模型
- 键值 + 文档双模型,支持嵌套 JSON(32 层深度),无 Schema 限制
- 扩展模式
- On-Demand(自动扩缩,无容量规划)+ Provisioned(预留容量,可预测成本)+ 预留容量自动伸缩
- 全球部署
- Global Tables 多区域自动同步(33+ 区域),多活写入,RPO < 1 秒/RTO < 30 分钟
- 加速缓存
- DAX(DynamoDB Accelerator)全托管内存缓存,读写延迟微秒级(vs 毫秒级直读)
- 备份恢复
- PITR(Point-in-Time Recovery)连续备份 35 天 + 按需 Backup,跨区域备份复制
PB级
单表最大存储
无容量上限
<10ms
SSD 读写延迟
DAX 降至微秒
25GB
永久免费存储
含 25WCU+25RCU
33+
全球区域
Global Tables 多活
DynamoDB:AWS 的 Serverless NoSQL 旗舰——单表 PB 级自动扩展 + On-Demand 零容量规划 + Global Tables 多活写入,为什么比自建 MongoDB/Cassandra 集群省 80% 运维?
AWS DynamoDB 是 AWS 的完全托管 Serverless NoSQL 数据库——2012 年发布,支撑 Amazon.com 的购物车/订单/库存系统(Prime Day 期间处理每秒数亿请求的峰值流量)。DynamoDB 的核心设计思想是”零运维”——没有服务器、没有分区键规划、没有 Replica Set 配置、没有磁盘扩容——创建一张 Table 并定义 Partition Key 就能读写数据,AWS 负责数据的分布、冗余、备份和弹性扩缩。
DynamoDB 提供三种容量模式:On-Demand(按请求计费,自动扩缩——适合不可预测的流量或 Serverless 应用——新游戏上线/电商大促/突发流量防不住是常态)、Provisioned(预留 WCU/RCU 吞吐容量——成本比 On-Demand 低 40-70%——适合每日 DAU 稳定可预测的生产负载)、Provisioned + Auto Scaling(预留基线 + 自动扩缩上限——在可预测成本之上加一层弹性缓冲)。2024 年底新增的DynamoDB Auto Scaling for On-Demand解决了之前 On-Demand 模式的最大痛点——冷启动(表从 0 流量突然到 5000 TPS,可能需要 15-30 分钟的渐进式扩容——现在可以预置 On-Demand 的”期望容量”来消除冷启动延迟)。
DynamoDB 的单表模型与关系型数据库最大的思维差异:没有 JOIN、没有固定 Schema、没有跨表事务(有跨表事务但性能代价大)。正确的 DynamoDB 设计是”单表设计”——把多种实体(用户、订单、产品、会话)放在同一张表里,通过不同的 Partition Key 前缀 + Sort Key 区分。这需要”数据建模的前置设计”——一个在设计阶段投入 2 周的 DynamoDB 单表设计,比”把 MySQL 的表结构直接翻译成 DynamoDB 表”在三年的运营中省下 500-2000% 的成本和可靠性代价。
DynamoDB 的 On-Demand 和 Provisioned 两种计费模式的真实成本差异?
DynamoDB 的成本由三个部分构成:吞吐容量(WCU/RCU 或在 On-Demand 中的读写请求)、存储($0.25/GB/月,前 25GB 永久免费)、附加功能(Global Tables 复制费 + PITR 连续备份费 + DAX 缓存节点费)。吞吐容量是占总成本 70-95% 的主成本。
On-Demand 模式(按读写请求计费):
- 写请求:$1.25/百万写入请求单位(1 个写请求单位 = 1KB 以内的单个 Item 写入)
- 读请求:$0.25/百万读取请求单位(1 个读请求单位 = 4KB 以内的强一致性读取 / 2 个最终一致性读取)
- 不需要预估或预留任何容量——表自动扩缩到任意 TPS(有 15-30 分钟渐进扩容窗口)
Provisioned 模式(预留 WCU/RCU 计费):
- WCU(写入容量单位):$0.00065/小时/单位(1 WCU = 每秒 1 次 1KB 写入)
- RCU(读取容量单位):$0.00013/小时/单位(1 RCU = 每秒 1 次 4KB 强一致性读取 / 2 次最终一致性读取)
- 50 WCU + 50 RCU 的基线容量 = 50 × 0.00065 × 730 + 50 × 0.00013 × 730 ≈ $28.47/月
一个游戏会话管理——每分钟 10 万次玩家状态读写(平均 2KB/Item,写读比 1:5)。On-Demand:100,000 × 60 × 24 × 30 = 4.32 亿写请求 + 21.6 亿读请求 = $540(写)+ $540(读)= $1,080/月。Provisioned(预留相当于均值的容量):约 $480/月+ Auto Scaling 缓冲 20% = ~$576/月。Provisioned 省 47%。
DAX 缓存的加速价值:读延迟从 DynamoDB 直读的 10-15ms → DAX 内存缓存的 < 100 微秒(μs)——约 100 倍提速。DAX 集群成本从 t3.small($0.08/小时 × 2 节点 = ~$116/月)到 r5.8xlarge($2.64/小时 × 3 节点 = $5,800/月)。绝大多数场景用 t3.medium 3 节点($500/月)就能覆盖百万 DAU 的会话缓存——比用 ElastiCache 自建 Redis 缓存更简单(DAX 是 DynamoDB 专用缓存,自动处理失效和更新,不需要管理缓存策略代码)。
DynamoDB 最适合哪些出海场景?
游戏会话和玩家状态管理
游戏玩家的在线状态(“正在游戏中”/“匹配中”/“空闲”)和会话元数据(最后登录时间、当前段位、游戏内货币)是 DynamoDB 的最佳场景:大量小数据(1KB-10KB/玩家)+ 高频读写(每个玩家登录/结算/状态变更 N 次/分钟)+ 低延迟要求(< 10ms)+ 数据模型简单(Partition Key = player_id, Sort Key = session_id)。一个 100 万 DAU 的手游,玩家会话状态表约 100GB 数据,每月 DynamoDB 费用约 $200-400(On-Demand),比自建 MongoDB 3 节点集群(EC2 $350 + 运维 $300)省钱 50% 且零运维。
电商订单和交易系统
DynamoDB 的单表设计模式在电商订单场景中发挥最大价值:订单号(OrderID)作为 Partition Key,同订单的不同状态变更(下单/支付/发货/签收/退货)作为不同 Sort Key 值的 Item。DynamoDB Transactions 支持 ACID 跨多 Item 写入——下订单的同时扣库存和写支付记录,要么全成功要么全回滚。一个日均 50 万单的出海电商,DynamoDB 订单表月费约 $1,200-2,500(Provisioned),对比自建 Aurora 集群($3,000-5,000/月 + DBA 人力)只在订单查询灵活性上有劣势(DynamoDB 不支持 SQL 自由查询——需要配合 Elasticsearch/OpenSearch 做搜索和聚合)。
实时排行榜和计数器
游戏排行榜(“本周击杀排行”、“全服战力 TOP 100”)和实时计数器(“直播间在线人数”、“文章阅读量”)是 DynamoDB 的经典高吞吐写场景。DynamoDB 的原子计数器(UpdateItem + ADD 表达式)支持单次写入 +1/-1 而不需要”读取→加减→写回”的三步事务——直接在服务端原子执行。一个直播平台 10,000 个直播间,每个直播间每秒更新在线人数 1 次 = 每秒 10,000 次原子更新——Provisioned 10000 WCU ≈ $4,745/月。如果用 Redis 做计数器(ElastiCache 同规格约 $2,800/月)更经济,但 Redis 是纯内存——直播结束后计数器数据丢失(回放和运营分析需要历史数据)。DynamoDB 的计数数据永久保留($0.25/GB/月),可以随时调取历史数据进行运营分析。
DynamoDB vs Cosmos DB vs Firestore vs TcaplusDB:出海 NoSQL 选型对比?
| 对比维度 | AWS DynamoDB | Azure Cosmos DB | GCP Firestore | 腾讯云 TcaplusDB |
|---|---|---|---|---|
| 数据模型 | 键值 + 文档(嵌套 JSON,32 层深度) | 文档/键值/图/列族/宽列 5 种 API 模型(MongoDB/Cassandra/Gremlin/SQL/Table) | 文档(Collection/Document 层级结构) | PB 级键值(表+记录,PB 级,专为游戏设计) |
| 扩展模式 | On-Demand 自动扩缩 / Provisioned 预留(两类计费) | Provisioned RU/s / Serverless 按 RU 计费 / Autoscale 三种 | Serverless 按文档读写/存储/网络计费 | 表分片自动分布,无需容量规划 |
| 索引 | GSI(全局二级索引)+ LSI(本地二级索引)+ PartiQL SQL 兼容查询 | 自动索引所有属性 + 自定义索引策略 | 复合索引 + 集合组索引 + 全文搜索(需集成) | 主键 + 辅助索引(PB 级仍保持毫秒延迟) |
| 一致性 | 最终一致性 / 强一致性(单区域) | 5 种一致性级别(强/有界过期/会话/一致性前缀/最终——业界最完整) | 强一致性(单区域) | 强一致性 |
| 全球多区域 | Global Tables 多活写入(33+ 区域,RPO < 1s) | 全球分布式多活 + 多主写入 + 自动故障转移(业界最强全球能力) | Firestore 多区域自动复制(GCP 区域数有限) | 中国区+国际区需手动同步(游戏专用模式) |
| 最大存储 | PB 级(单表无上限) | 50 GB-无限(按容器分区) | 1 TB(免费)/ 10 TB+(Blaze) | PB 级(单表/单集群,王者荣耀验证) |
| 缓存加速 | DAX 全托管内存缓存(微秒级延迟) | 集成 Redis Cache 需单独配置 | Firebase 不提供内置缓存 | 依赖 Redis 缓存层(TencentDB Redis) |
| 免费层 | 前 25GB 存储 + 25 WCU + 25 RCU 永久免费 | 前 1000 RU/s + 25GB 存储永久免费 | 前 50K 读/天 + 20K 写/天 + 1GB 存储 永久免费 | 按需定制报价(无公开免费层) |
| 中国节点 | (AWS 中国需宁夏/北京区域独立账号) | (Azure 中国世纪互联——但与国际站账号隔离) | 不支持 | 全覆盖 + 王者荣耀/和平精英同级验证 |
| 价格锚点 | $0.25/百万读取 + $1.25/百万写入(On-Demand) | $24/月起(400 RU/s Provisioned) | 前 50K 读/天免费 / Blaze 按量 | 按需定制报价(商务洽谈) |
| 最适合 | AWS 生态 + Serverless 优先 + 简单键值/文档 + 全球多活 | .NET/Azure 生态 + 多数据模型 + 全球分布式 + 最灵活的一致性级别 | 移动/Web 应用 + 实时同步 + BaaS 全栈 + 游戏数据 | 中国出海游戏 + PB 级数据 + 王者荣耀验证 + 毫秒延迟 |
DynamoDB 的核心优势是”最成熟的 Serverless NoSQL”——12 年生产验证 + On-Demand/Provisioned 双模式 + DAX 加速。选 DynamoDB 的前提是你的主要业务在 AWS 生态中——跨云调用 DynamoDB 的延迟和出口流量费会让”多活多区域”的优势大打折扣。
DynamoDB 常用产品组合怎么搭?
| 业务场景 | DynamoDB 配置 | 配套产品 | 月费估算 |
|---|---|---|---|
| 游戏玩家状态 | On-Demand + DAX t3.medium 3 节点(会话缓存微秒级) | Lambda(状态更新函数)+ ElastiCache(排行榜 Redis)+ GameLift(游戏服务器) | $400-1,200 |
| 电商订单系统 | Provisioned 500 WCU + 2000 RCU + GSI(按用户查订单) | Lambda(订单处理)+ RDS(用户/产品主数据)+ SQS(订单消息队列) | $800-1,800 |
| 全球多活应用 | Global Tables(美东+法兰克福+新加坡)+ DAX 每区域 | Lambda @Edge + CloudFront(前端分发)+ Route 53(延迟路由) | $1,500-4,000 |
| 实时计数器/分析 | Provisioned 2000 WCU + DynamoDB Streams + 原子计数器 | Kinesis(实时流)+ Lambda(聚合函数)+ S3(数据湖) | $1,000-2,500 |
相关资源
- AWS DynamoDB 官方文档 — 单表设计最佳实践、GSI/LSI 索引策略、DAX 缓存配置
- AWS 代理商折扣真实数字:APN 四级返点与 Savings Plans 组合策略
- AWS RDS 关系数据库 — SQL 关系型数据库 vs NoSQL 选型对比
- AWS Lambda 函数计算 — DynamoDB Streams 的事件处理消费者
- Azure Cosmos DB 全球分布式数据库 — Azure 多模型 NoSQL 竞品对比
5 步开通 AWS:从零到实例启动
联系客服
点击右下角 WhatsApp 或 Telegram,告知数据库需求(键值/文档/时序/图)和预估读写吞吐量
提交信息
提供企业名称或个人信息用于 AWS 账号注册
选择充值金额
$1,000 起充,支持支付宝、微信、USDT、银行转账
获取凭证
即刻收到 AWS 账号,立即可用
开始使用
登录 AWS Console 创建 DynamoDB Table,选择 On-Demand 或 Provisioned 模式,配置 Partition Key 和 GSI,享受充值返赠 5% 起
核心特性
- 完全托管 Serverless NoSQL——零服务器、零分区管理、零 Schema 设计
- On-Demand 模式按请求计费——无容量规划、无预留费、自动扩缩
- Global Tables 多区域多活写入——同一张表在多个 AWS 区域自动同步
- DAX 全托管内存缓存——读写延迟从毫秒降到微秒(6 倍提速)
- PITR 连续备份(35 天)+ 按需 Backup + 跨区域备份复制
- 与 Lambda/API Gateway/SQS/Kinesis/EventBridge 原生事件驱动架构