Docs 菜单
Docs 主页
/
MongoDB 阿特拉斯
/ /

了解 Atlas 中的私有端点

在此页面上

  • 私有端点概念
  • 私有端点概念
  • 私有端点概念
  • 必需的访问权限
  • 注意事项
  • 限制
  • 先决条件

注意

此功能不适用于 M0免费集群、 M2M5集群。要详细了解哪些功能不可用,请参阅 Atlas M 0 (自由集群)、M 2和 M 5限制。

MongoDB Atlas 支持专用集群和无服务器实例上的私有端点。选择您的集群类型,了解 Atlas 支持哪些云提供商:

  • Amazon Web Services使用 的AWS PrivateLink 功能。

  • 使用 Azure Private Link 的 Azure 功能。

  • 使用 GCP Private Service Connect 的 Google Cloud 功能。

您还可以为 Online Archive 设置私有端点。要了解更多信息,请参阅为 Online Archive 设置私有端点

当您在AWS中启用 PrivateLink 并在 Atlas 中启用私有端点时, AWS和 Atlas 会创建以下资源来支持通过VPC的安全连接:

资源
创建者
说明
私有端点服务

阿特拉斯

Atlas VPC内的私有端点资源集合,它将区域内的集群置于网络负载均衡器后面。 AWS将该端点服务称为 VPC endpoint service
接口端点

AWS

AWS 具有私有 IP 地址的VPC端点,通过AWS PrivateLink 将流量发送到私有端点服务。 AWS将该接口端点称为VPC endpoint
私有端点
AWS和 Atlas 结合使用
Atlas 和云提供商之间建立的专用连接的通用术语。对于AWS ,该连接是使用 PrivateLink 建立的。
该图显示了 AWS PrivateLink 如何建立从应用程序 VPC 到 |service| 中资源的连接。 VPC。
显示如何使用 |aws| 的图片Direct Connect,用于建立从您的数据中心到对等互连 |aws| 的可传递连接VPC 到 |service| 中的资源使用 |aws| 的 VPC直连。

与其他网络访问管理选项相比,使用私有端点连接 Atlas 集群具有以下优势:

  • 使用私有端点的连接是单向的。 Atlas VPC无法启动与您的VPC的连接。这可确保您感知到的网络信任边界不会扩大。

  • 可以通过以下方式转接到 VPC 内的私有端点:

    • 另一个 VPC 对等互连与私有端点连接的 VPC

    • 通过 DirectConnect 连接的本地部署数据中心 到连接私有端点的 VPC 。这样,您就可以直接从本地部署数据中心连接到 Atlas,而无需将公共 IP 地址添加到 Atlas IP 访问列表。

启用此功能后, Azure和 Atlas 会创建以下资源来支持通过 VNet 的安全连接:

资源
创建者
说明
私有端点服务

阿特拉斯

Atlas VNet 内的一系列私有端点资源,可以将集群置于网络负载均衡器后面的区域内。
私有端点
Azure和 Atlas 结合使用
Atlas 和云提供商之间建立的专用连接的通用术语。对于Azure ,该连接是使用 Private Link 建立的。

Atlas 创建专用链接服务,并将集群放置在 Atlas VNet 中负载均衡器后面的区域中。

然后创建资源,使用私有端点在 Atlas VNet 中建立从 VNet 到 Private Link 服务 的单向连接。Private Link 服务将流量路由到 Atlas VNet 中集群前面的负载均衡器。

与其他网络访问管理选项相比,使用私有端点连接 Atlas 集群具有以下优势:

  • 使用私有端点的连接是单向的。Atlas VNet 无法向您的 VNet 发起连接。这样就可以确保您感知到的网络信任边界不会扩大。

  • 可以通过以下方式转接到 VNet 内的私有端点:

    • 另一个 VNet 对等互连与私有端点连接的 VNet。

    • 通过 ExpressRoute 连接到与私有端点连接的 VNet 的本地部署数据中心。这样,您就可以直接从本地部署数据中心连接 Atlas,而无需在 Atlas IP 访问列表中添加公共 IP 地址。

启用此功能后,Google Cloud 和 Atlas 会创建以下资源来支持通过VPC的安全连接:

资源
创建者
说明
私有端点服务

阿特拉斯

Atlas VPC中的私有端点资源集合,它将集群置于网络负载均衡器后面的区域内。
私有端点
Google Cloud 和 Atlas 结合使用
Atlas 和您的云提供商之间建立的专用连接的通用术语。对于 Google Cloud,这些连接是使用 Private Service Connect 建立的。

当您在 Google Cloud 中启用 GCP Private Service Connect 时,Atlas 会使用 服务附件 创建私有端点服务 和负载均衡器。

接下来,创建资源,使用私有端点建立从VPC到 Atlas 中的私有端点服务的单向连接。私有端点服务将流量路由到 Atlas VPC中集群的负载均衡器。

为确保当前和未来集群的资源可用性,Atlas 会在启用此功能时执行以下操作:

  • 为该区域创建50负载均衡器和服务连接。然后,Atlas 将该区域内的现有集群置于 Atlas VPC中的负载均衡器后面。 GCP Private Service Connect 要求为每个集群中的每个节点使用单独的负载均衡器。

  • 为该区域内的未来集群保留任何剩余的负载均衡器和服务附件。

下图显示了当一个区域中有一个集群时,GCP Private Service Connect 如何建立连接。

显示 GCP Private Service Connect 如何建立从应用程序 VPC 到 |service| 中资源的连接的图片VPC,当您在一个区域中有一个集群时。较浅颜色的线条表示与 |service| 提供的地址的潜在连接储备。

下图显示了当一个区域有两个集群时,GCP Private Service Connect 如何建立连接。

显示 GCP Private Service Connect 如何建立从应用程序 VPC 到 |service| 中资源的连接的图片VPC(当您在一个区域有两个集群时)。较浅颜色的线条表示与 |service| 提供的地址的潜在连接储备。

