将自托管 MongoDB 环境迁移到 MongoDB Atlas AWS - AWS 规范指引

本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。

将自托管 MongoDB 环境迁移到 MongoDB Atlas AWS

Battulga Purevragchaa 和 Igor Alekseev,Amazon Web Services

Babu Srinivasan,MongoDB

Summary

此模式描述了如何从自管理式 MongoDB 环境(包括 MongoDB Community Server、Enterprise Server、Enterprise Advanced、mLab 或任何托管的 MongoDB 集群)迁移到 AWS 云上的 MongoDB Atlas。它使用 Atlas Live Migration Service 来帮助加速从 MongoDB 到 MongoDB Atlas 的数据迁移。

该模式与规范性指导网站上的《迁移到 MongoDB Atlas AWS》 AWS 指南一起出现。其中提供了适用于该指南中讨论的其中一个迁移场景的实施步骤。有关其他迁移方案,请参阅 AWS 规范性指导网站上的以下模式:

该模式适用于AWS 系统集成商 (SI) 合作伙伴和 AWS 用户。

先决条件和限制

先决条件

  • 一个可迁移到 MongoDB Atlas 的源 MongoDB Enterprise Advanced、Community Server 或其他自管理式 MongoDB 环境。

  • 熟悉 MongoDB、MongoDB Atlas 和。 AWS 服务此模式从宏观层面阐述了部分迁移步骤。更多细节将在后续版本中添加。

产品版本

  • MongoDB 版本 6.0.13 或更高版本

架构

下图显示了 Atlas Live Migration Service,用于将数据从 MongoDB Enterprise Advanced 数据库和 MongoDB Community 数据库迁移到 AWS上的 MongoDB Atlas。如果您需要将大型复杂数据库迁移到 MongoDB Atlas,同时最大限度地减少停机时间并实现持续的数据同步,请使用此服务。此模式使用 Atlas Live Migration Service。

使用 MongoDB Atlas Live Migration Service 迁移数据。

下图显示了 MongoDB 镜像服务 mongomirror (),您还可以使用该服务通过安全连接将数据从 MongoDB 企业高级数据库和 MongoDB 社区数据库迁移到 MongoDB Atlas。 AWS AWS PrivateLink使用 mongomirror 在本地 MongoDB 和 MongoDB Atlas 之间进行持续复制数据。此工具非常适合用于灾难恢复或分阶段迁移,但不在此模式的范围之内。

使用 mongomirror 工具迁移数据。

有关更多支持不同使用场景的 MongoDB Atlas 参考架构,请参阅规范性指南网站上的迁移到 MongoDB Atlas。 AWS AWS

工具

  • MongoDB Atlas 是一种完全托管式数据库即服务(DbaaS),用于在云中部署和管理 MongoDB 数据库。

  • Atlas Live Migration Service 是免费的 MongoDB 实用程序,可帮助将数据库迁移到 Atlas。此服务使源数据库与目标数据库保持同步,直到直接割接。当您准备好割接时,您可以停止应用程序实例,将它们指向目标 Atlas 集群,然后重新启动它们。要访问此服务,请从 MongoDB Atlas 集群中选择数据库选项

  • mongomirror 用于手动将数据从现有 MongoDB 副本集迁移到 MongoDB Atlas 副本集。mongomirror 不需要您关闭现有的副本集或应用程序,不会导入用户或角色数据,也不会复制配置数据库。可以从 MongoDB 文档下载 mongomirror

最佳实践

有关在 AWS上使用 MongoDB 的最佳实践,请参阅合作伙伴网络博客AWS 上的文章。

操作说明

Task说明所需技能

确定集群大小。

使用 db.stats() 中关于总索引空间的信息来估计工作集大小。假设您的数据空间中有一定比例会被频繁访问。或者,您可以根据自己的假设来估计内存需求。此任务大约需要一周时间。有关此场景以及此操作说明中其他场景的详细信息和示例,请参阅相关资源部分。

数据库管理员、应用程序所有者

估计网络带宽要求。

要估计网络带宽要求,请将平均文档大小乘以每秒提供的文档数量。考虑集群中任何节点将承受的最大流量作为基础。要计算从集群到客户端应用程序的下游数据传输速率,请使用一段时间内返回的文档总数的总和。如果您的应用程序从辅助节点读取数据,请将文档总数除以可以提供读取操作的节点数。要查找数据库的平均文档大小,请使用 db.stats().avgObjSize 命令。此任务通常需要一天的时间。

数据库管理员

选择 Atlas 层。

按照 MongoDB 文档中的说明选择正确的 Atlas 集群层。

数据库管理员

制定割接计划。

制定应用程序割接计划。

数据库管理员、应用程序所有者
Task说明所需技能

在上创建新的 MongoDB Atlas 集群。 AWS

