通过PrivateLink跨VPC私网访问ALB

如果您需要将一个VPC内部署的ALB共享给同账号下的另一个VPC访问,您可以将ALB作为提供方VPC的服务资源,然后通过PrivateLink建立两个VPC之间的网络连接,来实现跨VPC私网访问ALB资源。

场景示例

本文以下图场景为例。某公司使用阿里云账号A在华东1(杭州)地域创建了VPC1VPC2,在VPC1中创建了ECS01ECS02实例,在VPC2中创建了ECS03ECS04实例并部署了不同的Nginx服务。现因业务发展,VPC1ECS实例需要通过私网访问VPC2ECS部署的服务。

您需要在VPC2中创建支持私网连接的ALB实例,该实例包含华东1(杭州)地域的可用区H和可用区I,然后创建后端服务器组RS1,将ECS03实例和ECS04实例添加到ALB的后端服务器组。创建终端节点服务,将ALB实例添加为服务资源。在VPC1中创建终端节点,创建成功后,终端节点与终端节点服务建立连接且状态正常时,VPC1ECS实例即可私网访问VPC2ECS部署的服务。

image

使用限制

  • 创建支持私网连接功能的ALB实例时,只支持创建IP模式为固定IP的私网ALB实例。

    ALB实例升级公告:自北京时间202522500:00:00起,阿里云应用型负载均衡ALB实例将进行升级,升级后,ALB实例不再区分IP模式。暂不支持2025225日后创建的ALB实例。

    自北京时间202522500:00:00(UTC+8)起,阿里云应用型负载均衡ALB实例将进行升级。升级后,ALB实例不再区分IP模式。需注意,2025225日后新创建的ALB实例暂不支持本场景中的相关操作。

  • 创建终端节点服务时,选择地域需要同时支持私网连接和ALB实例的地域。关于私网连接和ALB实例支持的地域,请参见私网连接支持的地域支持ALB的地域与可用区

  • 终端节点和终端节点服务需要部署在一个可用区内,且该可用区必须是ALB实例部署的可用区。

前提条件

  • 您已经在华东1(杭州)地域创建了VPC1VPC2,并且在VPC1中创建了一个位于可用区H和可用区I的交换机,在VPC2中创建了一个位于可用区H和可用区I的交换机。

  • 您已经在VPC1中创建了位于可用区HECS01和位于可用区IECS02,用于发送请求。在VPC2中创建了位于可用区HECS03和位于可用区IECS04,用于接收和处理请求,且ECS03ECS04部署了不同的Nginx服务。

    • 关于如何创建ECS实例,请参见自定义购买实例

    • 本文ECS03ECS04部署测试应用示例如下:

      ECS03服务部署命令

      yum install -y nginx
      systemctl start nginx.service
      cd /usr/share/nginx/html/
      echo "Hello World ! This is ECS03." > index.html

      ECS04服务部署命令

      yum install -y nginx
      systemctl start nginx.service
      cd /usr/share/nginx/html/
      echo "Hello World ! This is ECS04." > index.html
  • 您已经在VPC1创建安全组。您可以根据自己的实际业务和安全要求配置安全组规则。

    VPC2中使用的安全组是在创建ECS03ECS04时,阿里云为您创建的默认安全组。

本文中的2VPC网络规划如下表所示,在您规划网络时,选择的VPC1VPC2的网段可以重叠且互不影响。

属性

VPC1

VPC2

网络实例所属的地域

华东1(杭州)

华东1(杭州)

网络实例的网段规划

  • VPC网段:10.0.0.0/8

  • 交换机1网段:10.0.10.0/24

  • 交换机2网段:10.10.0.0/24

  • VPC网段:192.168.0.0/16

  • 交换机1网段:192.168.3.0/24

  • 交换机2网段:192.168.5.0/24

网络实例交换机的可用区

  • 交换机1位于可用区H

  • 交换机2位于可用区I

  • 交换机1位于可用区H

  • 交换机2位于可用区I

服务器IP地址

  • 可用区H下的ECS01 IP:10.0.10.3

  • 可用区I下的ECS02 IP:10.10.0.27

  • 可用区H下的ECS03 IP:192.168.3.190

  • 可用区I下的ECS04 IP:192.168.5.20

步骤一:创建支持私网连接功能的ALB实例

  1. 登录应用型负载均衡ALB控制台

  2. 实例页面,单击创建应用型负载均衡

  3. 应用型负载均衡(按量付费)购买页面,根据以下信息配置支持私网连接的ALB实例,然后单击立即购买

    配置

    说明

    地域

    选择实例所属的地域。本文选择华东1(杭州)

    实例网络类型

    选择实例的网络类型。本文选择私网

    VPC

    选择实例所属的VPC。本文选择VPC2。

    可用区

    实例所在的可用区,需要选择至少2个可用区。本文选择杭州 可用区H以及可用区H下的交换机、杭州 可用区I以及可用区I下的交换机。

    协议版本

    选择实例的协议版本。本文选择IPv4

    功能版本(实例费)

    选择实例的功能版本。本文选择基础版

    实例名称

    自定义实例名称。

    资源组

    选择ALB所属的资源组。本文选择默认资源组

