Docs 菜单
Docs 主页
/
MongoDB Atlas
/ /

了解 Atlas 中的私有端点

在此页面上

  • 必需的访问权限
  • Considerations
  • 限制
  • 先决条件

注意

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

MongoDB Atlas支持专用集群上的私有端点。 选择集群类型以学习;了解Atlas支持哪些云提供商:

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

  • 使用Azure Azure Private Link的 Azure
    功能。
  • Google Cloud Platform使用GCPGCP Private Service Connect 的Google Cloud Platform
    功能。

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

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

Resource
创建者
说明
私有端点服务

Atlas

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

AWS

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

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

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

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

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

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

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

Resource
创建者
说明
私有端点服务

Atlas

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

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 进行安全连接:

Resource
创建者
说明
私有端点服务

Atlas

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 到|服务| VPC 中的资源的连接。浅色线条代表与|服务|保留的地址的潜在连接。

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

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

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

  • 与私有端点的连接是单向的。Atlas
    VPCVPC无法启动与您的Google Cloud PlatformGoogle Cloud PlatformVPC VPC的连接。这可确保您感知到的网络信任边界不会扩大。
  • 您可以连接到VPC内的私有端点
    从通过Google Cloud PlatformGoogle Cloud Platform VPN 连接的本地部署数据中心过渡到通过私有端点连接的VPCVPC 。这样,您就可以直接从本地部署数据中心连接到Atlas ,而无需将公共IP地址添加到Atlas访问权限列表。

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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 种子列表私有端点感知的连接字符串,这样,如果 Private Service Connect 使用的端口更改,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 名称。您将接口端点部署到的 VPC 中的每个子网都有 DNS ALIAS 记录。每个 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 名称。您将接口端点部署到的 VPC 中的每个子网都有 DNS ALIAS 记录。每个 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 中的私有链接服务建立连接。 Private Link 服务通过 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 中的私有链接服务建立连接。Private Link 服务通过 Azure 标准负载均衡器将流量发送到您在该区域部署的 Atlas 集群。您的客户端的 DNS 解析机制负责将主机名解析为网络接口的私有 IP 地址。驱动程序只知道连接字符串中的主机名。

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

以下示例展示了启用 Azure Private Link 的无服务器实例的 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 Private Link 的 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

启用私有端点后,仍可使用其他方法访问 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 进行对等连接

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

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

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

    • 在多个地区部署节点,并为每个地区配备一个私有端点。

    • 在一个地区有多个私有端点,并且没有其他私有端点。

      重要

      此限制适用于所有云提供商。 示例,如果在Amazon Web Services的单个地区中创建多个私有端点,则无法在Azure或任何其他AmazonAmazon Web Services WebAzure Amazon Web ServicesServices地区中创建私有端点。

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

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

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

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

    • 联系 MongoDB 支持,或

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

    可寻址目标包括:

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

    • 使用优化连接字符串的每个分片集群部署。

    • 使用非优化连接字符串的分片集群部署的每个 mongos 实例。

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

    注意

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

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

    重要

    Azure 上某些在 10/16/2020 之前创建的 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的单个地区中创建多个私有端点,则无法在Amazon WebAzure Amazon Web ServicesAzureServices或任何其他Azure地区中创建私有端点。

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

  • 如需使用 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.0 或更高版本的 Atlas 集群。

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

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

    • 在多个地区部署节点,并为每个地区配备一个私有端点。

    • 在一个地区有多个私有端点,并且没有其他私有端点。

      重要

      此限制适用于所有云提供商。 示例,如果您在Google Cloud Platform的单个地区中创建多个私有端点,则无法在Amazon WebGoogle Cloud Platform Amazon Web ServicesServices或任何其他Google CloudGoogle Cloud Platform Platform地区中创建私有端点。

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

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

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

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

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

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

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

    可寻址目标包括:

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

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

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

  • 如果为任何 Google Cloud 区域中的 M10+集群配置专用搜索节点,Atlas 不会将这些节点计入可寻址目标的总数中。

  • 如需请求一次性增加 GCP Private Service Connect 的使用(每个 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. 确保至少一个从节点与端点位于同一区域。

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

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

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

  • 在与要连接的 Atlas 集群相同的区域中配置私有端点。

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

  • 拥有一个具有 IAM 用户策略的 AWS 用户帐户,该策略可授予创建、修改、描述和删除端点的权限。有关控制使用接口端点的更多信息,请参阅 AWS 文档

  • (推荐) 安装 AWS CLI。

  • 如果尚未执行此操作,请在 AWS 中创建 VPC 和 EC2 实例。有关指导,请参阅 AWS 文档

  • 在 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 集群。

后退

私有端点