将现有基于模拟 3.6 API 的 DocumentDB 集群升级到新版本的 4.0 集群的推荐方法是使用 Amazon 的数据库迁移服务(DMS)。文档显示这是一个复杂的过程,将会导致应用程序中断。
这个过程包括首先配置更改流(除非您的数据库非常小),然后将数据保留期从默认的 3 小时修改。然后您必须创建自己的 DMS 迁移实例,在源集群和目标集群之间传输数据,配置端点,以及必要的 SSL 和 CA 证书,然后配置迁移任务。DMS 仅迁移数据,不迁移索引。因此,您还必须手动使用 GitHub 上可用的自定义 Amazon 工具导出索引,然后将它们重新导入到新的 4.0 集群。
如果这一切听起来太复杂,您可以使用常规的 mongodump 和恢复,但这很慢,并且会给您的实时集群添加性能开销。这同样会导致中断。
要在 Atlas 中升级到新的 MongoDB 版本,您只需通过 Atlas UI 或通过程序性 API 调用修改集群。集群构建器将对副本集执行滚动重启,在保持应用程序连续可用性的同时自动升级每个节点。
MongoDB 中的稳定 API 允许您为您的应用程序提供未来保障。升级到最新的 MongoDB 版本,无需担心引入破坏性的向后不兼容更改,这需要在应用程序端进行重做。
Amazon的DocumentDB备份功能类似于RDS服务中可用的功能。用户可以配置最多35天的保留期,以每秒粒度进行时间点(PiT)恢复,并且可以指定备份开始的时间段。计划快照是增量快照,备份成本,就像所有其他RDS服务一样,包括在集群价格中,直到当前数据库存储大小。例如,如果您有一个1TB数据大小的集群,您包含1TB的备份。即使有增量快照,这也意味着您可以免费获得1TB快照,但您必须为存储34个后续增量快照所需的存储付费。
DocumentDB还提供按需快照,可以通过AWS控制台或API手动触发。快照会复制整个数据库 - 它不是增量快照,并且每个快照都会对备份存储配额产生影响。按需快照也不适用于PiT恢复。
快照只能恢复到新集群 - 您无法将备份恢复到现有集群。
在MongoDB Atlas(完全托管的MongoDB服务)中,用户在安排备份方面有更多的灵活性。使用连续备份,用户可以为每小时、每天、每周和每月的备份选择不同的保留期。
与DocumentDB一样,MongoDB Atlas快照是增量快照,并支持带有连续备份的PiT恢复,使用户能够降低成本并提高他们的恢复时间目标。与DocumentDB不同,MongoDB Atlas按需快照也是增量快照。
当用户在Atlas中恢复备份时,可以将它应用到现有集群,从而避免需要为新集群分配的时间和成本。
DocumentDB当前的安全保护措施有限。主要差距如下:
基于角色的访问控制(RBAC)由一组预定义的角色组成,不能根据特定应用需求进行自定义。例如,用户可以被分配读取和写入权限,但无法将这些权限限制为只能插入新数据,而永远不会修改或删除该数据。具有读写权限的用户也可以自由删除整个集合和索引。
不支持LDAP或Active Directory身份验证和授权。
静态加密只能在创建集群时启用。如果您创建未加密的集群,然后想要稍后加密数据,您必须转储数据库然后将其重新加载到新创建的集群中。
DocumentDB仅支持使用AWS密钥管理服务(KMS)进行加密 - 客户没有选项带来他们首选的KMS。
虽然DocumentDB支持事件审计,但它只能捕获DDL操作,而不是DML操作,因此管理员只能获得数据库活动的部分视图。
MongoDB Atlas提供细粒度访问控制、全面审计,并且始终完全加密,并与AWS KMS或客户的密钥管理服务集成。
为了进一步增强数据保护,MongoDB 7.0 引入了可查询加密(可查询加密文档),允许您在完全随机加密的数据上运行丰富的查询,提高效率,从而改善开发和用户体验。使用可查询加密,组织可以放心地存储敏感数据并满足合规性要求。通过MongoDB 客户端字段级加密,您可以有选择地加密单个文档字段,每个字段可以可选地使用自己的密钥进行加密,并在客户端无缝解密。我们实现的字段级加密与数据库完全分离,对服务器透明,并在客户端的 MongoDB 驱动程序中专门处理。服务器上所有加密字段(存储在内存中、系统日志中、静态存储中以及备份中)都呈现为密文,使任何没有客户端访问权限且没有解密数据所需密钥的任何人无法读取。这与 DocumentDB 提供的静态加密方法不同且更全面。由于 DocumentDB 在服务器端处理加密,即使管理员没有客户端访问权限,只要他们可以访问数据库实例本身,数据仍然可访问。
有效的工具可以暴露数据库操作的遥测信息,这对于优化数据库性能和在问题升级成昂贵的应用程序故障之前主动检测新问题至关重要。没有这些遥测信息,您的团队可能处于盲目状态。
DocumentDB 暴露了 少于 50 个指标,而 MongoDB Atlas 暴露了超过 100 个指标。Atlas 为单个 MongoDB 进程、副本集、分片部署和完整集群提供了细粒度的洞察,并通过性能顾问提供自动化和主动的指导,以优化查询访问模式。