本文介绍了如何结合云企业网(CEN),构建跨Region的集中式API管理方案。同时您也可以参考本例中的步骤,结合CEN能力,构建在VPC间、VPC与本地数据中心间的集中式API管理,从而实现全网资源都可以发布在API网关、并通过API网关进行调用。
1 概述
API网关默认只能和同Region的VPC相互连通。本文就下图这种跨Region的场景做示范,讲述如何进行跨Region VPC的API统一管理。

本例中的API网关为创建在上海Region的API网关专享实例,对4个VPC内不同的API访问请求进行管理。ecs-2、ecs-3和ecs-4三个实例为API的后端服务,同时ecs-1、ecs-3和ecs-4三个实例也会调用架构中其他ecs上的API。本例会验证三个API调用路径,即图中的A路径(黑色)、B路径(红色)和C路径(蓝色)。
由于API网关是托管型的产品,因此需要在上海Region创建一个VPC(本例中为vpc-api-access)用于和张家口Region中的VPC进行互访,从网络上的访问关系如下图所示。

主要配置过程如下:
- 配置云企业网,在网络层保证API网关和各个VPC连通性;
- 添加API网关到VPC的访问权限,从而API网关可以访问到VPC内的后端服务;
- 配置API并发布;
- 添加VPC到API网关的访问权限,使得在内网需要调用API的ECS实例可以访问到API网关。
2 准备工作
参考上一章节的架构图,分别创建VPC、ECS和API网关实例,完成后的架构信息如下:

说明:
- ecs-2,ecs-3,ecs-4 三个ECS实例做为服务的后端,提供了http服务接口可对外访问;
- API网关为上海Region下的专享实例;
- 配置ECS实例的安全组。需要以上(ecs-2,ecs-3,ecs-4)的安全组打开服务端口的访问权限。本例中做为API后端服务的ecs上提供的http服务地址为 http://localhost:8080/web/cloudapi 。那需要安全组的内网入方向打开8080端口的访问权限,对应的IP最小范围需要是API网关专享实例内网VPC出口地址,在专享实例管理页面查看。安全组如下图所示。

3 配置云企业网
本阶段创建一个云企业网(CEN),打通上海VPC(vpc-api-access)和张家口的VPC,使得张家口的VPC能和上海的API网关实现内网互通。关于CEN的更多配置方式,请详见 云企业网帮助文档 。
步骤1: 创建云企业网实例
先通过云企业网控制台 创建一个云企业网实例,如下图。

多次加载网络实例,将vpc-api-access,vpc-backend-2 和 vpc-backend3 都添加到云企业网中,完成后如下图所示。

步骤2:配置带宽
购买一个带宽包,作为云企业网内通信需要。本例购买了一个最低的2M的带宽,您可以根据实际需要按需购买。

配置跨地域带宽设置,指定的互通地域配置带宽值,还可以将1个带宽包拆分到多个互通地域中。

步骤3:配置跨VPC路由
本步骤需要给CEN团队提工单。注意按照 ResolveAndRouteServiceInCen 接口的参数说明,提供配置信息。打通API网关通过内网访问到张家口的服务。
AccessRegionIds.1=cn-zhangjiakou
AccessRegionIds.2=cn-shanghai
CenId=cen-uggzcthgz7cwsl7prr #云企业网的实例ID
Host=100.104.255.128/26 #通过API网关专享实例内网VPC出口地址
HostRegionId=cn-shanghai
HostVpcId=vpc-uf65amr4k3aepd0u4gnxa #API网关在上海region,这个是vpc-api-access的VPCID
其中API网关专享实例接入内网VPC的出口地址,可以在实例管理中查询到,如下图所示

工单回复配置完成后,在云企业网控制台查看配置的路由,能看到上海和张家口region都加了一些路由策略。而且都有一条自定义路由,是根据上面提供的信息添加的。


4 配置API网关到VPC的访问权限
步骤4 : 创建VPC授权
ecs-2等三个ECS实例本例中为API后端服务,因此在配置API之前,需要先创建API网关访问vpc-backend-1、vpc-backend-2和vpc-backend-3等3个VPC的访问授权。在API网关控制台添加VPC授权,如下图所示。

注意:张家口的服务,vpcId需要填写 vpc-api-access的vpc id,”实例ID/IP“ 需要填写张家口对应提供服务的ecs的内网IP,端口填写服务端口。
5 配置API
步骤5:创建API分组
先创建一个分组,实例选择刚刚之前创建的VPC专享实例。
步骤6:创建API并发布
在刚刚创建的分组下创建3个API,后端配置分别选择3个不同的VPC授权,对应3个不同的后端地址。其中为了方便进行curl调用测试,本例选择了“无认证”方式。



API保存完后,需要进行发布,本例为了测试方便,发布到“线上”环境。
最终发布了三个API,对应关系为:
- /test/api/backend1,对应ecs-2上的API
- /test/api/backend2,对应ecs-3上的API
- /test/api/backend3,对应ecs-4上的API
6 配置VPC到API网关的内网访问权限
API网关的专享实例默认没有开通VPC访问,需要用户自己打开。
步骤7: 开通专享实例的入访VPC
在专享实例页面。点击“入访VPC”后的选择VPC,选择vpc-api-access的vpc id,表示可以通过vpc-api-access内网访问到API网关。

步骤8:开通API分组的内网域名
在分组详情页面,开通内网二级域名,点击开通后,API网关会给分组分配一个内网VPC二级域名。该域名可以直接调用该分组下的API。

注意:API分组默认开通互联网访问,您可以根据业务情况通过关闭公网二级域名来停止互联网访问,但注意禁止后,将不能通过API网关控制台进行在线调试。
7 内网访问测试
- 验证A路径(黑色)的访问
A路径ecs-1访问ecs-3上的API,因此在ecs-1上用curl访问的结果如下图所示。

- 验证B路径(红色)的访问
B路径ecs-4访问ecs-2上的API,因此在ecs-4上用curl访问的结果如下图所示。

- 验证C路径(蓝色)的访问
C路径ecs-3访问ecs-4上的API,因此在ecs-3上用curl访问的结果如下图所示。

8 使用限制
- 仅限API网关专享实例。
在文档使用中是否遇到以下问题
更多建议
匿名提交