如果您需要将一个VPC内部署的ALB共享给同账号下的另一个VPC访问,您可以将ALB作为提供方VPC的服务资源,然后通过PrivateLink建立两个VPC之间的网络连接,来实现跨VPC私网访问ALB资源。
背景信息
VPC是您独自拥有的云上私有网络,不同VPC之间完全隔离。您可以通过私网连接建立VPC与阿里云服务之间安全稳定的私有连接,简化网络架构,避免通过公网访问服务带来的潜在安全风险。
通过私网连接实现私网访问,您需要创建终端节点服务和终端节点。
终端节点服务
终端节点服务可以与其他VPC的终端节点建立私网连接服务,由服务提供方创建和管理。
终端节点
终端节点可以与终端节点服务相关联,以建立通过VPC私网访问外部服务的网络连接。终端节点由服务使用方创建和管理。
相关主体 | 相关组件 |
服务提供方 | 创建和管理终端节点服务。 |
服务使用方 | 创建和管理终端节点。 |
ALB是支持多可用区的服务资源,具备超强弹性及大规模应用层流量处理能力,同时提供基于内容的高级路由特性。使用ALB作为终端节点服务的服务资源时,可以配置一个为多个可用区提供服务的ALB服务资源,不需要为每个可用区配置单独的ALB服务资源。更多信息,请参见什么是应用型负载均衡ALB。
场景示例
本文以下图场景为例。某公司使用阿里云账号A在华东1(杭州)地域创建了VPC1和VPC2,在VPC1中创建了ECS01和ECS02实例,在VPC2中创建了ECS03和ECS04实例并部署了不同的Nginx服务。现因业务发展,VPC1的ECS实例需要通过私网访问VPC2中ECS部署的服务。
您需要在VPC2中创建支持私网连接的ALB实例,该实例包含华东1(杭州)地域的可用区H和可用区I,然后创建后端服务器组RS1,将ECS03实例和ECS04实例添加到ALB的后端服务器组。创建终端节点服务,将ALB实例添加为服务资源。在VPC1中创建终端节点,创建成功后,终端节点与终端节点服务建立连接且状态正常时,VPC1的ECS实例即可私网访问VPC2中ECS部署的服务。
使用限制
创建支持私网连接功能的ALB实例时,只支持创建IP模式为固定IP的私网ALB实例。
创建终端节点服务时,选择地域需要同时支持私网连接和ALB实例的地域。关于私网连接和ALB实例支持的地域,请参见私网连接支持的地域和支持ALB的地域与可用区。
终端节点和终端节点服务需要部署在一个可用区内,且该可用区必须是ALB实例部署的可用区。
前提条件
您已经在华东1(杭州)地域创建了VPC1和VPC2,并且在VPC1中创建了一个位于可用区H和可用区I的交换机,在VPC2中创建了一个位于可用区H和可用区I的交换机。具体操作,请参见创建专有网络和交换机。
您已经在VPC1中创建了位于可用区H的ECS01和位于可用区I的ECS02,用于发送请求。在VPC2中创建了位于可用区H的ECS03和位于可用区I的ECS04,用于接收和处理请求,且ECS03和ECS04部署了不同的Nginx服务。
关于如何创建ECS实例,请参见自定义购买实例
本文ECS03与ECS04部署测试应用示例如下:
您已经在VPC1创建了安全组。您可以根据自己的实际业务和安全要求配置安全组规则。
具体操作,请参见创建安全组。
说明VPC2中使用的安全组是在创建ECS03和ECS04时,阿里云为您创建的默认安全组。
本文中的2个VPC网络规划如下表所示,在您规划网络时,选择的VPC1和VPC2的网段可以重叠且互不影响。
属性 | VPC1 | VPC2 |
网络实例所属的地域 | 华东1(杭州) | 华东1(杭州) |
网络实例的网段规划 |
|
|
网络实例交换机的可用区 |
|
|
服务器IP地址 |
|
|
配置流程
步骤一:创建支持私网连接功能的ALB实例
在实例页面,单击创建应用型负载均衡。
在应用型负载均衡(按量付费)购买页面,根据以下信息配置支持私网连接的ALB实例,然后单击立即购买。
配置
说明
地域
选择实例所属的地域。本文选择华东1(杭州)。
实例网络类型
选择实例的网络类型。本文只支持选择私网。
VPC
选择实例所属的VPC。本文选择VPC2。
可用区
实例所在的可用区,需要选择至少2个可用区。本文选择杭州 可用区H以及可用区H下的交换机、杭州 可用区I以及可用区I下的交换机。
IP模式
选择实例的IP地址模式。本文只支持选择固定IP。
协议版本
选择实例的协议版本。本文选择IPv4。
IPv4:表示ALB实例仅支持客户端使用IPv4地址访问。
双栈:表示ALB实例支持客户端同时使用IPv4和IPv6地址访问。
功能版本(实例费)
选择实例的功能版本。本文选择基础版。
实例名称
自定义实例名称。
资源组
选择ALB所属的资源组。本文选择默认资源组。
步骤二:创建ALB的后端服务器组
在左侧导航栏,选择 。
在服务器组页面,单击创建服务器组。
在创建服务器组对话框,根据以下信息配置相关参数,然后单击创建。
此处仅列举和本文强相关的配置。关于其余参数的配置,请参见创建和管理服务器组。
配置
说明
服务器组类型
选择服务器组的类型。本文选择服务器类型。
服务器组名称
自定义服务器组的名称。本文输入RS1。
VPC
选择后端服务器组所属的VPC。本文选择VPC2。
选择后端协议
选择一种后端类型。本文选择HTTP。
选择调度算法
选择一种调度算法。本文选择加权轮询。
选择资源组
选择云资源所属的资源组。
创建完成后,找到目标后端服务器组RS1,单击目标服务器组ID。
单击后端服务器页签,然后单击添加后端服务器。
在添加后端服务器面板,选择已创建的ECS03实例和ECS04实例,单击下一步。
设置已添加的ECS03实例和ECS04实例的端口和权重,本文端口设置为80,权重保持默认值100,单击确定。
步骤三:配置监听
在左侧导航栏,选择 ,单击实例ID。
单击监听页签,然后单击创建监听。
在配置监听配置向导,完成以下配置,然后单击下一步。
此处仅列举和本文强相关的配置。关于其余参数的配置,请参见添加HTTP监听。
配置
说明
选择负载均衡协议
选择监听的协议类型。本文选择HTTP。
监听端口
用来接收和处理请求的监听端口。本文输入80。
监听名称
输入自定义监听的名称。
高级配置
单击修改进行配置。本文保持默认值。
在选择服务器组配置向导,选择步骤二中创建的后端服务器组RS1,然后单击下一步。
在配置审核配置向导,确认监听配置信息,然后单击提交。
在负载均衡业务配置向导对话框,单击知道了,然后返回实例管理页面。
当监听的健康检查状态为正常时,表示后端服务器ECS03和ECS04可以正常处理ALB实例转发的请求了。
步骤四:创建终端节点服务
登录终端节点服务控制台。
在顶部菜单栏,选择要创建终端节点服务的地域。本文选择华东1(杭州)。
在终端节点服务页面,单击创建终端节点服务。
在创建终端节点服务页面,根据以下信息配置终端节点服务,然后单击确定创建。
此处仅列举和本文强相关的配置。关于其余参数的配置,请参见创建终端节点服务。
参数
描述
服务资源类型
终端节点服务下的服务资源的类型。本文选择应用负载均衡ALB。
选择服务资源
选择服务资源的可用区及可用区下的服务资源。
本文可用区选择杭州 可用区H,杭州 可用区I ,可用区H和可用区I的服务资源选择步骤一中创建的支持私网连接的ALB实例。
自动接受终端节点连接
选择是否自动接受终端节点的连接请求。本文选择否。
是否支持同可用区优先
本文选择否,表示连接服务的终端节点域名不支持就近解析。
资源组
选择终端节点服务所在资源组。
创建完终端节点服务后,您可以看到一个服务资源类型为ALB的终端节点服务。
步骤五:创建终端节点
登录终端节点控制台。
在顶部菜单栏,选择要创建终端节点的地域。本文选择华东1(杭州)。
在终端节点页面,单击接口终端节点页签,然后单击创建终端节点。
在创建终端节点页面,根据以下信息配置终端节点,然后单击确定创建。
此处仅列举和本文强相关的配置。关于其余参数的配置,请参见创建终端节点。
参数
描述
节点名称
自定义终端节点的名称。
终端节点类型
终端节点选择的节点类型。本文选择接口终端节点。
终端节点服务
选择目标终端节点服务。
本文先单击选择可用服务,然后选择步骤四创建的终端节点服务。
专有网络
选择终端节点所属的专有网络。本文选择VPC1。
安全组
选择要与终端节点网卡关联的安全组。安全组可以管控VPC1到终端节点网卡的数据通信。
说明确保安全组内的规则开放了客户端对终端节点网卡的访问。
一个终端节点默认最多支持添加5个安全组。
可用区与交换机
选择终端节点服务对应的可用区,然后选择该可用区内的交换机,系统会自动在该交换机下创建一个终端节点网卡。
本文可用区选择杭州 可用区H、杭州 可用区I并选择可用区内的交换机。
资源组
选择终端节点所在资源组。
创建完终端节点后,您可以看到生成的终端节点可用区的域名和IP。
步骤六:接受连接请求
终端节点发送连接请求后,终端节点服务需要接受终端节点的连接请求。接受后,VPC1才能通过终端节点访问终端节点服务。
如果您在步骤四创建终端节点服务时设置自动接受连接请求,请忽略此步骤。
在左侧导航栏,单击终端节点服务。
在顶部菜单栏处,选择终端节点服务的地域。本文选择华东1(杭州)。
在终端节点服务页面,找到步骤四创建的终端节点服务,单击终端节点服务的实例ID。
在终端节点服务详情页面,单击终端节点连接页签,找到目标终端节点,在操作列单击允许。
在允许连接对话框,单击确定。
接受终端节点连接的连接请求后,终端节点连接的状态由已断开变为已连接,表示终端节点服务可以处理终端节点发送的请求了。您可以通过步骤五生成的终端节点可用区的域名或者IP访问终端节点服务。
步骤七:测试连通性
完成上述操作后,VPC1和VPC2之间已经可以实现私网通信,本文以下面内容为例,为您展示如何测试VPC1与VPC2之间的连通性。
本文中ECS实例安装了Alibaba Cloud Linux操作系统,如果您使用的是其他操作系统,如何测试VPC1和VPC2之间的连通性请参见您的操作系统手册。
本文终端节点服务和终端节点均添加了2个可用区,支持高可用,您可通过生成的终端节点服务域名访问服务。
远程登录VPC1中的ECS01和ECS02实例。具体操作,请参见ECS远程连接操作指南。
登录VPC1中的ECS实例之后,您有以下两种方式测试VPC之间的连通性。
通过终端节点服务域名访问VPC2中部署的服务。该域名能在PrivateLink可用区之间做轮询,并进行健康检查提供高可用,当某一个可用区出现故障时,流量也能通过正常的可用区转发。
在终端节点详情页,查看生成的终端节点服务域名。
执行
curl
命令,测试连通性。
指定可用区域名或IP访问VPC2中部署的服务。
在终端节点详情页,单击可用区与网卡页签,查看生成的可用区域名和IP地址。
执行
curl
命令,测试连通性。
相关文档
CreateVpcEndpoint:创建终端节点。
CreateVpcEndpointService:创建终端节点服务。
AttachResourceToVpcEndpointService:为终端节点添加服务资源。
EnableVpcEndpointConnection:接受终端节点连接请求。