通過本文,您可以瞭解與Serverless 應用引擎 SAE(Serverless App Engine)網路相關的概念,以及面對不同的網路訪問需求時如何選擇適配的網路類型。
概念和能力索引
一級分類 | 二級分類 |
無 | |
阿里雲網路基礎概念

Virtual Private Cloud:基於阿里雲建立的自訂私人網路,不同的專用網路之間在邏輯上徹底隔離。
說明私人網路預設不可訪問公網。
交換器(vSwitch):交換器是組成專用網路的基礎網路裝置,對應實體物理機房。在VPC內建立雲資源時,必須指定雲資源所串連的交換器。
Elastic IP Address(EIP):只能和一個資源(ECS、SAE執行個體等)綁定,綁定的資源具備出、入公網的能力。
NAT Gateway(NAT Gateway):支援VPC內的資源訪問公網(SNAT)。區別於EIP的核心功能,公網NAT Gateway可用於VPC內的所有資源,而EIP只能用於VPC內的一個資源。
SAE網路訪問主要情境與方式
將應用部署到SAE後,您可能會遇到以下網路訪問需求。概念圖如下所示。
SAE應用之間的內網互相訪問(非微服務)
Serverless模式下,每次部署都會產生新的內網IP,但不支援直接基於執行個體的IP來互相訪問應用。您可以通過以下方式實現。
SAE Service(CLB):基於阿里雲負載平衡產品(私網CLB)實現的SAE服務來訪問。更多資訊,請參見基於CLB配置應用服務訪問。
SAE ServiceName:基於SAE的K8s底座,實現的基於網域名稱的應用訪問。每個SAE的應用會有一個SAE環境中可供訪問的網域名稱。更多資訊,請參見基於K8s ServiceName配置應用服務訪問。
SAE Ingress(ALB/CLB):基於阿里雲負載平衡產品(私網ALB/CLB)實現的網關路由,可以根據不同的網域名稱、路徑路由到不同的SAE應用。更多資訊,請參見基於ALB/CLB配置網關路由(Ingress)訪問。
SAE應用需要被公網訪問(入口流量)
您可以通過以下方式實現。
SAE Service(CLB):基於阿里雲負載平衡產品(公網CLB)實現的SAE服務訪問。更多資訊,請參見基於CLB配置應用服務訪問。
SAE Ingress(ALB/CLB):基於阿里雲負載平衡產品(公網CLB/ALB)實現的網關路由,可以根據不同的網域名稱、路徑路由到不同的SAE應用。更多資訊,請參見基於ALB/CLB配置網關路由(Ingress)訪問。
SAE EIP:為SAE應用的每個執行個體綁定一個EIP,使該執行個體能夠同時具備出、入公網的能力。更多資訊,請參見基於EIP配置SAE執行個體公網訪問和訪問公網的能力。
SAE應用需要訪問公網(出口流量)
您可以通過以下方式實現。
NAT Gateway:為SAE應用關聯的VPC或者vSwitch配置NAT Gateway,則所有相關的SAE應用都具備了訪問公網的能力。更多資訊,請參見配置NAT Gateway使SAE應用能訪問公網。
SAE EIP:為SAE應用的每個執行個體綁定一個EIP,則該執行個體會同時具備出、入公網的能力。更多資訊,請參見基於EIP配置SAE執行個體公網訪問和訪問公網的能力。
SAE需要訪問VPC內的ECS、RDS、Redis等
SAE基於阿里雲VPC網路,因此無需額外配置,可以直接存取同一VPC內的資源(ECS、RDS、Redis等)。反之,同一VPC內的阿里雲資源也可以訪問SAE。
需要確認安全性群組、產品白名單是否放開。如果遇到問題,請參考常見問題的步驟進行排查。
微服務應用訪問註冊中心以及執行個體互相訪問
更多資訊,請參見SAE微服務相關概念和能力。
SAE網路訪問對比項
SAE中ServiceName和網關路由(Ingress)的區別
SAE基於阿里雲SLB(CLB和ALB)實現的網關路由(Ingress),具備根據網域名稱、路徑路由到不同應用的能力(如下圖),而ServiceName不具備該能力。因此,在滿足需求的前提下,建議您優先考慮使用網關路由。在需要使用4層TCP協議訪問或者無法通過網域名稱訪問等情境下,您可以考慮使用ServiceName。
更多資訊,請參見以下文檔:
基於CLB實現的服務和基於網域名稱(ServiceName)實現的服務的區別
K8s服務有兩種模式,一種是基於CLB,另一種是基於ClusterIP。SAE沒有直接提供ClusterIP,而是提供了一個可供訪問的網域名稱。兩者的主要區別如下。
對比項 | CLB | Domain(ClusterIP) |
費用 | 免費 | |
營運 | CLB作為一個獨立的阿里雲產品,支援配置相關的監控、警示以及收集訪問日誌到SLS,提供細粒度的問題排查能力。 | 未提供獨立的監控、警示、訪問日誌等能力,需要應用側本身配置警示和日誌。 |
基於ALB實現的網關路由和CLB網關路由的區別
ALB(Application Load Balancer)是阿里雲推出的專門面向HTTP、HTTPS和QUIC等應用程式層負載情境的負載平衡服務。針對網關路由情境,建議您優先考慮使用ALB。更多資訊,請參見Server Load Balancer產品家族介紹。
基於NAT訪問公網和EIP訪問公網的區別
EIP訪問公網的樣本圖如下,每個執行個體都會綁定一個EIP。如果EIP不足,則會建立失敗,導致執行個體無法對外提供服務。
NAT和EIP兩種模式的主要差異如下。
對比項 | NAT | EIP |
生效範圍 | NAT可以控制在VPC或者vSwitch層級,為VPC或者vSwitch內所有無公網IP的執行個體提供訪問公網的代理服務。一個VPC或者vSwitch只需要配置一個NAT,其所有執行個體將具備出公網的能力。 | EIP為執行個體層級,例如10個執行個體就需要10個EIP。一個執行個體綁定EIP後,將同時具備出網和入網的能力。 |
是否固定公網IP | 是。 | 否。新的執行個體成功綁定EIP後,SAE才會銷毀原先的執行個體並解除綁定原來的EIP。因此,需保證EIP數量至少為執行個體數量加一。EIP是變化的,是一個IP池。 |
典型情境 | 應用會自動彈性擴縮,新的執行個體預設需要出公網的能力,且需要固定IP(95%的使用者都適合該情境)。 | 可接受EIP可變,需要直連執行個體的情境(例如線上會議),另外還需要自行精細化地控制每個執行個體的生命週期。 |
費用 | 計費詳情,請參見NAT Gateway計費。 | 計費詳情,請參見EIP計費。執行個體數不超過20個時,EIP成本更優。 |
常見問題
SAE應用如何訪問公網?
首先參照下圖,明確您的需求是“出”公網還是“入”公網。如果是“出”流量,則參考本小節;如果是“入”流量,請參見SAE應用如何被公網訪問?。
SAE可以通過配置NAT Gateway使SAE應用能訪問公網或者基於EIP配置SAE執行個體公網訪問和訪問公網的能力兩種模式訪問公網,優先推薦基於NAT的訪問模式。兩種模式的區別,請參見基於NAT訪問公網和EIP訪問公網的區別。
SAE應用如何被公網訪問?
首先參照下圖,明確您的需求是“出”公網還是“入”公網。如果是“入”流量,則參考本篇文章;如果是“出”流量,請參見SAE應用如何訪問公網?。
優先推薦基於ALB/CLB配置網關路由(Ingress)訪問提供公網訪問。如果網關路由方式無法滿足您的需求,您可以參考基於CLB配置應用服務訪問或者基於EIP配置SAE執行個體公網訪問和訪問公網的能力提供訪問。主要區別如下。
對比項 | 網關路由(ALB/CLB) | 服務(CLB) | Elastic IP Address(EIP) |
是否具備路由能力 | 具備。可以根據 | 不具備。只能訪問該連接埠背後的一個應用。 | 不具備。一般需要擷取EIP列表,並自行控制存取原則。 |
是否支援7層協議 | 支援 | 支援 | 支援 |
是否支援4層協議 | 不支援 | 支援 | 支援 |
是否支援跨域/Rewrite等特性 | 支援 | 不支援。需要應用自行實現。 | 不支援。需要應用自行實現。 |
是否固定訪問IP | 是 | 是 | 否 |
費用 |
SAE應用如何和公網網域名稱綁定?
SAE本身並不處理和網域名稱相關的操作,您可以在SAE配置ALB或CLB後,擷取相關的公網IP或者網域名稱,再到網域名稱DNS服務進行綁定。
SAE應用無法訪問ECS怎麼辦?
請按照以下步驟排查。
確認SAE和ECS伺服器都在同一個VPC內,並檢查安全性群組配置是否放開相關的連接埠。
在容器內執行ping、telnet服務地址的命令檢測連通性。如果沒有這些命令,請先安裝常見命令(操作步驟)再執行。
訪問公網ECS地址的具體操作,請參見SAE應用如何訪問公網?。
SAE應用無法訪問RDS、Redis等怎麼辦?
請先確認SAE應用訪問的RDS或者Redis地址,屬於公網地址還是內網地址。內網地址的網路品質和時延都優於公網,因此同一個VPC內優先推薦內網地址。網路的費用與建立的資源類型有關,更多資訊,請參見產品計費。如果屬於不同VPC,在條件允許的情況下,推薦您使用雲企業網CEN(Cloud Enterprise Network)打通,再採用內網地址。確認地址類型後,請按照以下步驟排查。