与其他网络访问管理选项相比,使用私有端点连接 Atlas 集群具有以下优势:

  • 与私有端点的连接是单向的。 Atlas VPC无法启动与您的 Google Cloud VPC的连接。这可确保您感知到的网络信任边界不会扩大。

  • 您可以从通过 Google Cloud VPN 连接的本地部署数据中心过渡到VPC内的私有端点,然后再连接到私有端点连接的VPC 。这样,您就可以直接从本地部署数据中心连接到 Atlas,而无需将公共 IP 地址添加到 Atlas 访问列表。

重要

无服务器实例不支持 GCP Private Service Connect。

注意

MongoDB 计划逐步增加对无服务器实例的更多配置和操作的支持。要了解 MongoDB 计划在未来支持无服务器实例的哪些功能,请参阅无服务器实例限制

您还可以为 Online Archive 设置私有端点。要了解更多信息,请参阅为 Online Archive 设置私有端点

启用此功能后,Atlas 会逐个端点在与无服务器实例相同的VPC和地区中保留现有端点服务。

与其他网络访问管理选项相比,使用私有端点连接 Atlas 集群具有以下优势:

  • 使用私有端点的连接是单向的。 Atlas VPC无法启动与您的VPC的连接。这可确保您感知到的网络信任边界不会扩大。

  • 可以通过以下方式转接到 VPC 内的私有端点:

    • 另一个 VPC 对等互连与私有端点连接的 VPC

    • 通过 DirectConnect 连接的本地部署数据中心 到连接私有端点的 VPC 。这样,您就可以直接从本地部署数据中心连接到 Atlas,而无需将公共 IP 地址添加到 Atlas IP 访问列表。

启用此功能后,Atlas 会逐个端点在与无服务器实例相同的VPC和地区中保留现有端点服务。

与其他网络访问管理选项相比,使用私有端点连接 Atlas 集群具有以下优势:

  • 使用私有端点的连接是单向的。Atlas VNet 无法向您的 VNet 发起连接。这样就可以确保您感知到的网络信任边界不会扩大。

  • 可以通过以下方式转接到 VNet 内的私有端点:

    • 另一个 VNet 对等互连与私有端点连接的 VNet。

    • 通过 ExpressRoute 连接到与私有端点连接的 VNet 的本地部署数据中心。这样,您就可以直接从本地部署数据中心连接 Atlas,而无需在 Atlas IP 访问列表中添加公共 IP 地址。

要设置私有端点,须拥有项目的 Organization OwnerProject Owner 访问权限。

为确保与 Atlas 的私有端点连接能够承受可用性区域中断的情况, 应将子网部署到区域内的多个可用性区域。

您无需采取其他操作即可确保与 Atlas 的Azure私有端点连接能够承受可用区中断。

您无需采取其他措施来确保 Google Cloud 私有端点与 Atlas 的连接能够承受可用区中断。

GCP Private Service Connect 现在为您的 Atlas 集群提供多区域支持。您可以配置 全局访问权限 从不同的 Google Cloud 区域连接到私有端点。通过使用全局访问权限,您可以确保多区域集群、托管在与您所在区域不同的区域的单区域部署以及多云部署中的 Google Cloud 节点的高可用性。

要了解更多信息,请参阅 MongoDB Atlas 的 PSC 互连和全球访问简介

为确保与 Atlas 的私有端点连接能够承受可用性区域中断的情况, 应将子网部署到区域内的多个可用性区域。

为确保与 Atlas 的私有端点连接能够承受可用性区域中断的情况, 应将子网部署到区域内的多个可用性区域。

AWS PrivateLink 支持 50 个可寻址目标, Atlas 可以使用 1024 端口到 65535 端口, 但通常从 1024 端口开始。 端口可在特定情况下更改, 包括(但不限于)集群更改。

重要

MongoDB 强烈建议使用 DNS 种子列表私有端点感知 连接字符串,这样,如果 AWS PrivateLink 使用的 端口更改,DNS 就会自动更新这些端口。 出于同样的原因,MongoDB 还强烈建议 允许列出整个端口范围,而不是特定端口。

Azure Private Link 支持 150 个可寻址目标。Atlas 可以使用端口 1024 到端口 2524,但通常从端口 1024 开始。 端口可在特定情况下更改, 包括(但不限于)集群更改。

重要

MongoDB 强烈建议您使用 DNS 种子列表私有端点感知连接字符串,以便在 Azure Private Link 使用的端口更改时,DNS 会自动更新这些端口。出于同样的原因,MongoDB 还强烈建议允许列出整个端口范围,而不是特定端口。

可通过27015至27017端口上的 GCP Private Service Connect 端点访问 Atlas 服务。端口可能会在特定情况下发生变化,包括(但不限于)集群更改。

重要

MongoDB 强烈建议使用 DNS 种子列表私有端点感知连接字符串,以便 DNS 在 GCP Private Service Connect 使用的端口发生变化时自动更新。出于同样的原因,MongoDB 还强烈建议将整个端口范围而不是特定端口列入白名单。

AWS PrivateLink 支持 50 个可寻址目标, Atlas 可以使用 1024 端口到 65535 端口, 但通常从 1024 端口开始。 端口可在特定情况下更改, 包括(但不限于)集群更改。

重要

MongoDB 强烈建议使用 DNS 种子列表私有端点感知 连接字符串,这样,如果 AWS PrivateLink 使用的 端口更改,DNS 就会自动更新这些端口。 出于同样的原因,MongoDB 还强烈建议 允许列出整个端口范围,而不是特定端口。

Azure Private Link 支持 150 个可寻址目标。Atlas 可以使用端口 1024 到端口 2524,但通常从端口 1024 开始。 端口可在特定情况下更改, 包括(但不限于)集群更改。

重要

MongoDB 强烈建议您使用 DNS 种子列表私有端点感知连接字符串,以便在 Azure Private Link 使用的端口更改时,DNS 会自动更新这些端口。出于同样的原因,MongoDB 还强烈建议允许列出整个端口范围,而不是特定端口。

