Amazon DocumentDB
提供 MongoDB 兼容 API 的全托管文档数据库,支持 JSON 文档的存储、查询和索引,具备高可用性和自动扩展能力
概述
Amazon DocumentDB 是一项与 MongoDB 兼容的全托管文档数据库服务。支持 MongoDB 的查询语法和驱动程序,可以将现有 MongoDB 应用程序以最小改动迁移到 AWS。底层采用与 Aurora 相同的分布式存储架构,存储容量自动扩展至最大 128 TiB,并通过跨 3 个可用区的 6 副本复制确保高持久性。
与 MongoDB 的兼容性与不兼容的边界
DocumentDB 兼容 MongoDB 4.0/5.0 的大部分 API,包括 CRUD 操作、聚合管道、索引等核心功能。但并非 100% 兼容,服务器端 JavaScript 执行($where、mapReduce 中的 JS 函数)、某些管理命令、特定的聚合操作符不受支持。迁移前需要使用 DocumentDB 兼容性工具分析现有应用程序的查询模式,确认不兼容项的影响范围。对于需要完全 MongoDB 兼容性的场景,应考虑在 EC2 上自建 MongoDB 或使用 MongoDB Atlas。
实例类型选择与成本优化
DocumentDB 的计费由实例费用和存储费用组成。实例类型从 db.t3.medium(开发用)到 db.r6g.16xlarge(大规模生产用)可选。读取副本最多可添加 15 个,通过读写分离降低主实例负载。对于读取密集型工作负载,增加读取副本比升级主实例的性价比更高。存储费用按实际使用量计费,无需预先配置。I/O 费用按请求数计费,I/O 密集型工作负载可选择 I/O 优化实例类型以获得可预测的成本。
与 DynamoDB 的选择标准
DocumentDB 和 DynamoDB 都是 NoSQL 数据库,但数据模型和适用场景不同。DocumentDB 适合需要灵活查询(多字段条件搜索、聚合、JOIN 等效操作)的场景,如内容管理系统、用户配置文件、产品目录等。DynamoDB 适合访问模式固定、需要毫秒级延迟和无限扩展的场景,如会话管理、游戏排行榜、IoT 数据等。如果需要 MongoDB 兼容性或复杂查询,选择 DocumentDB;如果需要极致性能和自动扩展,选择 DynamoDB。