作为服务提供方,您可以创建终端节点服务并向指定用户共享,简化网络架构,同时避免将服务暴露于公网。
私网安全访问:所有服务访问流量均通过私有网络传输,无需将数据暴露于互联网,规避安全风险。
简化网络架构:PrivateLink 通过在服务使用方的 VPC 内创建弹性网卡来作为服务的本地访问入口,服务使用方访问服务如同访问 VPC 内的其他任何资源,无需配置 VPC 对等连接或云企业网,即可实现私网安全访问服务,从而极大简化网络架构,并从根本上解决了 IP 地址冲突的问题。
工作原理
服务提供方:在计划提供服务的地域部署负载均衡(NLB、ALB、CLB),并配置终端节点服务提供给用户使用。
服务使用方:在服务使用方的 VPC 中,指定终端节点服务名称来创建接口终端节点,即可通过私网访问对应的服务。其他 VPC和本地数据中心与 VPC 建立网络连接后,即可借助 VPC 中的接口终端节点访问终端节点服务。
服务提供方与服务使用方均为阿里云用户。目前,PrivateLink 的终端节点和终端节点服务需部署在同一地域。
共享您的服务
服务提供方需要在计划提供服务的地域,部署负载均衡实例并添加部署服务的后端服务器,配置终端节点服务提供给用户使用。
支持的服务资源:公网/私网类型的 NLB 实例、公网/私网类型的 ALB 实例、按量付费的私网 CLB 实例。
确保已配置服务资源,且部署需提供的后端服务。
控制台
服务提供方配置终端节点服务
前往私网连接控制台的创建终端节点服务页面。
所属地域:选择提供服务的地域。
服务资源类型:根据配置的服务资源选择。为确保访问服务高可用,建议添加多个可用区的服务资源。
自动接受终端节点连接:用户创建接口终端节点访问服务时,服务提供方是否自动接受其连接请求。创建完成后修改该选项,对已连接的接口终端节点无影响。
是:服务使用方创建接口终端节点连接服务时,会自动连接成功。
否:需要服务提供方来确认是否允许服务使用方连接。
是否支持同可用区优先:如果选择是,当服务使用方开启同可用区优先,并从接口终端节点所在的可用区使用终端节点域名访问服务时,云解析 DNS 系统将优先返回对应终端节点可用区的弹性网卡IP,从而实现就近访问。
IP版本:支持IPv4和双栈。当加入终端节点服务的所有服务资源均支持双栈时,可以选择双栈,
CLB 不支持双栈。
服务付费者:选择私网连接的付费方,默认为服务使用方。确定后不支持修改。
终端节点服务创建完成后,服务提供方需要配置服务白名单,跨账号用户才可以向终端节点服务发起连接请求。
在目标终端节点服务详情页的服务白名单页签,单击添加白名单,确定可访问服务的用户范围。
配置
*:所有用户都可以向终端节点服务发起连接请求。配置账号UID:仅对应用户可以向终端节点服务发起连接请求。
服务使用方访问终端节点服务
前往终端节点 - 创建终端节点页面。
配置接口终端节点:
所属地域:选择创建接口终端节点的地域,该地域必须与终端节点服务所在的地域一致。目前 PrivateLink 仅支持同地域连接。
终端节点服务:选择其他终端节点服务,使用终端节点服务名称验证,校验成功即可访问。
专有网络、可用区与交换机:
可用区需在终端节点服务提供服务的可用区(与服务资源所属可用区一致)中选择。为确保访问服务高可用,建议至少选择2个可用区下的交换机。
可以为终端节点可用区的弹性网卡指定交换机内的 IP 地址。如不指定,将由系统默认分配。
不允许为弹性网卡指定交换机的系统保留地址。
安全组:与接口终端节点关联,管控全部终端节点可用区的弹性网卡的入方向流量。
IP版本:当终端节点服务支持双栈时,可以选择双栈,客户端可使用IPv4和IPv6地址访问服务。否则,仅支持选择IPv4。
是否支持同可用区优先:当终端节点服务支持同可用区优先时,服务使用方可选择开启/关闭同可用区优先。
开启时,服务使用方从接口终端节点所在的可用区使用终端节点域名访问服务,云解析 DNS 系统将优先返回对应终端节点可用区的弹性网卡IP,从而实现就近访问。
如果从非接口终端节点所在的可用区访问,或者关闭同可用区优先时,云解析 DNS 系统将返回所有终端节点可用区可用的弹性网卡 IP。
创建完成后,可使用同 VPC 的 ECS 执行以下命令测试是否连通。
ping <终端节点可用区的弹性网卡的IP> # 可在实例详情页的可用区与网卡页签下,查看弹性网卡的私网IP # 如为 HTTP/HTTPS 服务,建议直接访问服务端口 curl -sI https://<终端节点域名> # 可在实例列表页查看终端节点域名
API
服务提供方调用CreateVpcEndpointService创建终端节点服务。
服务使用方调用CreateVpcEndpoint创建终端节点。
配置服务的访问范围
结合服务白名单与自动接受终端节点连接的设置,服务提供方可以精确地控制哪些服务使用方能够访问终端节点服务。例如:
受信任的少数用户:将用户的账号 UID 加入白名单,并开启自动接受终端节点连接。
更广泛的用户:配置
*加入白名单,并设置自动接受终端节点连接为否,服务提供方需逐一审批用户发起的终端节点连接请求。
配置服务白名单
终端节点服务创建完成后,系统自动将服务提供方的阿里云账号添加到服务白名单中。服务提供方手动配置服务白名单后,跨账号用户才可以向终端节点服务发起连接请求。
建议服务处于灰度发布阶段时,服务提供方逐个添加目标用户的阿里云账号 UID,逐步开放服务访问权限。灰度完成后,可以根据业务需要,考虑添加
*配置将服务开放给所有用户。若该服务长期仅面向特定用户开放,可以选择仅配置指定账号UID。
控制台
在目标终端节点服务详情页的服务白名单页签,单击添加白名单,确定可访问服务的用户范围。
配置
*:所有用户都可以向终端节点服务发起连接请求。配置账号UID:仅对应用户可以向终端节点服务发起连接请求。
API
调用AddUserToVpcEndpointService添加服务白名单。
调用RemoveUserFromVpcEndpointService移除服务白名单。
是否自动接受终端节点连接
仅服务提供方接受终端节点连接后,服务使用方才可以使用对应的接口终端节点通过私网访问终端节点服务。
控制台
创建终端节点服务时,需设置自动接受终端节点连接:
是:自动连接成功。
否:服务提供方需要在目标终端节点服务的终端节点连接页签下,在目标接口终端节点的操作列选择允许/拒绝服务使用方连接。
创建完成后,可在目标终端节点服务的基本信息页签,开启/关闭自动接受终端节点连接。创建完成后修改该选项,对已连接的接口终端节点无影响。
API
调用CreateVpcEndpointService和UpdateVpcEndpointServiceAttribute时,设置
AutoAcceptEnabled,确定是否自动接受终端节点连接。设置
AutoAcceptEnabled为false时,需要调用EnableVpcEndpointConnection或DisableVpcEndpointConnection允许/拒绝终端节点的连接请求。
保障服务访问高可用
服务提供方为终端节点服务配置多可用区的服务资源。
服务资源为NLB、ALB时,添加多可用区的NLB、ALB实例。
服务资源为CLB时,添加多个主可用区不同的CLB实例。
服务使用方创建接口终端节点时,至少选择2个可用区下的交换机。
服务使用方使用终端节点域名访问服务,阿里云提供全托管可用性探测,确保可用区出现故障时能快速切换到其他可用区:
实时探测不同终端节点可用区的弹性网卡IP的可用性,如有异常则会删除对应解析记录,避免可用区故障导致服务中断或数据丢失。
故障恢复后,将自动添加对应的解析记录。
控制台
服务提供方为终端节点服务配置多可用区的服务资源
创建终端节点服务时,选择多个可用区下的服务资源。
创建完成后,单击目标接口终端节点服务ID,在基本信息页签单击添加服务资源,选择资源实例进行添加。
服务使用方为接口终端节点配置多可用区
创建接口终端节点时,至少选择2个可用区下的交换机。
创建完成后,单击目标接口终端节点ID,在可用区与网卡页签单击添加可用区。
为确保服务高可用,服务使用方需使用终端节点域名访问服务。终端节点域名可以在接口终端节点列表页查看。
API
终端节点服务配置
调用AttachResourceToVpcEndpointService为终端节点服务添加服务资源。
调用DetachResourceFromVpcEndpointService移除终端节点服务中的服务资源。
终端节点配置
调用AddZoneToVpcEndpoint为终端节点添加可用区。
调用RemoveZoneFromVpcEndpoint删除终端节点的可用区。
分配服务资源
为避免服务资源负载过高影响业务正常运行,终端节点服务的每个可用区可以添加多个服务资源,确保不同的终端节点连接使用不同的服务资源,实现流量分载。同时,当服务资源发生故障时,终端节点连接自动切换到同可用区下其他可用的服务资源。
仅当服务资源为 CLB 时,无需断开终端节点连接,可直接替换可用区的服务资源。
替换可用区服务资源和手动分配服务资源的功能默认不开放,需前往配额中心控制台,申请privatelink_whitelist/svc_res_mgt_uat配额。
服务资源的分配方式:可设置为自动分配或手动分配。需要确保每个可用区至少保留一个可自动分配的服务资源。
为终端节点可用区连接分配服务资源:
当服务提供方自动接受终端节点连接时:
PrivateLink 将结合服务资源的带宽、连接至该服务资源的终端节点连接的数量,在终端节点可用区自动分配同可用区的服务资源(该服务资源的分配方式为自动分配)。
如果自动分配的资源无法满足连接需求,您需要先断开终端节点可用区连接,再手动分配服务资源。调整完成后,再允许连接。
当服务提供方手动接受终端节点连接时:
您可以先手动分配服务资源,再允许连接。如未手动分配,也支持您在允许终端节点连接时,勾选允许连接并自动分配服务资源。
如果自动分配的资源无法满足连接需求,您需要先断开终端节点可用区连接,再手动分配服务资源。调整完成后,再允许连接。
添加/移除服务资源
控制台
添加服务资源
前往终端节点服务列表页,单击目标终端节点服务的ID进入详情页。
在基本信息页签下的服务资源区域,单击添加服务资源。选择可用区与具体的服务资源。
移除服务资源
在目标终端节点服务基本信息页签下的服务资源区域,单击目标服务资源操作列的删除,会从终端节点服务中移除对应资源,但不会删除对应的资源实例。
当服务资源被终端节点可用区关联时,不支持直接删除,需先断开终端节点连接。
API
调用AttachResourceToVpcEndpointService为终端节点服务添加服务资源。
调用DetachResourceFromVpcEndpointService移除终端节点服务中的服务资源。
设置特定服务资源的分配方式
控制台
在目标终端节点服务详情页的基本信息页签下服务资源区域,可调整目标服务资源自动分配列的开关,确定服务资源是否可自动分配给终端节点连接使用。
需确保每个可用区至少包含一个可以自动分配的服务资源。
修改目标服务资源是否支持自动分配,不影响已有的终端节点连接。
API
调用UpdateVpcEndpointServiceResourceAttribute,调整AutoAllocatedEnabled来设置服务资源的分配方式。
为终端节点可用区连接分配服务资源
控制台
在目标终端节点服务详情页的终端节点连接页签,通过以下任一方式断开终端节点连接:
断开所有可用区的连接:单击目标终端节点操作列的拒绝。将导致业务不可用,请谨慎操作。
断开目标可用区的连接:单击目标终端节点前的
图标,单击目标可用区操作列的断开服务资源。可能导致业务流量终端,需谨慎评估。
调整服务资源分配方式:
自动分配资源:单击目标终端节点前的
图标,选择目标可用区操作列的分配服务资源,选择自动分配,再连接服务资源。当终端节点可用区已有指定的服务资源时,选择自动分配会清除已经指定的服务资源。
手动分配资源:单击目标终端节点前的
图标,选择目标可用区操作列的分配服务资源,单击手动分配并选择已创建的服务资源,再连接服务资源。
API
调用DisableVpcEndpointZoneConnection断开终端节点可用区连接。
调用UpdateVpcEndpointZoneConnectionResourceAttribute为终端节点可用区分配服务资源:
配置
ResourceAllocateMode为Auto时,自动分配服务资源。配置
ResourceAllocateMode为Manual时,需指定ResourceId,手动分配服务资源。
调用EnableVpcEndpointZoneConnection允许终端节点可用区连接。
替换可用区的服务资源
仅当服务资源为 CLB 时,支持在终端节点连接未断开时,直接替换可用区服务资源。
控制台
在目标终端节点服务详情页的基本信息页签下服务资源区域,禁止目标服务资源自动分配。
选择以下两种方式替换目标终端节点连接的服务资源:
在目标终端节点服务详情页的基本信息页签下服务资源区域,单击目标服务资源的操作列的替换资源,选择替换后的服务资源与需替换服务资源的目标终端节点连接。
在目标终端节点服务详情页的终端节点连接页签,单击目标终端节点前的
图标,选择目标可用区操作列的替换服务资源。
替换服务资源的方式选择:建议选择平滑迁移。强制迁移可能造成业务流量中断,需谨慎评估。
平滑迁移:
系统先新建一个终端节点可用区的弹性网卡,将新弹性网卡与新的服务资源建立连接,并将新终端节点可用区弹性网卡的 IP 加入 DNS 解析。
系统自动将旧的终端节点可用区的弹性网卡的 IP 地址从 DNS 解析中删除。
用户需要自行判断存量业务全部删除后,在目标可用区的操作列单击断开旧服务资源,断开后旧的弹性网卡将彻底删除。
强制迁移:待迁移完成后,原有的服务资源将直接从终端节点服务中删除。强制迁移会中断所有依赖服务资源的业务连接,可能造成业务流量中断,请谨慎评估。
API
调用UpdateVpcEndpointZoneConnectionResourceAttribute替换终端节点可用区连接服务资源。
调整终端节点连接的带宽
通过为终端节点连接设置带宽限速,您可以对流量进行精确控制,从而防止后端服务资源过载。每个终端节点可用区的弹性网卡均会自动继承终端节点连接的限速值。
默认连接限速:针对所有连接到终端节点服务的接口终端节点,当终端节点连接处于可用状态时,终端节点服务提供默认限速能力。
当服务资源为 CLB 时:
默认终端节点连接的带宽为 3072 Mbps,取值范围为 100~10240 Mbps。
支持调整。调整不影响已建立终端节点连接的流量,仅对后续所有新建终端节点连接生效。
当服务资源为 NLB 和 ALB 时,不支持默认连接限速。
为特定的终端节点连接设置限速:可通过配置合适的带宽限速,防止服务资源过载。设置后,默认连接限速将不再对相应的终端节点连接生效。
开启限速:
当终端节点服务自动接受终端节点连接时,连接后可以开启限速。
当终端节点服务需要手动接受终端节点连接时,在允许接受终端节点连接时开启限速。
不同服务资源支持的限速范围:
NLB 和 ALB:最小限速 100 Mbps,最大限速 25Gbps。
CLB:最小限速 100 Mbps,最大限速 10240 Mbps。
控制台
调整默认限速:在目标终端节点服务详情页的基本信息页签,单击默认连接限速右侧的调整。
单独调整目标终端节点连接的带宽:在目标终端节点服务详情页的终端节点连接页签,在目标终端节点的操作列,可开启/调整/关闭限速。
API
调用UpdateVpcEndpointServiceAttribute配置
Bandwidth,修改终端节点服务的带宽。调用UpdateVpcEndpointConnectionAttribute配置
Bandwidth,调整终端节点连接的带宽。
停止提供终端节点服务
当决定不再提供服务时,服务提供方可删除终端节点服务。删除会永久中断所有与此服务关联的终端节点连接,且不可恢复,请谨慎操作。
控制台
删除前,需先拒绝并断开所有已连接的接口终端节点,并移除服务中的所有服务资源。
单击目标终端节点服务操作列的删除。
API
调用DisableVpcEndpointZoneConnection断开终端节点可用区连接。
调用DetachResourceFromVpcEndpointService移除终端节点服务中的服务资源。
调用DeleteVpcEndpointService删除终端节点服务。
常见问题
为什么服务使用方无法查询到已创建的终端节点服务?
请检查是否已将使用方的阿里云账号ID正确添加到了服务白名单中,只有白名单内的用户才能查询和连接到对应服务。
为什么连接状态一直是已断开?
请检查终端节点服务是否关闭了自动接受终端节点连接。如果关闭,需在终端节点连接页签,手动允许该连接请求。