4. MongoDB Atlas快速入门
MongoDB Atlas 是 MongoDB 官方提供的全托管数据库云服务,把副本集部署、备份、监控、扩缩容、安全补丁等运维工作交给平台,开发者只需关注数据库、集合与访问控制。本节以“从零创建一个可连接、可运维的 Atlas 集群”为主线,串起集群创建、连接配置、用户与网络访问控制、基本运维操作四个环节。理解这条主线,就能把 Atlas 的控制台操作与本地 mongosh、应用驱动连接对应起来。
一、集群创建:从项目到可写节点
Atlas 的资源层级是“组织(Organization)→ 项目(Project)→ 集群(Cluster)”。组织负责账单与成员,项目是集群、用户、网络策略的边界,集群是实际承载数据的副本集。创建集群时,控制台会要求选择云厂商与区域、集群层级(M0 免费层、M2/M5 共享层、M10 及以上专用层)、副本集节点数(通常 3 节点,跨可用区分布)以及 MongoDB 版本。以教学为例,可选择 AWS 的 ap-southeast-1(新加坡)区域、M0 免费层、MongoDB 7.0,集群名 Cluster0。M0 适合学习与验证,但共享资源、无自动备份、连接数有限,生产环境应选 M10 以上并开启备份。
创建过程通常需要 1~3 分钟,状态从 Creating 变为 Active 后即可连接。此时 Atlas 已自动完成三节点副本集初始化、主节点选举与内部认证,用户无需手动执行 rs.initiate()。集群详情页会给出连接串模板,形如:
mongodb+srv://<用户名>:<密码>@cluster0.xxxxx.mongodb.net/?retryWrites=true&w=majority
其中 mongodb+srv:// 表示通过 DNS SRV 记录发现节点,无需在连接串中逐个列出主机;retryWrites=true 让驱动在遇到可重试错误时自动重试一次写操作;w=majority 表示写关注为“多数节点确认”,保证写入在主节点与至少一个从节点落盘后才返回成功。
二、连接配置:用户、网络与客户端三件套
Atlas 默认拒绝所有外部连接,必须同时满足“有数据库用户”和“来源 IP 在白名单内”两个条件。数据库用户用于认证,网络访问用于授权来源。二者缺一,连接都会失败,且报错信息不同:认证失败通常是 Authentication failed,网络不通则表现为超时或 connection refused。
创建数据库用户时,Atlas 提供 Atlas admin、Read and write to any database、Read any database 等内置角色,也可在特定数据库上授予 readWrite、read。教学示例可创建用户 appUser,角色选择 Read and write to any database,密码使用自动生成并立即保存。网络访问可添加单个 IP(如 203.0.113.10/32)或 CIDR 段(如 203.0.113.0/24)。临时调试可用 0.0.0.0/0,但这是高风险配置,验证完应立即删除。
连接方式有三种:mongosh 命令行、MongoDB Compass 图形客户端、应用驱动(Node.js、Python、Java 等)。以 mongosh 为例:
mongosh "mongodb+srv://cluster0.xxxxx.mongodb.net/" --username appUser --password
执行后会提示输入密码,成功后进入 test 数据库。可用 db.runCommand({ ping: 1 }) 验证连通性,返回 { ok: 1 } 即表示认证与网络均正常。若使用 Compass,粘贴连接串后点击 Connect,左侧会列出数据库与集合。
三、用户与网络访问控制:最小权限与来源收敛
Atlas 的访问控制遵循最小权限原则。生产环境不建议使用 Atlas admin 作为应用账号,而应按业务拆分:订单服务只授予 orders 库的 readWrite,报表服务只授予 read。网络侧应尽量使用固定出口 IP 或 VPC Peering / Private Endpoint,避免公网暴露。Atlas 还支持临时用户与临时网络访问,适合外包或短期调试,到期自动失效。
下图展示一次完整连接从客户端到 Atlas 集群所经过的认证与网络校验链路,以及各环节失败时的典型表现。
四、基本运维操作:监控、备份与扩缩容
集群进入 Active 后,Atlas 控制台提供 Metrics、Backup、Alerts、Scale 等运维入口。Metrics 页可查看操作数、连接数、网络流量、复制延迟等指标,复制延迟持续升高通常意味着从节点负载过高或网络抖动。Backup 页可配置快照计划与保留周期,M10 以上支持云备份与时间点恢复(PITR)。Scale 页可调整集群层级与存储容量,扩容通常触发滚动重启,期间连接可能短暂中断,应用驱动应配置重试。
日常运维还应关注 Alerts:可对连接数、磁盘使用率、复制延迟设置阈值告警,通知渠道支持邮件、Slack、PagerDuty。用户与网络访问也应定期审计,删除离职人员账号与过期 IP 条目。Atlas 还提供 mongosh 之外的 atlas CLI 与 Admin API,便于把集群创建、用户管理、白名单维护纳入自动化流水线。
0.0.0.0/0 白名单与 Atlas admin 账号仅限临时验证,验证完成后必须删除或收紧;生产环境应使用最小权限账号、固定出口 IP 或 Private Endpoint,并开启备份与告警。把上述四步串起来,Atlas 的快速入门就形成了一条可复现的路径:创建集群获得连接串,创建用户与白名单打通认证和网络,用 mongosh 或 Compass 验证连接,再通过 Metrics、Backup、Alerts 完成基本运维。掌握这条路径后,后续的混合部署、迁移与性能调优都可以在此基础上展开。