有奖捉虫:办公协同&微信生态&物联网文档专题 HOT
腾讯云 MongoDB 支持内网和外网访问。本文将介绍在控制台中如何配置外网访问地址,以实现外网访问 MongoDB 数据库的能力,更加灵活和便捷的管理数据库。

实现方案

腾讯云数据库 MongoDB 通过负载均衡(Cloud Load Balancer,CLB)开启外网访问服务。在云数据库 MongoDB 控制台配置 CLB 实例监听端口,当外部网络访问 CLB 实例的公网 IP 地址和该端口号时,CLB 实例会将请求转发到对应的后端服务器上。CLB 的后端服务器会做内网与外网的映射,自动将公网请求转发到对应的 MongoDB 内网服务器上。CLB 及其后端服务的更多信息,请参见 负载均衡产品文档
在如下示意图中,公网用户通过 IP 地址192.168.17.6,端口号为80的方式访问 CLB。CLB 的后端服务将请求转发到 MongoDB 数据库内网 IP 地址为 10.0.0.1,端口号为27017的实际运行环境。这样,公网用户就可以通过 CLB 访问 MongoDB 数据库。


使用限制

在开启 MongoDB 数据库的外网访问功能之前,需要了解相关的限制和要求。这些限制和要求涉及 MongoDB 数据库、CLB(负载均衡)、网络等,以确保数据库的安全和稳定性。具体信息,请参见下表。
类别
类别细分
限制说明
云数据库 MongoDB
版本
仅 MongoDB 副本集或分片集群 4.0、4.4、5.0版本。
分片集群
分片集群只支持绑定实例默认访问地址(负载均衡地址)到 CLB,不支持绑定单独开通的 Mongos 地址。
说明:
MongoDB 分片集群的负载均衡地址(LB 地址)将客户端请求转发到合适的 Mongos 进程上进行处理。具体信息,请参见 系统架构。CLB 监听器将会监听MongoDB 分片集群的负载均衡器(LB) IP 地址和端口号。
副本集
副本集 MongoDB 增加或删除节点后,需要修改外网 IP 地址,指定新增节点的监听规则。
网络
私有网络
仅支持绑定云数据库 MongoDB 同 VPC 下的 CLB 实例。
开启外网访问后,无法变更数据库实例的网络。若需变更,需先关闭外网访问。
安全组
未绑定安全组的 MongoDB 实例不支持开通外网访问。建议您配置安全组限制来访 IP 地址。具体操作,请参见 配置安全组
密码认证
免密访问
不支持开启免密访问的 MongoDB 实例开通外网访问。
CLB
实例类型
MongoDB 实例不支持绑定传统型 CLB 实例。负载均衡(此前亦被称为“应用型负载均衡”)和传统型负载均衡的差异对比,请参见 实例类型对比。
实例规格
CLB 实例规格分为共享型和性能容量型。共享型实例的每分钟并发连接数上限为 50,000。对于一些高规格的 MongoDB 实例,这些共享型实例的性能可能无法满足连接数的要求。因此,建议您选择合适的性能容量型 CLB 实例来满足您的需求。共享型和性能容量型详细差异,请参见 实例规格对比
账户类型
MongoDB 实例不支持绑定传统账户下的 CLB 实例,只支持绑定标准账户类型下的 CLB 实例。如何判断账户类型与账户类型升级方式,请参见 账户类型说明
操作限制
关闭外网
关闭外网访问务必在云数据库 MongoDB 控制台操作,请勿自行在 CLB 中删除由MongoDB 创建的监听器或删除整个 CLB 实例,否则,将导致业务连接异常。
网络变更
当改变实例节点数时,外网功能可能会受影响,需要在控制台更新外网配置以保持外网通畅。

注意事项

