在Serverless App Engine上成功部署應用後,您可以通過關聯NLB執行個體為應用提供一個固定的訪問入口。本文主要介紹如何為SAE應用關聯NLB執行個體。
背景介紹
SAE應用預設是無法通過公網進行訪問的;即使在VPC內部,雖然可以通過執行個體的私網IP訪問應用,但由於執行個體的私網IP在應用變更或重啟後可能會發生變化,這種方式並不穩定。為解決這些問題,您可以為應用綁定公網或私網NLB執行個體。通過綁定NLB,不僅可以使用固定網域名稱訪問應用,還能實現流量在不同可用性區域和SAE執行個體間的高效負載平衡。
方案概覽
SAE應用支援關聯公網NLB執行個體或私網NLB執行個體,您可以根據業務需求為SAE應用關聯不同網路類型的NLB執行個體。
關聯私網類型的NLB執行個體:其主要的作用是為SAE服務提供固定的訪問地址(DNS名稱)、通過負載平衡演算法(如:輪詢)將流量分發到SAE應用的執行個體上等。主要使用情境有微服務內部通訊、資料庫訪問和企業內網訪問等。
關聯公網類型的NLB執行個體:SAE預設不支援直接通過公網訪問。通過為其關聯一個公網類型的NLB執行個體,可以為SAE應用提供一個固定的公網訪問入口,從而實現對來自公網流量的處理。公網訪問流程,如下所示。
步驟一:為應用添加NLB執行個體
在SAE應用列表中,在頂部選擇目標地區和命名空間,點擊目標應用ID跳轉到應用詳情頁。
在目標應用的基礎資訊頁面,找到應用訪問設定地區,在基於NLB訪問頁簽下單擊添加NLB訪問。

在彈出的添加NLB訪問面板,按照以下說明配置相關參數,然後單擊確定。
說明SAE支援建立NLB執行個體和綁定已有的NLB執行個體,請按需進行選擇。
建立NLB執行個體:SAE系統將自動為您購買一個NLB執行個體,可以在Server Load Balancer控制台查看NLB執行個體的詳細資料。
綁定已有的NLB執行個體:需要您提前在負載平衡管理主控台的執行個體頁面建立一個NLB執行個體。如果要建立私網類型的NLB執行個體,建議NLB執行個體和SAE應用使用同一個VPC,如果不是同一個VPC,需要您自行配置網路,確保它們之間能夠互相通訊,例如,您可以使用阿里雲的雲企業網或其他網路連接產品來實現跨VPC通訊。
建立NLB執行個體
執行個體來源選擇建立執行個體。
網路類型支援公網和私網,請按需進行選擇。
如果選擇公網類型,系統將自動建立一個公網NLB執行個體,並為每個可用性區域分配一個Elastic IP Address和VIP。
如果選擇私網類型,系統將自動建立一個私網NLB執行個體,並為每個可用性區域分配一個VIP。
根據業務需求,選擇虛擬交換器所在的可用性區域。為保障業務的高可用,請至少選擇2個或以上可用性區域。
專用網路不支援選擇,預設為目標應用的VPC。
支援的協議類型有TCP、UDP和TCPSSL,按照需求進行選擇。
協議類型
配置項
樣本值
TCP協議
監聽連接埠:用來接收請求並向後端伺服器進行請求轉寄的監聽連接埠。
容器連接埠:進程監聽連接埠,由程式定義。
監聽連接埠:80
容器連接埠:8080(Web服務的預設連接埠)
UDP協議
TCPSSL協議
監聽連接埠:用來接收請求並向後端伺服器進行請求轉寄的監聽連接埠。
容器連接埠:進程監聽連接埠,由程式定義。
選擇SSL認證:SSL協議認證,在下拉式清單中選擇已上傳的SSL認證。
重要若通過HTTPS協議訪問自訂網域名,則要求該網域名稱必須已在阿里雲備案,詳見ICP備案流程。
監聽連接埠:80
容器連接埠:8080(Web服務的預設連接埠)
選擇SSL認證:在下拉框中選擇已購買的SSL認證。如果您還沒有購買SSL認證,請參見購買認證文檔進行購買。

綁定已有的NLB執行個體
執行個體來源選擇使用已有。
在NLB執行個體對應的下拉框中選擇已建立的NLB執行個體。
如果您沒有提前建立NLB執行個體,可單擊建立NLB執行個體,然後在Server Load Balancer控制台的執行個體頁面建立一個NLB執行個體。
支援的協議類型有TCP、UDP和TCPSSL,按照需求進行選擇。
協議類型
配置項
樣本值
TCP協議
監聽連接埠:用來接收請求並向後端伺服器進行請求轉寄的監聽連接埠。
容器連接埠:進程監聽連接埠,由程式定義。
監聽連接埠:80
容器連接埠:8080(Web服務的預設連接埠)
UDP協議
TCPSSL協議
監聽連接埠:用來接收請求並向後端伺服器進行請求轉寄的監聽連接埠。
容器連接埠:進程監聽連接埠,由程式定義。
選擇SSL認證:SSL協議認證,在下拉式清單中選擇已上傳的SSL認證。
重要若通過HTTPS協議訪問自訂網域名,則要求該網域名稱必須已在阿里雲備案,詳見ICP備案流程。
監聽連接埠:80
容器連接埠:8080(Web服務的預設連接埠)
選擇SSL認證:在下拉框中選擇已購買的SSL認證。如果您還沒有購買SSL認證,請參見購買正式認證文檔進行購買。

