使用 來設定 Elastic Load BalancingAWS Toolkit for Eclipse - AWS Elastic Beanstalk

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

使用 來設定 Elastic Load BalancingAWS Toolkit for Eclipse

Elastic Load Balancing 是 Amazon Web 服務,可提升應用程式的可用性和可擴展性。透過 Elastic Load Balancing,您可將應用程式負載分配至兩個或多個 Amazon EC2 執行個體。Elastic Load Balancing 可透過備援改善可用性,亦可支援應用程式的流量成長。

Elastic Load Balancing 會自動分配傳入應用程式的流量,在您執行的所有 EC2 伺服器執行個體間取得平衡。當您需要增加應用程式的容量時,本服務亦讓您輕鬆新增新的執行個體。

部署應用程式時,Elastic Beanstalk 會自動佈建 Elastic Load Balancing。在 Load Balancing (負載平衡) 下,Toolkit for Eclipse 內您環境的 Configuration (組態) 索引標籤上,您可以編輯 Elastic Beanstalk 環境的負載平衡組態。

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

連接埠

為了為您的 Elastic Beanstalk 應用程式處理請求所佈建的負載平衡器,會將請求傳送至執行您應用程式的 Amazon EC2 執行個體。所佈建的負載平衡器可於 HTTP 和 HTTPS 連接埠接聽請求,並將請求路由至 AWS Elastic Beanstalk 應用程式內的 Amazon EC2 執行個體。負載平衡器預設會處理 HTTP 連接埠上的請求。必須開啟至少一個 HTTP 或 HTTPS 連接埠。

重要

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

控制 HTTP 連接埠

欲關閉 HTTP 連接埠,請於 HTTP Listener Port (HTTP 接聽程式連接埠) 選取 OFF (關閉)。欲開啟 HTTP 連接埠,請於選取 HTTP 連接埠 (如 80 (80))。

注意

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

例如,使用適用於 Classic Load Balancer 的 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"

例如,使用適用於 Application Load Balancer 的 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 區域中使用,請使用 AWS Identity and Access Management (IAM) 上傳第三方憑證。ACM 和 IAM 服務會存放憑證,並針對 SSL 憑證提供 Amazon Resource Name (ARN)。如需建立和上傳憑證至 IAM 的詳細資訊,請參閱IAM 使用者指南中的使用伺服器憑證

  2. HTTPS Listener Port (HTTPS 接聽程式的連接埠) 下拉式清單中選擇連接埠,以指定 HTTPS 連接埠。

  3. SSL Certificate ID (SSL 憑證 ID) 文字方塊中,輸入您 SSL 憑證的 Amazon Resources Name (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 Listener Port (HTTPS 接聽程式連接埠) 選取 OFF (關閉)

運作狀態檢查

您可於 Load Balancing (負載平衡) 面板使用 EC2 Instance Health Check (EC2 執行個體運作狀態檢查) 區段,藉此控制運作狀態檢查的設定。

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

  • 為了判定執行個體的運作狀態,Elastic Beanstalk 會在其查詢的 URL 上尋找 200 回應代碼。根據預設,Elastic Beanstalk 針對非舊式容器和舊式容器分別檢查 TCP:80 和 HTTP:80。您可於 Application Health Check URL (應用程式運作狀態檢查 URL) 方塊中輸入與應用程式現有資源相符的 URL (如 /myapp/index.jsp),藉此覆寫預設 URL。若您覆寫預設 URL,Elastic Beanstalk 會使用 HTTP 來查詢資源。欲檢查您是否正使用舊版容器類型,請參閱 為何部分平台版本標記為舊版?

  • Health Check Interval (seconds) (運作狀態檢查間隔,秒) 部分,輸入應用程式 Amazon EC2 執行個體每次運作狀態檢查間的秒數。

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

  • 使用 Healthy Check Count Threshold (運作狀態檢查計數閾值)Unhealthy Check Count Threshold (不健全檢查結果計數臨界值) 方塊,來指定 Elastic Load Balancing 變更執行個體運作狀態前的連續成功或不成功 URL 探測的次數。例如,在 Unhealthy Check Count Threshold (不健全檢查結果計數臨界值) 文字方塊指定 5,表示 URL 連續五次回傳錯誤訊息或逾時後,Elastic Load Balancing 會將運作狀態檢查視為「失敗」。

工作階段

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

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

Sessions (工作階段) 區段中的 Load Balancer (負載平衡器) 底下,請指定應用程式的負載平衡器是否允許讓工作階段黏著,以及每一 Cookie 的持續時間。

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