全部产品

使用VPC内资源作为API的后端服务

更新时间:2020-08-19 15:04:06

可作为API网关后端服务的VPC内资源主要包括ECS以及SLB,本文主要讲述如何创建一个高可用的后端服务。

概述

使用阿里云专有网络VPC,可以构建出一个隔离的网络环境,并可以自定义IP地址范围、网段、路由表和网关等。API网关也支持您部署在专属网络VPC中的服务开放API。若您的后端服务在VPC环境,需要进行授权API网关访问才可开放相应API。

1.授权与绑定VPC

开放VPC环境的API,需要您先授权API网关可访问您VPC内的服务。授权时需指定API网关可以访问的资源+端口,如:SLB 的443端口、ECS 的80端口。

  • 授权成功后,API网关将通过内网访问VPC内部资源。

  • 此授权只会被用作API网关访问相应后端资源。

  • API网关不可访问未被授权的资源或者端口。例如:只将VPC 中SLB 的80端口授权给API网关,那么API网关只能访问VPC 中SLB 的80端口。

可用作API网关后端服务的VPC内资源包括SLB实例以及ECS实例:

  • ECS实例:创建授权时支持绑定VPC网络的ECS实例,实例id及地址处可填写ECS实例的实例ID,也可以填写ECS实例的私网IP。

  • SLB实例:目前API网关仅支持绑定内网SLB实例,实例ID及地址处可填写SLB实例的实例ID或是实例私网IP。

2.构建高可用架构

为了构建高可用架构,建议您可以选择内网SLB作为API网关的后端服务,负载均衡可以将访问流量根据转发策略分发到后端多个ECS实例,既能提高整个系统的性能,又能提高应用的高可用。

1

2.1 准备VPC环境

购买VPC环境的SLB及ECS,并搭建服务,本示例SLB监听的是ECS的80端口,ECS中部署的是简单的NGINX环境。

SLB的实例使用的是内网实例,实例详情请看下图。

1

2.2 创建VPC授权

进入【API网关控制台】-【开放API】-【VPC授权】 ,点击“创建授权”。进入授权页面,填写相应信息

VPC名称:为此条授权的名称标识,供创建API时选择后端地址使用,所以为了便于后续管理,请保证此名称的唯一。

1

2.3 创建API

创建API的流程与其他类型API方式一致,创建API分组以及定义API可参考创建API

创建应用以及授权可参考创建后端服务为VPC内资源的API

2.4 测试API

可以到通过以下方式测试您的API

2.5 安全

API网关通过内网调用VPC内资源的后端服务,如您有更高的安全要求,或是您的内网SLB中已经配置了黑白名单,您需要在白名单中放行API网关的出口地址。SLB黑白名单设置请参考负载均衡访问控制

ECS实例若设置了安全组,则需要在安全组中放行API网关的出口地址,ECS添加安全组规则请参考添加安全组规则

API网关的出口地址获取详见创建后端服务为VPC内资源的API

常见问题

1、是否支持公网SLB?

不支持,如您的API网关想要使用内网调用SLB,那么只支持绑定内网SLB;如您需要通过公网调用SLB,您可以创建后端服务为HTTP(S)的API来调用。

2、是否可以绑定多个VPC?

可以,若您的后端服务在多个VPC,可以添加多个授权。

3、为什么我无法授权我的VPC?

请确认VPCID、实例ID和端口号的正确,并保证授权策略和VPC在同一个区域。

4、授权API网关后,我的VPC安全么?

  • 只有授权后,API网关才可调用

  • 授权后,只有您授权过的API网关可以调用

  • 您还可以在后端ECS和SLB实例中设置访问控制

5、API网关是否支持跨地域的VPC?

支持,使用cen打通网络之后就行,关于CEN的配置方式,请详见 云企业网帮助文档