关闭外网访问服务后,MongoDB 只会清除绑定的监听器,不会释放或回收 CLB 实例。CLB实例的购买和删除均在 CLB 侧进行。
建议每个 MongoDB 实例独享一个 CLB 实例,绑定后 MongoDB 会提供监听器的管理和维护。若需要和其他资源共用 CLB 实例,则用户必须有明确的监听器端口管理规划并预留足够的监听器数量,否则负载均衡在多种服务共同使用下,可能会出现管理混乱的现象。
说明:
如果外网功能提示后端服务健康检查异常,请跳转到对应CLB控制台查看是否存在健康检查风险,或未放通健康探测源IP网段。

前提条件

已创建云数据库 MongoDB 实例,版本为4.0或以上版本,且运行正常。
创建 CLB 实例,且与 MongoDB 属于同一 VPC,运行正常。
请参见 MongoDB Compass Download (GUI) 下载 Windows 系统的可视化工具。

操作步骤

步骤一:开通外网服务

1. 登录 MongoDB 控制台
2. 在左侧导航栏 MongoDB 的下拉列表中,选择副本集实例或者分片实例。副本集实例与分片实例操作类似。
3. 在右侧实例列表页面上方,选择地域。
4. 在实例列表中,找到目标实例。
您可以通过实例列表右上角的搜索框,输入实例 ID、实例名称、内网 IP 或标签键来查找目标实例。
如果实例在实例列表未找到,请在左侧导航栏选择回收站,确认实例是否因费用到期而被隔离在回收站。具体信息,请参见 回收站
5. 在目标实例的实例 ID / 名称列,单击实例 ID,进入实例详情页面。
6. 实例详情页面的网络配置区域,单击外网访问后面的配置 CLB 外网访问服务
7. 服务授权对话框,单击同意授权

8. 配置 CLB 外网服务窗口,选择 CLB 监听实例与配置监听规则。
a. 在绑定负载均衡 CLB 实例导航页签,已经罗列出与当前 MongoDB 实例在同一 VPC 下的所有 CLB 实例,请根据所需带宽上限规格选择需要绑定的负载均衡 CLB 实例。其中,VIP 指 CLB 实例的公网 IP 地址。

b. 单击下一步,在配置监听规则导航页签,绑定 CLB 实例,并设置监控规则。
如果是副本集,为 MongoDB 的主节点与从节点分别配置 CLB 监听的端口号。
如果是分片实例,为内网地址配置对应的监听端口。

9. 单击确定,等待任务执行完成。在实例详情页面的网络配置区域,可查看到外网访问地址的连接串。

登录 负载均衡控制台在实例管理的实例列表中, 找到 MongoDB 绑定的 CLB 实例,单击其实例 ID,进入实例的基本信息页签,选择监听器管理页签,可查看到对应的监听器。

步骤二:配置安全组

外网服务开通之后,请及时为 CLB 及其 MongoDB 实例配置安全组规则,对访问来源进行控制,保证数据访问的安全性。
1. 登录 云服务器控制台 的安全组页面,新建安全组,并设置入站规则,放通 mongo-driver 客户端 IP 地址及您所指定的 MongoDB 实例的监听端口。具体操作,请参见 创建安全组

2. 登录 负载均衡控制台在实例管理的实例列表中, 找到 MongoDB 绑定的 CLB 实例,单击其实例 ID,进入实例的基本信息页签,选择安全组页签
中, 在已绑定安全组区域单击绑定,弹出的配置安全组窗口中,选择已创建的安全组,单击确定。具体操作,请参见 配置负载均衡安全组



3. 登录 MongoDB 控制台,在实例列表中,找到需绑定安全组的实例。单击目标实例 ID,选择数据安全页签,单击配置安全组。在配置安全组对话框,选择需要绑定的安全组,单击确定。具体操作,请参见 配置安全组


步骤三:连接数据库实例

1. MongoDB 控制台实例详情页面的网络配置区域,在访问地址中的外网访问地址(连接串)列,复制访问读写主节点或者仅读从节点的连接串。

2. 登录 MongoDB Compass Download (GUI) 客户端,在 URI 的输入框,粘贴已复制的外网地址连接串,连接串中密码信息隐藏为*****,需手动将连接串中的***替换为实例的访问密码,单击 Connect 。如下图所示:

3. 等待连接成功,便可以在客户端进行数据库管理,如下图所示: