Amazon DocumentDB 的 MongoDB 兼容性 - 迁移策略与架构差异

解说 DocumentDB 与 MongoDB 的兼容性和架构差异。介绍实例设计、备份策略和从 MongoDB 迁移时的注意事项。

DocumentDB 的特性与 MongoDB 的差异

DocumentDB 是提供 MongoDB 兼容 API 的托管文档数据库。可直接使用 MongoDB 的驱动、ODM(如 Mongoose)和管理工具(mongosh、Compass)。但内部架构与 MongoDB 不同,采用基于 Aurora 的存储引擎,存储层与计算层分离。因此部分 MongoDB 功能(如 $where 操作符、特定聚合阶段)不受支持。迁移前需通过兼容性矩阵确认应用程序使用的功能。

实例设计与扩展

DocumentDB 的实例类标准选择为 db.r6g(内存优化、Graviton2)。主实例处理写入,最多 15 个只读副本分散读取。只读副本也作为故障转移目标,主实例故障时自动提升。Elastic Clusters 通过分片键分散数据,实现写入扩展。分片键的选择影响数据分布的均匀性和查询性能。

备份与高可用性

DocumentDB 自动将持续备份保存到 S3,可在最长 35 天内任意秒级进行时间点恢复。手动快照无保留期限制,可通过跨区域复制应对 DR。多可用区部署中主实例和只读副本配置在不同可用区,可用区故障时自动故障转移。全球集群在多个区域部署只读集群,实现跨区域 DR 和低延迟读取。

DocumentDB 的费用

DocumentDB 的费用由实例小时、存储和 I/O 构成。db.r6g.large 每小时约 0.277 美元(月费约 199 美元)。存储每 GB 月费约 0.10 美元,I/O Standard 集群每 100 万请求约 0.20 美元。I/O 优化集群消除 I/O 费用但实例费用增加 30%。根据 I/O 模式选择最优配置。

总结

DocumentDB 是通过 MongoDB 兼容 API 以托管方式运维文档数据库的服务。基于 Aurora 的存储引擎实现高持久性和可用性,Elastic Clusters 支持大规模工作负载。从 MongoDB 迁移时需事先确认兼容性,利用 DMS 可实现最小停机时间的迁移。