登录 Atlas 并打开项目的概述页面。选择创建按钮以创建集群。有关更多信息,请参阅 MongoDB 文档

数据库管理员

选择 AWS 区域 和全局群集配置。

从适用于您的 Atlas 集群 AWS 区域 的列表中进行选择。如果需要,请配置全局集群。有关更多信息,请参阅 MongoDB 文档

数据库管理员

选择集群层。

选择您的首选集群层。您的层选择决定了内存、存储和 IOPS 规格等因素。

数据库管理员

配置其他集群设置。

配置其他集群设置,例如 MongoDB 版本、备份和加密选项。有关这些选项的更多信息,请参阅相关资源部分。

数据库管理员
Task说明所需技能

对用户进行身份验证和授权。

您必须创建并验证将访问 MongoDB Atlas 集群的数据库用户。要访问项目中的集群,用户必须属于该项目,并且他们可以属于多个项目。 Atlas 还支持基于 AWS Identity and Access Management (IAM) 的身份验证。有关更多信息,请参阅 MongoDB 文档

数据库管理员

创建自定义角色。

(可选)Atlas 支持在内置的 Atlas 数据库用户权限未涵盖所需权限集的情况下创建自定义角色。

数据库管理员

设置 VPC 对等连接。

(可选)Atlas 支持虚拟私有云 (VPC) 与其他开启的 VPCs 对 AWS等。

AWS 管理员

设置 AWS PrivateLink 终端节点。

(可选)您可以使用在上 AWS 设置私有终端节点 AWS PrivateLink。有关更多信息,请参阅 Amazon VPC 文档

AWS 管理员

启用双因素身份验证。

(可选)Atlas 支持双因素身份验证 (2FA),以帮助用户控制对其 Atlas 账户的访问。

AWS 管理员

使用 LDAP 设置用户身份验证和授权。

(可选)Atlas支持使用轻量级目录访问协议 (LDAP) 执行用户身份验证和授权。

AWS 管理员

设置统一 AWS 接入。

(可选)某些 Atlas 功能(包括 Atlas 数据湖和使用客户密钥管理的静态加密)使用 IAM 角色进行身份验证。

AWS 管理员

使用设置静态加密 AWS KMS。

(可选)Atlas 支持使用 AWS Key Management Service (AWS KMS) 加密存储引擎和云提供商备份。

AWS 管理员

设置客户端字段级加密。

(可选)Atlas 支持客户端字段级加密,包括字段的自动加密。

AWS 管理员
Task说明所需技能

在 MongoDB Atlas 中选择目标副本集。

导航到目标 Atlas 集群并选择省略号(...)按钮。在集群列表中,此按钮显示在集群名称下方。在集群详细信息中,按钮显示在右侧,位于连接配置按钮旁边。有关更多信息,请参阅 MongoDB 文档

数据库管理员

将 Atlas Live Migration Service 添加到访问列表。

将 Atlas 实时迁移服务添加到 AWS 源集群的访问列表中。这有助于准备源环境以连接到目标 Atlas 集群。

数据库管理员

使用 Atlas Live Migration Service 执行迁移。

选择开始迁移。当准备割接按钮变绿时,执行割接。查看 Atlas 集群性能指标。考虑更新所有应用程序层中的数据库连接以指向新数据库。

数据库管理员
Task说明所需技能

连接到 MongoDB Atlas 集群。

确保 MongoDB Atlas 集群连接按预期运行。

应用程序所有者

与集群数据交互。

测试集群数据。

数据库管理员

监控您的集群。

验证集群设置是否正确。

数据库管理员

备份和恢复集群数据。

为集群数据安排定期备份计划。

数据库管理员

问题排查

问题解决方案

错误:无法访问指定的源

  • 请确保已在源集群的 IP 访问列表中添加了正确的子网范围。可以在 Live Migration 模式窗口中找到四个必需的子网范围。

  • 确认您指定的主机名是否已解析为公有 IP 地址。在命令提示符处使用以下命令之一:

    nslookup <hostname> ping <hostname>
  • 确保您未使用与实时拉取迁移不兼容的 VPC 对等连接。如果 VPC 对等连接是您的唯一选择,请改用 mongomirror

错误:无法解析主机名

找不到给定主机名的 IP 地址。确认给定的主机名正确且可公开访问。

任何其它错误

如遇任何其他错误,请参阅 MongoDB 文档中的实时迁移故障排除(拉取)

相关资源

除非另有说明,否则以下所有链接均指向 MongoDB 文档中的网页。

迁移指南

旧版迁移

发现与评测

配置安全性和合规性

AWS 上设置新的 MongoDB Atlas 环境

迁移数据

监控集群

集成操作

训练

附加信息

有关更多信息,请参阅 MongoDB 文档中的以下主题: