Elastic Load Balancing 層 - AWS OpsWorks

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

Elastic Load Balancing 層

重要

所以此 AWS OpsWorks Stacks 服務於 2024 年 5 月 26 日終止使用壽命,並已針對新客戶和現有客戶停用。我們強烈建議客戶盡快將其工作負載移轉至其他解決方案。如果您對移轉有任何疑問,請聯絡 AWS Support 團隊上 AWS Re: 郵寄或透過 AWS 高級 Support

Elastic Load Balancing 的工作方式與 AWS OpsWorks 堆疊層。您可以使用 Elastic Load Balancing 主控台或建立負載平衡器,然後將其附加API到現有層,而不是建立層並將執行個體新增至其中。除了將流量分配到層的執行個體之外,「Elastic Load Balancing」還會執行下列動作:

  • 偵測運作狀態不良的 Amazon EC2 執行個體,並將流量重新路由到剩餘運作狀態良好的執行個體,直到運作狀態不良的

  • 自動擴展處理容量的請求,以回應傳入的流量。

  • 若您啟用連接耗盡,負載平衡器會停止將新的請求傳送至狀況不良或即將取消註冊的執行個體,但會在到達指定的逾時值之前保持連線,讓執行個體完成任何傳遞中的請求。

將負載平衡器連接至圖層之後, AWS OpsWorks 堆疊會執行下列動作:

  • 取消註冊任何目前註冊的執行個體。

  • 在該層的執行個體上線時自動註冊,並在執行個體離線時取消註冊,包含負載式和時間式執行個體。

  • 自動開始在可用區域將請求路由傳送到註冊的執行個體。

如果您已啟用負載平衡器的連線排除功能,您可以指定是否 AWS OpsWorks 堆棧支持它。如果您啟用連線排除支援 (預設設定),則在執行個體關閉後, AWS OpsWorks 堆疊會執行下列動作:

  • 從負載平衡器取消註冊執行個體。

    負載平衡器會停止傳送新的請求,並啟動連接耗盡。

  • 延遲觸發關機生命週期事件,直到負載平衡器完成連接耗盡。

如果您未啟用連線排除支援, AWS OpsWorks 即使執行個體仍連線至負載平衡器,Stack 也會在執行個體關閉時立即觸發 Shutdown 事件。

若要搭配堆疊使用 Elastic Load Balancing,您必須先使用 Elastic Load Balancing 主控台、CLI或,在相同區域中建立一或API多個負載平衡器。建議您注意以下事項:

  • 您只能將一個負載平衡器連接到一個 layer。

  • 每個負載平衡器只能處理一個 layer。

  • AWS OpsWorks 堆疊不支援 Application Load Balancer。您只能搭配使用 Classic Load Balancer AWS OpsWorks 堆疊。

這表示您必須為每個要平衡的堆疊中的每個層建立個別的 Elastic Load Balancing 器,並僅將其用於此目的。建議的做法是為您打算搭配使用的每個「Elastic Load Balancing」負載平衡器指派一個獨特的名稱 AWS OpsWorks 堆疊 (例如 MyStack 1 RailsLayer-)ELB,以避免將負載平衡器用於多個目的。

重要

我們建議您建立新的 Elastic Load Balancing 負載平衡器 AWS OpsWorks 堆疊圖層。如果您選擇使用現有的 Elastic Load Balancing 負載平衡器,您應該先確認該平衡器未用於其他用途,也沒有連接的執行個體。將負載平衡器連接到層後, OpsWorks 移除所有現有的執行個體,並設定負載平衡器僅處理層的執行個體。雖然技術上可以使用 Elastic Load Balancing 控制台或在將負載平衡器附加API到層後修改負載平衡器的配置,但是您不應該這樣做;這些更改將不是永久性的。

將 Elastic Load Balancing 負載平衡器附加至層
  1. 如果您尚未這麼做,請使用 E lastic Load Balancing 主控台API,或CLI在堆疊的區域中建立負載平衡器。當您建立負載平衡器時,請執行下列作業:

    • 請務必指定適合您應用程式的運作狀態檢查 ping 路徑。

      預設 ping 路徑為 /index.html,因此若您的應用程式根並未包含 index.html,您必須指定適當的 ping 路徑,否則運作狀態檢查會失敗。

    • 若您欲使用連接耗盡,請確認已啟用該功能,並且具有適當的逾時值。

    如需詳細資訊,請參閱 Elastic Load Balancing

  2. 建立您希望平衡的 layer編輯現有 layer 的網路設定

    注意

    您無法在建立自訂 layer 時連接負載平衡器。您必須編輯 layer 的設定。

  3. 在「E lastic Load Balancing」下,選取要附加至層的負載平衡器,並指定是否要 AWS OpsWorks 堆棧以支持連接排水。

將負載平衡器連接至圖層之後, AWS OpsWorks 堆疊會在堆疊的執行個體上觸發設定生命週期事件,以通知他們變更。 AWS OpsWorks 當您卸離負載平衡器時,堆疊也會觸發 Configuration 事件。

注意

執行個體啟動之後, AWS OpsWorks 堆疊會執行安裝和部署方法,用來安裝套件和部署應用程式。這些配方完成後,執行個體處於線上狀態, AWS OpsWorks 堆棧使用 Elastic Load Balancing 註冊實例。 AWS OpsWorks 堆疊也會在執行個體上線後觸發 Configuration 事件。這表示 Elastic Load Balancing 登錄和設定配方可以同時執行,而且執行個體可能會在設定配方完成之前註冊。為了確保方案在使用 Elastic Load Balancing 註冊執行個體之前完成,您應該將方案新增至層的安裝或部署生命週期事件中。如需詳細資訊,請參閱執行配方

有時候將執行個體從負載平衡器移除也會非常有用。例如,當您更新應用程式時,我們建議您將應用程式部署至單一執行個體,並在將其部署到每個執行個體前,驗證應用程式已正常運作。您通常會將執行個體從負載平衡器移除,使其在您完成驗證更新之前不會接收到使用者請求。

您必須使用 Elastic Load Balancing 主控台,或API從負載平衡器暫時移除線上執行個體。以下說明如何使用主控台。

暫時將執行個體從負載平衡器移除
  1. 開啟 Amazon 主EC2控台,然後選擇負載平衡器

  2. 選擇適當的負載平衡器,然後開啟 Instances (執行個體) 標籤。

  3. 在執行個體的 Actions (動作) 資料行中,選擇 Remove from Load Balancer (從負載平衡器移除)

  4. 當您完成時,請選擇 Edit Instances (編輯執行個體),然後將執行個體返回負載平衡器。

重要

如果您使用 Elastic Load Balancing 主控台或API從負載平衡器移除執行個體,您也必須使用「Elastic Load Balancing」將其放回原處。 AWS OpsWorks Stack 並不知道您使用其他服務主控台執行的作業APIs,或者它不會為您將執行個體傳回負載平衡器。有時候 AWS OpsWorks 堆疊可以將執行個體新增回ELB,但這並非保證行為,且不會在所有情況下發生。

您可以將多個負載平衡器連接到特定的執行個體組,如下所示:

連接多個負載平衡器
  1. 使用 E lastic Load Balancing 主控台API,或CLI建立一組負載平衡器。

  2. 為每個負載平衡器建立自訂 layer,並將其中一個負載平衡器連接到該 layer。您不需要為這些 layer 實作任何自訂配方。預設自訂 layer 已足夠。

  3. 執行個體組新增至每個自訂 layer。

您可以藉由前往執行個體頁面並按一下適當的負載平衡器名稱,來檢查負載平衡器的屬性。

PHP App Server table showing two online instances with their details and status.

ELB頁面會顯示負載平衡器的基本特性,包括其DNS名稱和相關執行處理的健全狀況狀態。如果堆疊在中執行VPC,頁面會顯示子網路,而非可用性區域。綠色的核取記號表示運作狀態良好的執行個體。您可以按一下名稱透過負載平衡器以連線到伺服器。

ELB My-Stack-PHP settings showing DNS name, layer, region, and instance status.