遷移 Classic Load Balancer - Elastic Load Balancing

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

遷移 Classic Load Balancer

Elastic Load Balancing 支援下列類型的負載平衡器:Application Load Balancer、Network Load Balancer、Gateway Load Balancer 和 Classic Load Balancer。如需各種負載平衡器類型不同功能的詳細資訊,請參閱 Elastic Load Balancing 產品比較

您也可以選擇將 VPC 中現有的 Classic Load Balancer 移轉到 Application Load Balancer 或 Network Load Balancer。

從 Classic Load Balancer 遷移的優點

每種類型的負載平衡器都有其獨特的功能、功能和組態。檢閱每個負載平衡器的優點,以協助判斷哪一個最適合您。

Application Load Balancer

使用應用程式負載平衡器而非 Classic Load Balancer 具有下列優點:

Support:

  • 路徑條件主機條件HTTP 標頭條件

  • 將請求從一個 URL 重定向到另一個 URL,並將請求路由到單一 EC2 執行個體上的多個應用程式。

  • 返回自定義 HTTP 響應。

  • 依 IP 位址註冊目標,並將 Lambda 函數註冊為目標。為負載平衡器包括 VPC 以外的目標。

  • 透過公司或社交身份驗證使用者。

  • Amazon Elastic Container Service (Amazon ECS) 容器化應用程式。

  • 獨立監控每個服務的健康狀態。

存取記錄包含其他資訊,並以壓縮格式儲存。

改善整體負載平衡器效能。

Network Load Balancer

使用 Network Load Balancer 而非 Classic Load Balancer 具有以下優點:

Support:

  • 靜態 IP 位址,允許為負載平衡器啟用的每個子網路指派一個彈性 IP 位址。

  • 依 IP 位址註冊目標,包括 VPC 以外的負載平衡器的目標。

  • 將請求路由到單一 EC2 執行個體上的多個應用程式。

  • Amazon Elastic Container Service (Amazon ECS) 容器化應用程式。

  • 獨立監控每個服務的健康狀態。

能夠處理急遽波動的工作負載,並可擴展到每秒處理數百萬個請求。

使用移轉精靈移轉

移轉精靈會使用 Classic Load Balancer 的組態來建立對等的應用程式負載平衡器或 Network Load Balancer。與其他方法相比,它可以減少遷移 Classic Load Balancer 所需的時間和精力。

注意

精靈會建立新的負載平衡器。精靈不會將現有的 Classic Load Balancer 轉換為 Application Load Balancer 或 Network Load Balancer。您必須手動將流量重新導向至新建立的負載平衡器。

限制
  • 新負載平衡器的名稱不能與相同區域中相同類型的現有負載平衡器相同。

  • 如果 Classic Load Balancer 的金鑰中有任何包含aws:前置詞的標籤,則不會遷移這些標籤。

移轉至應用程式負載平衡器時
  • 如果 Classic Load Balancer 只有一個子網路,您必須指定第二個子網路。

  • 如果「Classic Load Balancer」具有使用 TCP 健康狀態檢查的 HTTP/HTTPS 接聽程式,則健全狀況檢查通訊協定會更新為 HTTP,並將路徑設定為「/」。

  • 如果 Classic Load Balancer 具有使用自訂或不支援的安全性原則的 HTTPS 接聽程式,則移轉精靈會使用新負載平衡器類型的預設安全性原則。

移轉至 Network Load Balancer 時
  • 下列執行個體類型將不會在新的目標群組中註冊:C1、CC1、CC2、CG1、CR1、CS1、G1、G2、HI1、H1、HS1、M1、M1、M2、M3、T1

  • 來自 Classic Load Balancer 的某些健康狀態檢查設定可能無法轉移到新的目標群組。這些案例會在移轉精靈的摘要區段中指示為變更。

  • 如果「Classic Load Balancer」具有 SSL 接聽程式,移轉精靈會使用 SSL 接聽程式的憑證和安全性原則建立 TLS 接聽程式。

使用移轉精靈移轉 Classic Load Balancer
  1. 前往 https://console.aws.amazon.com/ec2/ 開啟 Amazon EC2 主控台。

  2. 在導覽窗格的 Load Balancing (負載平衡器),選擇 Load Balancer (負載平衡器)

  3. 選取您要移轉的 Classic Load Balancer。

  4. 在 [負載平衡器詳細資料] 區段中,選擇 [啟動移轉精靈]

  5. 選擇移轉至 Application Load Balancer移轉至 Network Load Balancer,以開啟移轉精靈。

  6. 在 [命名新負載平衡器] 下,針對負載平衡器名稱,輸入新負載平衡器的名稱。

  7. 在「命名新目標群組和複查目標」下,針對「目標群組名稱」輸入新目標群組的名稱。

  8. (選擇性) 在目標下,您可以複查將向新目標群組註冊的目標執行個體。

  9. (選擇性) 在 [檢閱標籤] 底下,您可以檢閱將套用至新負載平衡器的標籤

  10. 在「應用程式負載平衡器摘要」或「Network Load Balancer 摘要」下,檢閱並驗證移轉精靈指派的組態選項。

  11. 對組態摘要感到滿意之後,請選擇 [建立 Application Load Balancer] 或 [建立 Network Load Balancer] 以開始移轉。