配置私有端点时, Atlas 会生成 DNS 种子列表和标准私有端点感知连接字符串:

  • DNS 种子列表连接

    mongodb+srv://cluster0-pl-0-k45tj.mongodb.net
  • 标准连接字符串

    mongodb://pl-0-us-east-1-k45tj.mongodb.net:1024,pl-0-us-east-1-k45tj.mongodb.net:1025,pl-0-us-east-1-k45tj.mongodb.net:1026/?ssl=true&authSource=admin&replicaSet=Cluster0-shard-0-shard-0

VPC 中的客户端使用这些私有端点感知连接字符串之一连接到 Atlas 集群时,该客户端会尝试通过 接口端点 之一与 Atlas VPC 中的负载均衡器建立连接。客户端的 DNS 解析机制会处理主机名解析到哪个接口端点的问题。如果一个接口端点不可用,则使用下一个接口端点。这对于驱动程序或其他连接机制来说是不透明的。驱动程序只知道 SRV 记录或连接字符串中的主机名。

DNS 种子列表私有端点感知连接字符串的 SRV 记录

以下示例展示启用 AWS PrivateLink 的单区域集群的 SRV 记录,同时显示为 pl-0-us-east-1-k45tj.mongodb.net 定义的三个唯一端口:

$ nslookup -type=SRV _mongodb._tcp.cluster0-pl-0-k45tj.mongodb.net
Server: 127.0.0.53
Address: 127.0.0.53#53
Non-authoritative answer:
_mongodb._tcp.cluster0-pl-0-k45tj.mongodb.net service = 0 0 1026 pl-0-us-east-1-k45tj.mongodb.net.
_mongodb._tcp.cluster0-pl-0-k45tj.mongodb.net service = 0 0 1024 pl-0-us-east-1-k45tj.mongodb.net.
_mongodb._tcp.cluster0-pl-0-k45tj.mongodb.net service = 0 0 1025 pl-0-us-east-1-k45tj.mongodb.net.

在前面的示例中:

  • _mongodb._tcp.cluster0-pl-0-k45tj.mongodb.netmongodb+srv://cluster0-pl-0-k45tj.mongodb.net连接字符串引用的 SRV 记录。

  • pl-0-us-east-1-k45tj.mongodb.net 是您已配置 AWS PrivateLink 的一个区域中一个 Atlas 集群中每个节点的主机名。

  • 102410251026是 Atlas 在负载均衡器上为启用 AWS PrivateLink 的区域中的每个 Atlas 副本集节点分配的唯一端口。 Atlas 副本集中的所有节点都可以通过相同的主机名访问,负载均衡器通过唯一端口解析各个节点。

私有端点感知连接字符串和 SRV 记录中的主机名 DNS 解析

SRV 记录和标准连接字符串中的主机名是 DNS 规范名称 (CNAME ) 记录,可解析为 AWS 为接口端点生成的特定于端点的区域 DNS 名称。ALIAS VPC 中部署接口端点的每个子网都有 DNS 记录。每个ALIAS 记录都包含该子网 接口端点 的私有 IP 地址。

以下示例显示了 SRV 记录和标准连接字符串中主机名的DNS查找,包括接口端点的特定端点区域DNS名称及其DNS ALIAS记录:

$ nslookup pl-0-us-east-1-k45tj.mongodb.net
Server: 127.0.0.53
Address: 127.0.0.53#53
Non-authoritative answer:
pl-0-us-east-1-k45tj.mongodb.net
canonical name = vpce-024f5b57108c8d3ed-ypwbxwll.vpce-svc-02863655456245e5c.us-east-1.vpce.amazonaws.com.
Name: vpce-024f5b57108c8d3ed-ypwbxwll.vpce-svc-02863655456245e5c.us-east-1.vpce.amazonaws.com
Address: 10.0.30.194
Name: vpce-024f5b57108c8d3ed-ypwbxwll.vpce-svc-02863655456245e5c.us-east-1.vpce.amazonaws.com
Address: 10.0.20.54

配置私有端点时,Atlas 会生成 DNS 种子列表连接字符串:

DNS 种子列表连接

mongodb+srv://serverlessinstance0-pl-0-k45tj.mongodb.net

VPC 中的客户端使用这些私有端点感知连接字符串之一连接到 Atlas 集群时,该客户端会尝试通过 接口端点 之一与 Atlas VPC 中的负载均衡器建立连接。客户端的 DNS 解析机制会处理主机名解析到哪个接口端点的问题。如果一个接口端点不可用,则使用下一个接口端点。这对于驱动程序或其他连接机制来说是不透明的。驱动程序只知道 SRV 记录或连接字符串中的主机名。

DNS 种子列表私有端点感知连接字符串的 SRV 记录

以下示例显示了启用 AWS PrivateLink 的无服务器实例的 SRV 记录,其中显示了为serverlessinstance0-pe-1.oqg5v.mongodb.net定义的一个端口:

$ nslookup -type=SRV _mongodb._tcp.serverlessinstance0-pe-1.oqg5v.mongodb.net
Server: 127.0.0.1
Address: 127.0.0.1#53
Non-authoritative answer:
_mongodb._tcp.serverlessinstance0-pe-1.oqg5v.mongodb.net service = 0 0 27017 pe-1-serverlessinstance0.oqg5v.mongodb.net.

在前面的示例中:

  • _mongodb._tcp.serverlessinstance0-pe-1.oqg5v.mongodb.netmongodb+srv://serverlessinstance0-pe-1.oqg5v.mongodb.net连接字符串引用的 SRV 记录。

  • serverlessinstance0-pe-1.oqg5v.mongodb.net 是您已配置 AWS PrivateLink 的 Atlas 无服务器实例的主机名。

  • 27017 是 Atlas 为启用 AWS PrivateLink 的 Atlas 无服务器实例的负载均衡器分配的唯一端口。

私有端点感知连接字符串和 SRV 记录中的主机名 DNS 解析

SRV 记录和标准连接字符串中的主机名是 DNS 规范名称 (CNAME ) 记录,可解析为 AWS 为接口端点生成的特定于端点的区域 DNS 名称。ALIAS VPC 中部署接口端点的每个子网都有 DNS 记录。每个ALIAS 记录都包含该子网 接口端点 的私有 IP 地址。

配置私有端点时, Atlas 会生成 DNS 种子列表和标准私有端点感知连接字符串:

  • DNS 种子列表连接

    mongodb+srv://cluster0-pl-0.uzgh6.mongodb.net
  • 标准连接字符串

    mongodb://pl-0-eastus2.uzgh6.mongodb.net:1024,pl-0-eastus2.uzgh6.mongodb.net:1025,pl-0-eastus2.uzgh6.mongodb.net:1026/?ssl=truereplicaSet=atlas-18bndf-shard-0

当 VNet 中的客户端使用这些私有端点感知的连接字符串之一连接到 Atlas 集群时,该客户端会尝试通过私有端点的网络接口与 Atlas VNet 中的私有链接服务建立连接。专用链接服务通过Azure标准负载均衡器将流量发送到在该区域中部署的 Atlas 集群节点。客户端的DNS解析机制负责将主机名解析为网络接口的私有 IP 地址。该驱动程序只知道连接字符串中的主机名,监听集群副本集中每个节点的一个端口。

DNS 种子列表私有端点感知连接字符串的 SRV 记录

以下示例展示启用 Azure Private Link 的单区域集群的 SRV 记录,同时显示为 pl-0-eastus2.uzgh6.mongodb.net 定义的三个唯一端口:

$ nslookup -type=SRV _mongodb._tcp.cluster0-pl-0.uzgh6.mongodb.net
Server: 127.0.0.53
Address: 127.0.0.53#53
Non-authoritative answer:
_mongodb._tcp.cluster0-pl-0.uzgh6.mongodb.net service = 0 0 1024 pl-0-eastus2.uzgh6.mongodb.net.
_mongodb._tcp.cluster0-pl-0.uzgh6.mongodb.net service = 0 0 1025 pl-0-eastus2.uzgh6.mongodb.net.
_mongodb._tcp.cluster0-pl-0.uzgh6.mongodb.net service = 0 0 1026 pl-0-eastus2.uzgh6.mongodb.net.

在前面的示例中:

  • _mongodb._tcp.cluster0-pl-0.uzgh6.mongodb.net is
    连接字符串引用的 SRV 记录。
  • pl-0-eastus2.uzgh6.mongodb.net 是 的主机名
    您已配置 Azure Private Link 的一个区域中一个 Atlas 集群的每个节点
  • 102410251026是唯一端口,
    Atlas 在负载均衡器上为您启用 Azure Private Link 的区域中的每个 Atlas 副本集节点进行分配。Atlas 副本集中的所有节点都可通过相同的主机名访问,负载均衡器通过唯一端口解析各个节点。

私有端点感知连接字符串和 SRV 记录中的主机名 DNS 解析

SRV 记录和标准连接字符串中的主机名是DNS A记录,可解析为私有端点网络接口的私有 IP 地址。

以下示例显示了 SRV 记录和标准连接字符串中主机名的DNS查找:

$ nslookup pl-0-eastus2.uzgh6.mongodb.net
Server: 127.0.0.53
Address: 127.0.0.53#53
Non-authoritative answer:
Name: pl-0-eastus2.uzgh6.mongodb.net
Address: 10.0.0.4

配置私有端点时,Atlas 会生成 DNS 种子列表连接字符串:

  • DNS 种子列表连接

    mongodb+srv://cluster0-pl-0.uzgh6.mongodb.net

当 VNet 中的客户端使用私有端点感知的连接字符串连接到 Atlas 集群时,该客户端会尝试通过私有端点的网络接口与 Atlas VNet 中的私有链接服务建立连接。专用链接服务通过Azure标准负载均衡器将流量发送到在该区域中部署的 Atlas 集群。客户端的DNS解析机制负责将主机名解析为网络接口的私有 IP 地址。驱动程序只知道连接字符串中的主机名。

DNS 种子列表私有端点感知连接字符串的 SRV 记录

以下示例显示了启用 Azure 专用链接的无服务器实例的 SRV 记录,其中显示了为pl-0-eastus2.uzgh6.mongodb.net定义的一个端口:

$ nslookup -type=SRV _mongodb._tcp.serverlessinstance0-pe-1.oqg5v.mongodb.net
Server: 127.0.0.1
Address: 127.0.0.1#53
Non-authoritative answer:
_mongodb._tcp.serverlessinstance0-pe-1.oqg5v.mongodb.net service = 0 0 27017 serverlessinstance0-pe-1.oqg5v.mongodb.net.

在前面的示例中:

  • _mongodb._tcp.serverlessinstance0-pe-1.oqg5v.mongodb.net 是连接字符串引用的 SRV 记录。

  • serverlessinstance0-pe-1.oqg5v.mongodb.net 是您已配置 Azure 专用链接的 Atlas 无服务器实例的主机名。

  • 27017 是 Atlas 为启用了 Azure Private Link 的 Atlas 无服务器实例的负载均衡器分配的唯一端口。

私有端点感知连接字符串和 SRV 记录中的主机名 DNS 解析

SRV 记录和标准连接字符串中的主机名是DNS A记录,可解析为私有端点网络接口的私有 IP 地址。

配置私有端点时, Atlas 会生成 DNS 种子列表和标准私有端点感知连接字符串:

  • DNS 种子列表连接

    mongodb+srv://cluster0-pl-0.uzgh6.mongodb.net
  • 标准连接字符串

    mongodb://pl-00-000-eastus2.uzgh6.mongodb.net:27017,pl-00-001-eastus2.uzgh6.mongodb.net:27017,pl-00-002-eastus2.uzgh6.mongodb.net:27017/?ssl=truereplicaSet=atlas-18bndf-shard-0

当网络中的客户端使用这些私有端点感知连接字符串之一连接到 Atlas 集群时,该客户端会尝试通过私有端点与 Atlas VPC中的服务连接建立连接。服务附件通过 Google Cloud 内部负载均衡器将流量发送到您在该区域中部署的 Atlas 集群节点。客户端的DNS解析机制负责将主机名解析为端点的私有 IP 地址。

