全部產品
Search
文件中心

API Gateway:使用VPC內資源作為API的後端服務

更新時間:Jul 13, 2024

可作為API Gateway後端服務的VPC內資源主要包括ECS以及CLB,本文主要講述如何建立一個高可用的後端服務。

概述

使用阿里雲Virtual Private Cloud,可以構建出一個隔離的網路環境,並可以自訂IP位址範圍、網段、路由表和網關等。API Gateway也支援您部署在專屬網路VPC中的服務開放API。若您的後端服務在VPC環境,需要進行授權API Gateway訪問才可開放相應API。

1.授權與綁定VPC

開放VPC環境的API,需要您先授權API Gateway可訪問您VPC內的服務。授權時需指定API Gateway可以訪問的資源+連接埠,如:CLB 的443連接埠、ECS 的80連接埠。

  • 授權成功後,API Gateway將通過內網訪問VPC內部資源。

  • 此授權只會被用作API Gateway訪問相應後端資源。

  • API Gateway不可訪問未被授權的資源或者連接埠。例如:只將VPC 中CLB 的80連接埠授權給API Gateway,那麼API Gateway只能訪問VPC 中CLB 的80連接埠。

可用作API Gateway後端服務的VPC內資源套件括CLB執行個體以及ECS執行個體:

  • ECS執行個體:建立授權時支援綁定VPC網路的ECS執行個體,執行個體ID及地址處可填寫ECS執行個體的執行個體ID,也可以填寫ECS執行個體的私網IP。

  • CLB執行個體:目前API Gateway僅支援綁定內網CLB執行個體,執行個體ID及地址處可填寫CLB執行個體的執行個體ID或是執行個體私網IP。

2.構建高可用架構

為了構建高可用架構,建議您可以選擇內網CLB作為API Gateway的後端服務,負載平衡可以將訪問流量根據轉寄策略分發到後端多個ECS執行個體,既能提高整個系統的效能,又能提高應用的高可用。

2.1 準備VPC環境

購買VPC環境的CLB及ECS,並搭建服務,本樣本CLB監聽的是ECS的80連接埠,ECS中部署的是簡單的NGINX環境。CLB需使用內網執行個體。

2.2 建立VPC授權

進入API Gateway控制台-API管理-VPC授權 ,點擊建立授權。進入授權頁面,輸入VPC授權名稱;然後輸入VPCId、執行個體ID或執行個體的私網地址 ,以及服務連接埠號碼。若需要指定網域名稱來訪問CLB或ECS上的網站(vhost),可將網域名稱配置到Host。

說明

VPC名稱:為此條授權的名稱標識,供建立API時選擇後端地址使用,所以為了便於後續管理,請保證此名稱的唯一。

2.3 建立API

建立API的流程與其他類型API方式一致,建立API分組以及定義API可參考建立 API

建立應用以及授權可參考建立後端服務為VPC內資源的API

2.4 測試API

可以通過以下方式測試您的API

2.5 安全

API Gateway通過內網調用VPC內資源的後端服務,如您有更高的安全要求,或是您的內網CLB中已經配置了黑白名單,您需要在白名單中允許存取API Gateway的出口地址。CLB黑白名單設定請參考負載平衡存取控制

ECS執行個體若設定了安全性群組,則需要在安全性群組中允許存取API Gateway的出口地址,ECS添加安全性群組規則請參考添加安全性群組規則

API Gateway的出口地址擷取詳見建立後端服務為VPC內資源的API

常見問題

1、是否支援公網CLB?

不支援,如您的API Gateway想要使用內網調用CLB,那麼只支援綁定內網CLB;如您需要通過公網調用CLB,您可以建立後端服務為HTTP(S)的API來調用。

2、是否可以綁定多個VPC?

可以,若您的後端服務在多個VPC,可以添加多個授權。

3、為什麼我無法授權我的VPC?

請確認VPCID、執行個體ID和連接埠號碼的正確,並保證授權策略和VPC在同一個地區。

4、授權API Gateway後,我的VPC安全嗎?

  • 只有授權後,API Gateway才可調用

  • 授權後,只有您授權過的API Gateway可以調用

  • 您還可以在後端ECS和CLB執行個體中設定存取控制

5、API Gateway是否支援跨地區的VPC?

支援,使用cen打通網路之後就行,關於CEN的配置方式,詳情見 什麼是雲企業網