使用負載平衡器複製公用程式移轉

負載平衡器複製公用程式可在 AWS GitHub 頁面的「Elastic Load Balancing 工具」儲存區域中使用。

手動移轉負載平衡器

下列資訊提供了根據 VPC 中現有 Classic Load Balancer 手動建立新 Application Load Balancer 或 Network Load Balancer 的一般指示。您可以使用 AWS Management Console AWS CLI、或 AWS SDK 進行遷移。如需詳細資訊,請參閱 Elastic Load Balancing 入門

完成遷移程序後,您就可以利用新負載平衡器的功能。

步驟 1:建立新的負載平衡器

建立負載平衡器,其組態应與要遷移的 Classic Load Balancer 組態相同。

  1. 使用與 Classic Load Balancer 相同的機制 (面向網際網路或內部)、子網路和安全群組,建立新的負載平衡器。

  2. 使用與 Classic Load Balancer 相同的運作狀態檢查設定,為負載平衡器建立目標群組。

  3. 執行以下任意一項:

    • 如果 Classic Load Balancer 連接到 Auto Scaling 群組,請將目標群組連接至 Auto Scaling 群組。這樣也會向目標群組註冊 Auto Scaling 執行個體。

    • 向目標群組註冊 EC2 執行個體。

  4. 建立一或多個接聽程式,每個都有將請求轉送到目標群組的預設規則。如果建立 HTTPS 接聽程式,可以指定與為 Classic Load Balancer 指定的相同憑證。建議您使用預設安全政策。

  5. 如果 Classic Load Balancer 有標籤,請檢閱它們,並將相關的標籤新增至新的負載平衡器。

步驟 2:逐漸將流量重新導向新的負載平衡器

向新的負載平衡器註冊執行個體之後,就可以開始將流量從舊負載平衡器重新導向至新負載平衡器。這可讓您測試新的負載平衡器,同時將應用程式可用性的風險降到最低。

逐漸將流量重新導向新的負載平衡器
  1. 將新負載平衡器的 DNS 名稱貼至已連接網際網路的 web 瀏覽器的地址欄位。如果一切正常,瀏覽器會顯示您的應用程式的預設頁面。

  2. 建立新的 DNS 記錄,將您的網域名稱與新的負載平衡器建立關聯。如果您的 DNS 服務支援加權,請在新的 DNS 記錄中指定權數 1,並在舊負載平衡器的現有 DNS 記錄中指定權數 9。這樣會將 10% 的流量導向新的負載平衡器,將 90% 的流量導向舊負載平衡器。

  3. 監控新的負載平衡器,確認它正在接收流量且將請求路由到您的執行個體。

    重要

    DNS 記錄中的 time-to-live (TTL) 是 60 秒。這表示解析網域名稱的任何 DNS 伺服器會將紀錄資訊保存在快取中長達 60 秒,同時會傳播變更。因此,在您完成上個步驟之後最多 60 秒內,這些 DNS 伺服器仍會將流量路由到舊負載平衡器。在傳播期間,系統可以將流量導向任一負載平衡器。

  4. 繼續更新 DNS 記錄的權數,直到所有流量都導向新的負載平衡器為止。完成後,您可以刪除舊負載平衡器的 DNS 記錄。

步驟 3:更新政策、指令碼和程式碼

如果您將 Classic Load Balancer 遷移至 Application Load Balancer 或 Network Load Balancer,請務必執行以下步驟:

  • 將 IAM 政策使用的 API 版本從 2012-06-01 更新為 2015-12-01。

  • 更新使用命名空間中 CloudWatch 度量的程序,以使用AWS/ApplicationELBAWS/ELBAWS/NetworkELB命名空間中的度量。

  • 更新使用指令來使用aws elb AWS CLI 指令的aws elbv2 AWS CLI 指令碼。

  • 更新使用AWS::ElasticLoadBalancing::LoadBalancer資源以使用資AWS::ElasticLoadBalancingV2源的 AWS CloudFormation 範本。

  • 將程式碼使用的 Elastic Load Balancing API 版本從 2012-06-01 更新為 2015-12-01。

資源
步驟 4:刪除舊負載平衡器

在以下情形發生之後,可以刪除舊的 Classic Load Balancer:

  • 您已將所有流量從舊的負載平衡器重新導向至新的負載平衡器。

  • 路由至舊負載平衡器的所有現有請求均已完成。