可作為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的配置方式,詳情見 什麼是雲企業網