NLB執行個體建立完成後,可在應用訪問設定地區的基於NLB頁簽查看NLB執行個體狀態。
如果您想添加多個NLB執行個體,可單擊添加NLB訪問,按照以上步驟繼續添加NLB執行個體。
重要如果您先在Server Load Balancer控制台為NLB執行個體配置了監聽規則,隨後又在SAE側為同一NLB執行個體配置了監聽規則,則SAE側的配置可能會覆蓋SLB控制台中的配置,反之亦然。為了避免配置衝突,建議您僅在SAE側為NLB執行個體配置監聽規則。
您可對已添加的NLB執行個體進行以下操作。
添加監聽:單擊添加監聽,在彈出的添加監聽對話方塊中選擇協議類型並配置參數。
修改容器連接埠:單擊NLB執行個體操作列的編輯,在彈出的編輯NLB訪問面板,可以修改容器連接埠。
刪除監聽或NLB執行個體:單擊NLB執行個體操作列的刪除,在彈出的刪除確認對話方塊單擊確定,即可刪除對應的監聽規則或NLB執行個體。
如果您為同一個NLB執行個體添加了多條監聽規則,刪除操作只會移除對應的監聽規則。如果刪除的是最後一條監聽規則,由於NLB執行個體不再有監聽規則可用,系統會自動刪除該NLB執行個體。
查看NLB執行個體:單擊NLB執行個體名稱,跳轉至Server Load Balancer控制的NLB執行個體詳情頁面,即可查看NLB執行個體詳細資料。如NLB執行個體為每個可用性區域分配的Elastic IP Address和VIP、NLB執行個體自動產生的DNS名稱等資訊。

您可直接使用NLB執行個體提供的DNS名稱進行訪問測試,也可以使用可用性區域提供的Elastic IP Address進行訪問測試。
步驟二:佈建網域名解析
NLB執行個體提供的DNS名稱可以用於訪問測試,但在實際業務情境中,建議您使用自有網域名稱,通過CNAME解析的方式將自有網域名稱指向NLB執行個體提供的DNS名稱。
單擊應用訪問地區已建立的NLB執行個體名稱,跳轉至Server Load Balancer控制的NLB執行個體詳情頁面。

在Server Load Balancer控制台的NLB執行個體詳情頁面,複製DNS名稱。
NLB執行個體提供的DNS名稱將被用於佈建網域名解析時的記錄值。

登入網域名稱解析控制台,按照以下步驟添加CNAME記錄。
說明對於非阿里雲註冊網域名稱,需先將網域名稱添加到雲解析控制台,才可以進行網域名稱解析。如果您是阿里雲註冊的網域名稱,請直接執行以下步驟。
在權威網域名稱解析頁面,找到目標網域名稱,在操作列單擊解析設定。
在解析設定頁面,單擊添加記錄。
在添加記錄面板,配置以下資訊完成CNAME解析配置,然後單擊確定。

配置項
樣本
說明
記錄類型
CNAME
在下拉式清單中選擇CNAME。
CNAME記錄會將您的自有網域名稱指向NLB執行個體提供的DNS名稱。
主機記錄
www
填寫您建立子網域名稱時所添加的網域名稱首碼。
主機記錄的具體說明,請參見控制台上的主機記錄說明。
解析請求來源
預設
選擇預設。
DNS可以識別網域名稱解析請求來源IP的地區、電訊廠商屬性(一般為電訊廠商LocalDNS的IP)。在添加解析記錄時,可以設定對不同地區、電訊廠商線路來源的解析請求返回不同的記錄值。
記錄值
nlb-****.com
填寫NLB執行個體提供的DNS名稱。
記錄值為CNAME指向的網域名稱。
TTL
10
選擇控制台提供的預設值。
全稱Time To Live,表示DNS記錄在DNS伺服器上的緩衝時間。
步驟三:訪問測試
在瀏覽器上輸入自有網域名稱進行訪問測試。如http://網域名稱。

資源清理(可選)
刪除NLB執行個體
在SAE控制台目標應用的基礎資訊頁面,單擊應用訪問設定地區的NLB執行個體名稱,跳轉至Server Load Balancer控制的NLB執行個體詳情頁面。

在NLB執行個體詳情頁面,單擊頁面右上方的,在彈出的釋放執行個體對話方塊單擊確認。
返回SAE控制台目標應用的基礎資訊頁面,在應用訪問設定地區,單擊NLB執行個體操作列的刪除,在彈出的刪除確認對話方塊單擊確定,即可刪除NLB執行個體。
如果您為同一個NLB執行個體添加了多條監聽規則,需要刪除所有的監聽規則,才能刪除在SAE側添加的NLB執行個體。
如果您只刪除了SAE側添加的NLB執行個體,沒有刪除SLB側的NLB執行個體,則SLB側的NLB執行個體會產生費用。
刪除網域名稱解析記錄
在網域名稱解析控制台刪除已添加的網域名稱解析記錄。