使用 AWS 工具組設定 Elastic Load Balancing - AWS Elastic Beanstalk

本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。

使用 AWS 工具組設定 Elastic Load Balancing

Elastic Load Balancing 是 Amazon Web 服務,可協助您提升應用程式的可用性和可擴展性。此服務可讓您輕鬆地在兩個或多個 Amazon EC2 執行個體之間分配應用程式負載。Elastic Load Balancing 可透過備援改善可用性,亦可支援應用程式的流量成長。

透過 Elastic Load Balancing,您可以在所有執行中執行個體之間自動分配和平衡傳入的應用程式流量。您也可以在需要增加應用程式容量時輕鬆新增執行個體。

部署應用程式時,Elastic Beanstalk 會自動佈建 Elastic Load Balancing。您可以使用 AWS Toolkit for Visual Studio 具組中應用程式環境索引標籤中的「Load Balancer」索引標籤,編輯 Elastic Beanstalk 環境的 Amazon EC2 執行個體組態。

Visual Studio Toolkit for Elastic Beanstalk 中負載平衡器組態面板的螢幕擷取畫面

下列章節說明您可設定的 Elastic Load Balancing 參數供應用程式使用。

連接埠

佈建用於處理 Elastic Beanstalk 應用程式請求的負載平衡器會將請求傳送到執行您應用程式的 Amazon EC2 執行個體。佈建的負載平衡器可以接聽上的請求HTTP和HTTPS連接埠,並將請求路由到 AWS Elastic Beanstalk 應用程式中的 Amazon EC2 執行個體。依預設,負載平衡器會處理HTTP連接埠上的要求。若要使用此功能,必須至少開啟其中一個連接埠 (HTTP或HTTPS)。

Elastic Beanstalk Elastic Load Balancing 組態 - 連接埠
重要

請確認您指定的連接埠並未鎖定;否則,您將無法連接至您的 Elastic Beanstalk 應用程式。

控制HTTP連接埠

若要關閉HTTP連接埠,請選取「HTTP監聽OFF器連接埠」。若要開啟HTTP連接埠,請從清單中選取HTTP連接埠 (例如 80)。

注意

若要使用預設連接埠 80 以外 (例如連接埠 8080) 的連接埠存取您的環境,請將接聽程式新增至現有的負載平衡器,然後設定該新的接聽程式在該連接埠上接聽。

例如,使用傳統AWS CLI 負載平衡器,鍵入下列命令,取代 LOAD_BALANCER_NAME 使用 Elastic Beanstalk 的負載平衡器的名稱。

aws elb create-load-balancer-listeners --load-balancer-name LOAD_BALANCER_NAME --listeners "Protocol=HTTP, LoadBalancerPort=8080, InstanceProtocol=HTTP, InstancePort=80"

例如,使用應用程式AWS CLI 負載平衡器,輸入下列命令,取代 LOAD_BALANCER_ARN 使用 Elastic Beanstalk ARN 的負載平衡器。

aws elbv2 create-listener --load-balancer-arn LOAD_BALANCER_ARN --protocol HTTP --port 8080

若您想要 Elastic Beanstalk 監控您的環境,請勿移除連接埠 80 上的接聽程式。

控制HTTPS連接埠

Elastic Load Balancing 支援HTTPS/通TLS訊協定,為用戶端與負載平衡器連線啟用流量加密。從負載平衡器到EC2執行個體的連線會使用純文字加密。依預設,HTTPS連接埠處於關閉狀態。

開啟HTTPS連接埠的步驟
  1. 使用 AWS Certificate Manager (ACM) 建立新憑證,或將憑證和金鑰上傳至 AWS Identity and Access Management (IAM)。如需有關要求ACM憑證的詳細資訊,請參閱AWS Certificate Manager 使用者指南中的要求憑證。如需將協力廠商憑證匯入的詳細資訊ACM,請參閱AWS Certificate Manager 使用指南中的匯入憑證。如果ACM您的地區無法使用,請使用 AWS Identity and Access Management (IAM) 上傳第三方憑證。ACM和IAM服務會儲存憑證,並為SSL憑證提供 Amazon 資源名稱 (ARN)。如需建立和上傳憑證的詳細資訊IAM,請參閱使用指南中的〈IAM使用伺服器憑證

  2. 選取HTTPS監聽器HTTPS連接埠的連接埠來指定連接埠

    Elastic Beanstalk Elastic Load Balancing 配置-SSL
  3. 對於SSL憑證 ID,請輸入憑SSL證的 Amazon 資源名稱 (ARN)。例如 arn:aws:iam::123456789012:server-certificate/abc/certs/buildarn:aws:acm:us-east-2:123456789012:certificate/12345678-12ab-34cd-56ef-12345678。使用您在步驟 1 中建立或上傳的SSL憑證。

若要關閉HTTPS連接埠,請選取「HTTPS監聽OFF器連接埠」。

運作狀態檢查

健康狀態檢查定義包含URL要查詢執行個體健全狀況的項目。默認情況下,Elastic Beanstalk 使TCP用:80 表示非舊版容器,舊版容器使用:80。HTTP您可以在「應用程式 Health 全狀況」核取URL方塊中輸入預設值URL,以符合應用程式中的現有資源 (例如/myapp/default.aspx)。如果您覆寫預設值URL,則 Elastic Beanstalk 會用HTTP來查詢資源。欲檢查您是否正使用舊版容器類型,請參閱 為何部分平台版本標記為舊版?

您可以使用「負載平衡」面板的「EC2執行個體 Health 狀態檢查」區段來控制健康狀態檢查的設定。

Elastic Beanstalk Elastic Load Balancing 組態 - 運作狀態檢查

健康狀態檢查定義包含URL要查詢執行個體健全狀況的項目。在「應用程式 Health 全狀況」核取URL方塊中輸入預設值URL,以符合應用程式中的現有資源 (例如/myapp/index.jsp)。

下列清單說明您應用程式可設定的運作狀態檢查參數。

  • 對於運作 Health 態檢查間隔 (秒),請輸入應用程式 Amazon EC2 執行個體的運作狀態檢查之間的 Elastic Load Balancing 等待秒數。

  • Health Check Timeout (seconds) (運作狀態檢查逾時,秒) 部分,指定 Elastic Load Balancing 將執行個體視為沒有回應前的等待回應的秒數。

  • 針對「健全狀況檢查計數臨界值」和「不健康檢查計數臨界值」,指定「Elastic Load Balancing」變更執行處理健康狀態之前,連續成功或失敗的URL探查數目。例如,指定 5不健康檢查計數臨界值」表示URL必須連續五次傳回錯誤訊息或逾時,「Elastic Load Balancing」將健全狀況檢查視為失敗。

工作階段

負載平衡器預設會以最小的負載,將每個請求獨立路由至伺服器執行個體。相對而言,黏性工作階段會將使用者工作階段繫結到特定的伺服器執行個體,以便工作階段期間來自使用者的所有請求都發送到相同的伺服器執行個體。

Elastic Beanstalk 使用負載平衡器 — 當應用程序啟用粘性會話時生成的 HTTP cookie。負載平衡器會使用特殊負載平衡器產生的 Cookie,來追蹤每個請求的應用程式執行個體。當負載平衡器收到請求時,首先會檢查此 Cookie 是否存在於請求中。如果存在,請求會傳送到 cookie 中指定的應用程式執行個體。若 Cookie 不存在,則負載平衡器會根據現有負載平衡演算法選擇應用程式執行個體。回應會插入 Cookie,藉此將後續來自相同使用者的請求繫結至該應用程式執行個體。政策組態會定義 Cookie 到期日期,此為每個 Cookie 的有效使用期限。

您可以使用「Load Balancer」頁籤上的「階段作業」段落,指定應用程式的負載平衡器是否允許工作階段黏著性。

Elastic Beanstalk Elastic Load Balancing 組態 - 工作階段

如需 Elastic Load Balancing 的詳細資訊,請參閱 Elastic Load Balancing 開發人員指南