步骤二:创建ALB的后端服务器组

  1. 在左侧导航栏,选择应用型负载均衡ALB > 服务器组

  2. 服务器组页面,单击创建服务器组

  3. 创建服务器组对话框,根据以下信息配置相关参数。

    配置

    说明

    服务器组类型

    选择服务器组的类型。本文选择服务器类型

    服务器组名称

    自定义服务器组的名称。本文输入RS1

    VPC

    选择后端服务器组所属的VPC。本文选择VPC2。

    选择后端协议

    选择一种后端类型。本文选择HTTP

    选择调度算法

    选择一种调度算法。本文选择加权轮询

    选择资源组

    选择云资源所属的资源组。

  4. 创建完成后,找到目标后端服务器组RS1,单击目标服务器组ID。

  5. 单击后端服务器页签,然后单击添加后端服务器

  6. 添加后端服务器面板,选择已创建的ECS03实例和ECS04实例,单击下一步

  7. 设置已添加的ECS03实例和ECS04实例的端口和权重,本文端口设置为80,权重保持默认值100

步骤三:配置监听

  1. 在左侧导航栏,选择应用型负载均衡ALB > 实例,单击实例ID。

  2. 单击监听页签,然后单击创建监听

  3. 配置监听配置向导,完成以下配置,然后单击下一步

    配置

    说明

    选择负载均衡协议

    选择监听的协议类型。本文选择HTTP

    监听端口

    用来接收和处理请求的监听端口。本文输入80

    监听名称

    输入自定义监听的名称。

    高级配置

    单击修改进行配置。本文保持默认值。

  4. 选择服务器组配置向导,选择步骤二中创建的后端服务器组RS1,然后单击下一步

  5. 配置审核配置向导,确认监听配置信息,然后单击提交

  6. 负载均衡业务配置向导对话框,单击知道了,然后返回实例管理页面。

    当监听的健康检查状态为正常时,表示后端服务器ECS03ECS04可以正常处理ALB实例转发的请求了。ALB

步骤四:创建终端节点服务

  1. 登录终端节点服务控制台

  2. 在顶部菜单栏,选择要创建终端节点服务的地域。本文选择华东1(杭州)

  3. 终端节点服务页面,单击创建终端节点服务

  4. 创建终端节点服务页面,根据以下信息配置终端节点服务

    参数

    描述

    服务资源类型

    终端节点服务下的服务资源的类型。本文选择应用型负载均衡ALB

    选择服务资源

    选择服务资源的可用区及可用区下的服务资源。

    本文可用区选择杭州 可用区H杭州 可用区I ,可用区H和可用区I的服务资源选择步骤一中创建的支持私网连接的ALB实例。

    自动接受终端节点连接

    选择是否自动接受终端节点的连接请求。本文选择

    是否支持同可用区优先

    本文选择,表示连接服务的终端节点域名不支持就近解析。

    资源组

    选择终端节点服务所在资源组。

步骤五:创建终端节点

  1. 登录终端节点控制台

  2. 在顶部菜单栏,选择要创建终端节点的地域。本文选择华东1(杭州)

  3. 终端节点页面,单击接口终端节点页签,然后单击创建终端节点

  4. 创建终端节点页面,根据以下信息配置终端节点

    参数

    描述

    节点名称

    自定义终端节点的名称。

    终端节点类型

    终端节点选择的节点类型。本文选择接口终端节点

    终端节点服务

    选择目标终端节点服务。

    本文先单击选择可用服务,然后选择步骤四创建的终端节点服务。

    专有网络

    选择终端节点所属的专有网络。本文选择VPC1。

    安全组

    选择要与终端节点网卡关联的安全组。安全组可以管控VPC1到终端节点网卡的数据通信。

    确保安全组内的规则开放了客户端对终端节点网卡的访问。

    可用区与交换机

    选择终端节点服务对应的可用区,然后选择该可用区内的交换机,系统会自动在该交换机下创建一个终端节点网卡。

    本文可用区选择杭州 可用区H杭州 可用区I并选择可用区内的交换机。

    资源组

    选择终端节点所在资源组。

步骤六:接受连接请求

终端节点发送连接请求后,终端节点服务需要接受终端节点的连接请求。接受后,VPC1才能通过终端节点访问终端节点服务。

如果您在步骤四创建终端节点服务时设置自动接受连接请求,请忽略此步骤。
  1. 在左侧导航栏,单击终端节点服务

  2. 在顶部菜单栏处,选择终端节点服务的地域。本文选择华东1(杭州)

  3. 终端节点服务页面,找到步骤四创建的终端节点服务,单击终端节点服务的实例ID。

  4. 在终端节点服务详情页面,单击终端节点连接页签,找到目标终端节点,在操作列单击允许

接受终端节点连接的连接请求后,终端节点连接的状态由已断开变为已连接,表示终端节点服务可以处理终端节点发送的请求了。

步骤七:测试连通性

完成上述操作后,VPC1VPC2之间已经可以实现私网通信,本文以下面内容为例,为您展示如何测试VPC1VPC2之间的连通性。

  1. 远程登录VPC1中的ECS01ECS02实例。

    本文以 Alibaba Cloud Linux 操作系统为例。
  2. 登录VPC1中的ECS实例之后,您有以下两种方式测试VPC之间的连通性。

    • 通过终端节点服务域名访问VPC2中部署的服务。该域名支持自动切换可用区,提供高可用,当某一个可用区出现故障时,流量也能通过正常的可用区转发。

      1. 在终端节点详情页,查看生成的终端节点服务域名。

        image

      2. 执行curl命令,测试连通性。

        image

    • 指定可用区域名或IP访问VPC2中部署的服务。

      1. 在终端节点详情页,单击可用区与网卡页签,查看生成的可用区域名和IP地址。

        image

      2. 执行curl命令,测试连通性。

        image

相关文档