了解 Atlas 中的私有端点
注意
此功能不适用于 M0
免费集群、 M2
和M5
集群。要详细学习;了解哪些功能不可用,请参阅 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 建立的。 |
与其他网络访问管理选项相比,使用私有端点连接 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 如何建立连接。
与其他网络访问管理选项相比,使用私有端点连接 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 Owner
或 Project Owner
访问权限。
Considerations
高可用性
为确保与 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.net
是mongodb+srv://cluster0-pl-0-k45tj.mongodb.net
连接字符串引用的 SRV 记录。pl-0-us-east-1-k45tj.mongodb.net
是您已配置 AWS PrivateLink 的一个区域中一个 Atlas 集群的每个节点的主机名。1024
、1025
和1026
是 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.net
是mongodb+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 集群的每个节点
1024
、1025
和1026
是唯一的端口,- 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 地址。
提示
另请参阅:
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。
启用区域化私有端点
在 Atlas 中,转到 Project Settings(项目设置)页面。
如果尚未显示,请从导航栏上的 Organizations 菜单中选择包含所需项目的组织。
如果尚未显示,请从导航栏的Projects菜单中选择所需的项目。
在 Projects(项目)菜单旁边,展开 Options(选项)菜单,然后单击 Project Settings(项目设置)。
显示项目设置页面。
禁用区域化私有端点
在 Atlas 中,转到 Project Settings(项目设置)页面。
如果尚未显示,请从导航栏上的 Organizations 菜单中选择包含所需项目的组织。
如果尚未显示,请从导航栏的Projects菜单中选择所需的项目。
在 Projects(项目)菜单旁边,展开 Options(选项)菜单,然后单击 Project Settings(项目设置)。
显示项目设置页面。
(可选)提高私有端点后分片集群的连接性能
Atlas 可以使用专用端点服务的负载均衡器为分片集群生成优化的 SRV 连接字符串。当您使用优化的连接字符串时,Atlas 会限制应用程序与集群之间每个 mongos
的连接数。每个 mongos
的受限连接数可提高连接计数高峰期间的性能。
注意
Atlas 不支持在 Google Cloud 或 Azure 上运行的集群的优化连接字符串。
要了解有关为私有端点后的分片集群优化连接字符串的更多信息,请参阅提高私有端点后分片集群的连接性能。
在没有区域化私有端点的情况下连接多区域集群
如果您使用 AWS PrivateLink,并且拥有应用程序连接到端点位于不同区域但未使用区域化私有端点的多区域集群,请确保这些应用程序能够到达其他区域的端点。例如,要在 AWS 上执行此操作,可以将包含终端节点的 VPC 进行对等连接。
帐单
要了解有关专用集群的私有端点计费的更多信息,请参阅专用集群的私有端点。
限制
AWS PrivateLink 必须在部署多区域集群的所有区域中处于活动状态。如果 AWS PrivateLink 在部分目标区域(而非所有目标区域)处于活动状态,您将收到错误信息。如果在 AWS 或 Azure 中有多云集群,则必须在每个提供商或区域配置一个端点,然后设置站点到站点 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 支持,或
利用更多的项目或区域来连接超出这一限制的 可寻址目标。
可寻址目标包括:
注意
如需请求一次性增加 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 在部分目标区域(而非所有目标区域)处于活动状态,您将收到错误信息。如果在 AWS 或 Azure 中有多云集群,则必须在每个提供商或区域配置一个端点,然后设置站点到站点 VPN。
您只能进行以下操作之一:
在多个地区部署节点,并为每个地区配备一个私有端点。
在一个地区有多个私有端点,并且没有其他私有端点。
重要
此限制适用于所有云提供商。 示例,如果在Azure的单个地区中创建多个私有端点,则无法在Amazon WebAzure Amazon Web ServicesAzureServices或任何其他Azure地区中创建私有端点。
有关多区域和全局分片集群的例外情况,请参阅(可选)多区域分片集群的区域化私有端点。
如需使用 Azure Private Link 从尚未部署私有端点连接的区域连接到 Atlas 集群,必须将这些区域中的 VNet 对等到已部署私有端点连接的区域中的 VNet。
要了解全球 vNet 对等互连,请参阅 Azure 文档。
您可以在 Atlas 项目中使用 Azure Private Link,每个区域最多有 150 个可寻址目标。如果您在一个区域需要超过 150 个的可寻址目标:
联系 MongoDB 支持,或
利用更多的项目或区域来连接超出这一限制的 可寻址目标。
可寻址目标包括:
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 个节点。如果需要更改节点数,请执行以下操作之一:
删除现有的私有端点,然后使用设置一个项目限制 Atlas Administration API 端点来更改限制。
联系 MongoDB 支持团队。
利用更多的项目或区域来连接超出这一限制的节点。
Google Cloud 中的每个私有端点都会在 Google Cloud VPC 中保留一个 IP 地址,并将流量从端点的 IP 地址转发到 服务附件 。您创建的私有端点数量必须与服务附件的数量相等。服务附件的数量默认为 50。
可寻址目标包括:
如果为任何 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 连接多区域集群时,您只能连接到与私有端点位于同一区域的集群节点。如果终端节点和主节点位于不同的区域,则必须:
设置您的应用程序的读取偏好,以允许从辅助节点进行连接。
例如,您可以将应用程序的读取偏好设置为 secondaryPreferred。
确保至少一个从节点与端点位于同一区域。
在将私有端点部署到某个区域之前,必须先恢复项目中已暂停的集群,并将节点部署到该区域。
先决条件
如需使用私有端点启用与 Atlas 的连接,您必须:
已为组织配置有效的付款方式。
在与要连接的 Atlas 集群相同的区域中配置私有端点。
在 Atlas 中扮演
Project Owner
或Organization Owner
角色。拥有一个具有 IAM 用户策略的 AWS 用户帐户,该策略可授予创建、修改、描述和删除端点的权限。有关控制使用接口端点的更多信息,请参阅 AWS 文档。
(推荐) : 安装 AWS CLI。
如果尚未执行此操作,请在 AWS 中创建 VPC 和 EC2 实例。有关指导,请参阅 AWS 文档。
在 Atlas 中扮演
Project Owner
或Organization Owner
角色。安装 Azure CLI。
如果尚未执行此操作,请在 Azure 中创建 VNet 和计算实例。有关指导,请参阅 Azure 文档。
在 Atlas 中扮演
Project Owner
或Organization Owner
角色。拥有一个具有 IAM 用户策略的 Google Cloud 用户账户,以及一个可授予创建、修改和删除网络资源权限的计算网络管理员角色。有关管理私有端点和连接的更多信息,请参阅 GCP 文档。
如果您尚未这样做,请在 Google Cloud 中创建 VPC 和计算实例。有关指导,请参阅 GCP 文档。
确保出口防火墙规则允许流向 GCP Private Service Connect 端点的内部 IP 地址的流量。
(可选)如果您使用 VPC 服务控制 (VPC-SC) 实施安全边界,则必须创建入口和出口规则,以便在 GCP Private Service Connect 端点和 Atlas 集群之间建立连接。有关指导,请参阅 GCP 文档。
启用全局访问,使用 Private Service Connect 连接到不同区域的 Atlas 集群。