配置私有端点时, Atlas 会生成 DNS 种子列表和标准私有端点感知连接字符串:

  • DNS 种子列表连接

    mongodb+srv://cluster0-pl-0-k45tj.mongodb.net
  • 标准连接字符串

    mongodb://pl-0-us-east-1-k45tj.mongodb.net:1024,pl-0-us-east-1-k45tj.mongodb.net:1025,pl-0-us-east-1-k45tj.mongodb.net:1026/?ssl=true&authSource=admin&replicaSet=Cluster0-shard-0-shard-0

VPC 中的客户端使用这些私有端点感知连接字符串之一连接到 Atlas 集群时,该客户端会尝试通过 接口端点 之一与 Atlas VPC 中的负载均衡器建立连接。客户端的 DNS 解析机制会处理主机名解析到哪个接口端点的问题。如果一个接口端点不可用,则使用下一个接口端点。这对于驱动程序或其他连接机制来说是不透明的。驱动程序只知道 SRV 记录或连接字符串中的主机名。

DNS 种子列表私有端点感知连接字符串的 SRV 记录

以下示例展示启用 AWS PrivateLink 的单区域集群的 SRV 记录,同时显示为 pl-0-us-east-1-k45tj.mongodb.net 定义的三个唯一端口:

$ nslookup -type=SRV _mongodb._tcp.cluster0-pl-0-k45tj.mongodb.net
Server: 127.0.0.53
Address: 127.0.0.53#53
Non-authoritative answer:
_mongodb._tcp.cluster0-pl-0-k45tj.mongodb.net service = 0 0 1026 pl-0-us-east-1-k45tj.mongodb.net.
_mongodb._tcp.cluster0-pl-0-k45tj.mongodb.net service = 0 0 1024 pl-0-us-east-1-k45tj.mongodb.net.
_mongodb._tcp.cluster0-pl-0-k45tj.mongodb.net service = 0 0 1025 pl-0-us-east-1-k45tj.mongodb.net.

在前面的示例中:

  • _mongodb._tcp.cluster0-pl-0-k45tj.mongodb.netmongodb+srv://cluster0-pl-0-k45tj.mongodb.net连接字符串引用的 SRV 记录。

  • pl-0-us-east-1-k45tj.mongodb.net 是您已配置 AWS PrivateLink 的一个区域中一个 Atlas 集群中每个节点的主机名。

  • 102410251026是 Atlas 在负载均衡器上为启用 AWS PrivateLink 的区域中的每个 Atlas 副本集节点分配的唯一端口。 Atlas 副本集中的所有节点都可以通过相同的主机名访问,负载均衡器通过唯一端口解析各个节点。

私有端点感知连接字符串和 SRV 记录中的主机名 DNS 解析

SRV 记录和标准连接字符串中的主机名是 DNS 规范名称 (CNAME ) 记录,可解析为 AWS 为接口端点生成的特定于端点的区域 DNS 名称。ALIAS VPC 中部署接口端点的每个子网都有 DNS 记录。每个ALIAS 记录都包含该子网 接口端点 的私有 IP 地址。

以下示例显示了 SRV 记录和标准连接字符串中主机名的DNS查找,包括接口端点的特定端点区域DNS名称及其DNS ALIAS记录:

$ nslookup pl-0-us-east-1-k45tj.mongodb.net
Server: 127.0.0.53
Address: 127.0.0.53#53
Non-authoritative answer:
pl-0-us-east-1-k45tj.mongodb.net
canonical name = vpce-024f5b57108c8d3ed-ypwbxwll.vpce-svc-02863655456245e5c.us-east-1.vpce.amazonaws.com.
Name: vpce-024f5b57108c8d3ed-ypwbxwll.vpce-svc-02863655456245e5c.us-east-1.vpce.amazonaws.com
Address: 10.0.30.194
Name: vpce-024f5b57108c8d3ed-ypwbxwll.vpce-svc-02863655456245e5c.us-east-1.vpce.amazonaws.com
Address: 10.0.20.54

配置私有端点时,Atlas 会生成 DNS 种子列表连接字符串:

DNS 种子列表连接

mongodb+srv://serverlessinstance0-pl-0-k45tj.mongodb.net

VPC 中的客户端使用这些私有端点感知连接字符串之一连接到 Atlas 集群时,该客户端会尝试通过 接口端点 之一与 Atlas VPC 中的负载均衡器建立连接。客户端的 DNS 解析机制会处理主机名解析到哪个接口端点的问题。如果一个接口端点不可用,则使用下一个接口端点。这对于驱动程序或其他连接机制来说是不透明的。驱动程序只知道 SRV 记录或连接字符串中的主机名。

DNS 种子列表私有端点感知连接字符串的 SRV 记录

以下示例显示了启用 AWS PrivateLink 的无服务器实例的 SRV 记录,其中显示了为serverlessinstance0-pe-1.oqg5v.mongodb.net定义的一个端口:

$ nslookup -type=SRV _mongodb._tcp.serverlessinstance0-pe-1.oqg5v.mongodb.net
Server: 127.0.0.1
Address: 127.0.0.1#53
Non-authoritative answer:
_mongodb._tcp.serverlessinstance0-pe-1.oqg5v.mongodb.net service = 0 0 27017 pe-1-serverlessinstance0.oqg5v.mongodb.net.

在前面的示例中:

  • _mongodb._tcp.serverlessinstance0-pe-1.oqg5v.mongodb.netmongodb+srv://serverlessinstance0-pe-1.oqg5v.mongodb.net连接字符串引用的 SRV 记录。

  • serverlessinstance0-pe-1.oqg5v.mongodb.net 是您已配置 AWS PrivateLink 的 Atlas 无服务器实例的主机名。

  • 27017 是 Atlas 为启用 AWS PrivateLink 的 Atlas 无服务器实例的负载均衡器分配的唯一端口。

私有端点感知连接字符串和 SRV 记录中的主机名 DNS 解析

SRV 记录和标准连接字符串中的主机名是 DNS 规范名称 (CNAME ) 记录,可解析为 AWS 为接口端点生成的特定于端点的区域 DNS 名称。ALIAS VPC 中部署接口端点的每个子网都有 DNS 记录。每个ALIAS 记录都包含该子网 接口端点 的私有 IP 地址。

配置私有端点时, Atlas 会生成 DNS 种子列表和标准私有端点感知连接字符串:

  • DNS 种子列表连接

    mongodb+srv://cluster0-pl-0.uzgh6.mongodb.net
  • 标准连接字符串

    mongodb://pl-0-eastus2.uzgh6.mongodb.net:1024,pl-0-eastus2.uzgh6.mongodb.net:1025,pl-0-eastus2.uzgh6.mongodb.net:1026/?ssl=truereplicaSet=atlas-18bndf-shard-0

当 VNet 中的客户端使用这些私有端点感知的连接字符串之一连接到 Atlas 集群时,该客户端会尝试通过私有端点的网络接口与 Atlas VNet 中的私有链接服务建立连接。专用链接服务通过Azure标准负载均衡器将流量发送到在该区域中部署的 Atlas 集群节点。客户端的DNS解析机制负责将主机名解析为网络接口的私有 IP 地址。该驱动程序只知道连接字符串中的主机名,监听集群副本集中每个节点的一个端口。

DNS 种子列表私有端点感知连接字符串的 SRV 记录

以下示例展示启用 Azure Private Link 的单区域集群的 SRV 记录,同时显示为 pl-0-eastus2.uzgh6.mongodb.net 定义的三个唯一端口:

$ nslookup -type=SRV _mongodb._tcp.cluster0-pl-0.uzgh6.mongodb.net
Server: 127.0.0.53
Address: 127.0.0.53#53
Non-authoritative answer:
_mongodb._tcp.cluster0-pl-0.uzgh6.mongodb.net service = 0 0 1024 pl-0-eastus2.uzgh6.mongodb.net.
_mongodb._tcp.cluster0-pl-0.uzgh6.mongodb.net service = 0 0 1025 pl-0-eastus2.uzgh6.mongodb.net.
_mongodb._tcp.cluster0-pl-0.uzgh6.mongodb.net service = 0 0 1026 pl-0-eastus2.uzgh6.mongodb.net.

在前面的示例中:

  • _mongodb._tcp.cluster0-pl-0.uzgh6.mongodb.net is
    连接字符串引用的 SRV 记录。
  • pl-0-eastus2.uzgh6.mongodb.net 是 的主机名
    您已配置 Azure Private Link 的一个区域中一个 Atlas 集群的每个节点
  • 102410251026是唯一端口,
    Atlas 在负载均衡器上为您启用 Azure Private Link 的区域中的每个 Atlas 副本集节点进行分配。Atlas 副本集中的所有节点都可通过相同的主机名访问,负载均衡器通过唯一端口解析各个节点。

私有端点感知连接字符串和 SRV 记录中的主机名 DNS 解析

SRV 记录和标准连接字符串中的主机名是DNS A记录,可解析为私有端点网络接口的私有 IP 地址。

以下示例显示了 SRV 记录和标准连接字符串中主机名的DNS查找:

$ nslookup pl-0-eastus2.uzgh6.mongodb.net
Server: 127.0.0.53
Address: 127.0.0.53#53
Non-authoritative answer:
Name: pl-0-eastus2.uzgh6.mongodb.net
Address: 10.0.0.4

配置私有端点时,Atlas 会生成 DNS 种子列表连接字符串:

  • DNS 种子列表连接

    mongodb+srv://cluster0-pl-0.uzgh6.mongodb.net

当 VNet 中的客户端使用私有端点感知的连接字符串连接到 Atlas 集群时,该客户端会尝试通过私有端点的网络接口与 Atlas VNet 中的私有链接服务建立连接。专用链接服务通过Azure标准负载均衡器将流量发送到在该区域中部署的 Atlas 集群。客户端的DNS解析机制负责将主机名解析为网络接口的私有 IP 地址。驱动程序只知道连接字符串中的主机名。

DNS 种子列表私有端点感知连接字符串的 SRV 记录

以下示例显示了启用 Azure 专用链接的无服务器实例的 SRV 记录,其中显示了为pl-0-eastus2.uzgh6.mongodb.net定义的一个端口:

$ nslookup -type=SRV _mongodb._tcp.serverlessinstance0-pe-1.oqg5v.mongodb.net
Server: 127.0.0.1
Address: 127.0.0.1#53
Non-authoritative answer:
_mongodb._tcp.serverlessinstance0-pe-1.oqg5v.mongodb.net service = 0 0 27017 serverlessinstance0-pe-1.oqg5v.mongodb.net.

在前面的示例中:

  • _mongodb._tcp.serverlessinstance0-pe-1.oqg5v.mongodb.net 是连接字符串引用的 SRV 记录。

  • serverlessinstance0-pe-1.oqg5v.mongodb.net 是您已配置 Azure 专用链接的 Atlas 无服务器实例的主机名。

  • 27017 是 Atlas 为启用了 Azure Private Link 的 Atlas 无服务器实例的负载均衡器分配的唯一端口。

私有端点感知连接字符串和 SRV 记录中的主机名 DNS 解析

SRV 记录和标准连接字符串中的主机名是DNS A记录,可解析为私有端点网络接口的私有 IP 地址。

提示

另请参阅:

启用私有端点时,您仍然可以使用其他方法访问 Atlas 集群,例如将公共 IP 添加到IP 访问列表网络对等互连。

使用其他方法连接 Atlas 集群的客户端使用标准连接字符串。您的客户端可能必须确定何时使用私有端点感知连接字符串和标准连接字符串。

对于多区域和全局分片集群, 如果需要使用私有端点从无法互相对等的网络连接到 Atlas, 可以在一个区域部署多个私有端点。

您可以将任意数量的私有端点部署到集群所部署的区域。每个区域私有端点都连接到该区域中的 mongos 实例。

警告:启用此设置后,现有多区域和全局分片集群的连接字符串会发生变化。

必须更新应用程序才能使用新的连接字符串。 这可能会导致停机。

只有当 Atlas 项目不包含非分片副本集时,才能启用此设置。

如果存在以下情况,则无法禁用此设置:

  • 在多个区域内有多个私有端点,或

  • 一个地区中的多个私有端点,以及一个或多个地区中的一个私有端点。

启用区域化私有端点设置后,只能创建分片集群。 无法创建副本集。

如需使用此功能,必须启用区域化私有端点设置。

要启用或禁用区域化私有端点设置:

如需使用 Atlas CLI 启用项目的区域化私有端点设置,请运行以下命令:

atlas privateEndpoints regionalModes enable [options]

要了解有关命令语法和参数的更多信息,请参阅 Atlas CLI 文档中的 atlas privateEndpoints regionalModes enable

如需使用 Atlas CLI 禁用项目的区域化私有端点设置,请运行以下命令:

atlas privateEndpoints regionalModes disable [options]

要了解有关命令语法和参数的更多信息,请参阅 Atlas CLI 文档中的 atlas privateEndpoints regionalModes disable

如需使用 Atlas CLI 返回项目的区域化私有端点设置,请运行以下命令:

atlas privateEndpoints regionalModes describe [options]

要了解有关命令语法和参数的更多信息,请参阅 Atlas CLI 文档中的 atlas privateEndpoints regionalModes describe

1
  1. 如果尚未显示,请选择包含所需项目的组织导航栏中的Organizations菜单。

  2. 如果尚未显示,请从导航栏的Projects菜单中选择所需的项目。

  3. Projects(项目)菜单旁边,展开 Options(选项)菜单,然后单击 Project Settings(项目设置)。

    显示“项目设置”页面。

2

Multiple Regionalized Private Endpoints 设置切换为 Yes

1
  1. 如果尚未显示,请选择包含所需项目的组织导航栏中的Organizations菜单。

  2. 如果尚未显示,请从导航栏的Projects菜单中选择所需的项目。

  3. Projects(项目)菜单旁边,展开 Options(选项)菜单,然后单击 Project Settings(项目设置)。

    显示“项目设置”页面。

2

Multiple Regionalized Private Endpoints 设置切换为 No

Atlas 可以使用专用端点服务的负载均衡器为分片集群生成优化的 SRV 连接字符串。当您使用优化的连接字符串时,Atlas 会限制应用程序与集群之间每个 mongos 的连接数。每个 mongos 的受限连接数可提高连接计数高峰期间的性能。

注意

Atlas 不支持在 Google Cloud 或 Azure 上运行的集群的优化连接字符串。

要了解有关为私有端点后的分片集群优化连接字符串的更多信息,请参阅提高私有端点后分片集群的连接性能

如果您使用 AWS PrivateLink 且应用程序连接到多区域集群,而这些集群在不同区域具有端点,但未使用区域化私有端点,请确保这些应用程序可以访问其他区域的端点。例如,要使用AWS执行此操作,您可以包含端点的VPC进行对等。

启用私有端点时,您仍然可以使用其他方法访问 Atlas 集群,例如将公共 IP 添加到IP 访问列表。

要了解有关专用集群的私有端点计费的更多信息,请参阅专用集群的私有端点

要了解有关无服务器实例的私有端点计费的更多信息,请参阅无服务器实例的私有端点。

  • AWS PrivateLink 必须在部署多区域集群的所有区域中处于活动状态。如果 AWS PrivateLink 在部分目标区域(而非所有目标区域)处于活动状态,您将收到错误信息。如果您在AWSAzure中有一个多云集群,则必须在每个提供商或地区预配一个端点,并设置站点到站点 VPN。

  • 您只能进行以下操作之一:

    • 在单个区域内创建多个私有端点。

    • 如果节点部署在多个区域, 则每个区域只能创建一个私有端点。

      重要

      此限制适用于所有云提供商。例如,如果您在AWS的单个区域中创建多个私有端点,则无法在Azure的多个区域中创建私有端点。

      有关多区域和全局分片集群的例外情况,请参阅(可选)多区域分片集群的区域化私有端点

  • 要在未部署私有端点连接的区域使用 AWS PrivateLink 连接到 Atlas 集群,您必须将这些区域中的VPC与已部署私有端点连接的区域中的VPC对等。

    要了解区域间 VPC 对等互连,请参阅 AWS 文档。

  • 您可以在 Atlas 项目中使用 AWS PrivateLink,每个区域最多有 50 个可寻址目标。如果您在一个区域需要超过 50 个的可寻址目标:

    • 联系 MongoDB 支持,或

    • 利用更多的项目或区域来连接超出这一限制的 可寻址目标。

    可寻址目标包括:

    注意

    如需请求一次性增加 AWS PrivateLink 的使用,以便在每个 Atlas 项目中使用多达 100 个可寻址目标,请联系 MongoDB 支持

  • 您可以使用 Azure Private Link 连接到运行 MongoDB 版本 4.0 或更高版本的 Atlas 集群。

    重要

    在10 / 16 / 2020之前创建的Azure上的某些 Atlas 集群使用与 Azure Private Link 不兼容的Azure网络硬件。您仍然可以为具有这些集群的 Atlas 项目配置 Azure Private Link,以便与项目中支持的集群一起使用,但您将无法通过 Azure Private Link 连接到不兼容的集群。

    所有新的 Atlas 集群都与 Azure Private Link 兼容。如果必须仅使用 Azure Private Link 连接到集群,则可以在同一 Atlas 项目中创建一个新集群并迁移数据

  • Azure Private Link 必须在部署多区域集群的所有区域中处于活动状态。如果 Azure Private Link 在部分目标区域(而非所有目标区域)处于活动状态,您将收到错误信息。如果您在AWSAzure中有一个多云集群,则必须在每个提供商或地区预配一个端点,并设置站点到站点 VPN。

  • 您只能进行以下操作之一:

    • 在单个区域内创建多个私有端点。

    • 如果节点部署在多个区域, 则每个区域只能创建一个私有端点。

      重要

      此限制适用于所有云提供商。例如,如果您在Azure的单个区域中创建多个私有端点,则无法在AWS的多个区域中创建私有端点。

    有关多区域和全局分片集群的例外情况,请参阅(可选)多区域分片集群的区域化私有端点

  • 如需使用 Azure Private Link 从尚未部署私有端点连接的区域连接到 Atlas 集群,必须将这些区域中的 VNet 对等到已部署私有端点连接的区域中的 VNet。

    要了解全球 vNet 对等互连,请参阅 Azure 文档

  • 您可以在 Atlas 项目中使用 Azure Private Link,每个区域最多有 150 个可寻址目标。如果您在一个区域需要超过 150 个的可寻址目标:

    • 联系 MongoDB 支持,或

    • 利用更多的项目或区域来连接超出这一限制的 可寻址目标。

    可寻址目标包括:

    • 副本集部署中的每个 mongod 实例(不包括分片集群)。

    • 分片集群部署中的每个 mongos 实例。

    • 项目中所有专用集群的 Atlas 实例的每个 BI Connector。

  • Azure Private Link 不允许每个目标超过64 k TCP连接,这可能低于集群可以维持的最大连接数。

  • 您可以使用 GCP Private Service Connect 连接到运行 MongoDB 4版本的 Atlas 集群。 0或更高版本。

  • GCP Private Service Connect 必须在部署多区域集群的所有区域中处于活动状态。如果 GCP Private Service Connect 在部分目标区域(而非所有目标区域)处于活动状态,您将收到错误消息。

  • 您只能进行以下操作之一:

    • 在单个区域内创建多个私有端点。

    • 如果节点部署在多个区域, 则每个区域只能创建一个私有端点。

      重要

      此限制适用于所有云提供商。例如,如果您在 Google Cloud 的单个区域中创建多个私有端点,则无法在AWS的多个区域中创建私有端点。

    有关多区域和全局分片集群的例外情况,请参阅(可选)多区域分片集群的区域化私有端点

  • Atlas 创建了 50 个服务附件,每个附件的子网掩码值均为 27。您可以通过设置一个项目限制 Atlas Administration API 端点来设置以下限制,以更改 Atlas 创建的服务附件和子网掩码的数量:

    • 设置 atlas.project.deployment.privateServiceConnectionsPerRegionGroup 限制以更改服务附件的数量。

    • 设置 atlas.project.deployment.privateServiceConnectionsSubnetMask 限制以更改每个服务附件的子网掩码。

    要了解更多信息,请参阅设置一个项目限制

  • 当您创建在单个区域中使用 GCP Private Service Connect 的 Atlas 项目时,您最多可以有50个节点。如果需要更改节点数,请执行以下操作之一:

    可寻址目标包括:

    • 副本集部署中的每个 mongod 实例(不包括分片集群)。

    • 分片集群部署中的每个 mongos 实例。

    • 项目中所有专用集群的 Atlas 实例的每个 BI Connector。

    注意

    Google Cloud 中的每个私有端点都会在 Google Cloud VPC 中保留一个 IP 地址,并将流量从端点的 IP 地址转发到 服务附件 。您创建的私有端点数量必须与服务附件的数量相等。服务附件的数量默认为50 。

    注意

    要请求一次性增加使用 GCP 私有服务连接与每个 Atlas 项目最多100个节点,请联系MongoDB 支持。

  • 当您创建跨多个区域使用 GCP Private Service Connect 的 Atlas 项目时,您最多可以有40个节点。此总数不包括以下实例:

    • 相互通信的 Google Cloud 地区

    • 免费集群或共享集群

  • Google Cloud Private Service Connect 支持每个虚拟机最多 1024 个传出连接。因此,单个 Google Cloud 虚拟机与 Atlas 集群之间的连接数不能超过 1024。

    要了解更多信息,请参阅 Google Cloud 云 NAT 文档

  • Google Cloud Private Service Connect 是针对特定区域的。但是,您可以配置全球访问权限以访问来自不同地区的私有端点。

    若要了解详细信息,请参阅多区域支持

    注意

    您无法使用VPC对等互联从不同区域访问私有端点。

  • 当您使用 Private Service Connect 连接多区域集群时,您只能连接到与私有端点位于同一区域的集群节点。如果终端节点和主节点位于不同的区域,则必须:

    1. 设置您的应用程序的读取偏好,以允许从辅助节点进行连接。

      例如,您可以将应用程序的读取偏好设置为 secondaryPreferred

    2. 确保至少一个从节点与端点位于同一区域。

  • 在将私有端点部署到某个区域之前,必须先恢复项目中已暂停的集群,并将节点部署到该区域。

  • 要在未部署私有端点连接的区域使用 AWS PrivateLink 连接到 Atlas 集群,您必须将这些区域中的VPC与已部署私有端点连接的区域中的VPC对等。

    要了解区域间 VPC 对等互连,请参阅 AWS 文档。

  • 无服务器实例的私有端点适用于集群级别。如果为无服务器实例配置私有端点,则该私有端点不能用于同一项目中的其他无服务器实例或集群。您必须为每个无服务器实例配置单独的私有端点。

  • 每个无服务器实例最多可连接两个私有端点。

如需使用私有端点启用与 Atlas 的连接,您必须:

  • 已为组织配置有效的付款方式。

  • 在 Atlas 中扮演 Project OwnerOrganization Owner 角色。

  • 拥有具有 IAM 用户政策和 计算网络管理员 的 Google Cloud 用户帐号 角色,授予创建、修改和删除网络资源的权限。有关管理私有端点和连接的更多信息,请参阅 GCP 文档。

  • 安装 gcloud CLI。

  • 如果尚未创建,请在 Google Cloud 中创建 VPC 和计算实例。请参阅 GCP 文档 以获取指导。

  • 确保出口防火墙规则允许流向 GCP Private Service Connect 端点内部 IP 地址的流量。

  • (可选)如果您使用 VPC 服务控制 (VPC-SC) 实施安全边界,则必须创建入口和出口规则,以在 GCP Private Service Connect 端点和 Atlas 集群之间建立连接。请参阅 GCP 文档 以获取指导。

  • 启用 全局访问 使用 Private Service Connect 连接不同区域的 Atlas 集群。

后退

私有端点

来年

专用集群