我想要將我的 Classic Load Balancer 遷移至 Application Load Balancer 或 Network Load Balancer。該如何進行? 遷移前需要考慮哪些最佳實務? 遷移期間是否會有任何停機時間?
解析度
將 Classic Load Balancer 遷移至 Application Load Balancer 或 Network Load Balancer
使用遷移精靈建立和設定 Application Load Balancer 或 Network Load Balancer。如果您的 Classic Load Balancer 具有 TCP 接聽程式,則精靈會建立 Network Load Balancer。如果 Classic Load Balancer 具有 HTTP (S) 接聽程式,則精靈會建立 Application Load Balancer。建立負載平衡器後,測試新建立的負載平衡器。如果您新建立的負載平衡器運作沒有任何問題,請將流量從 Classic Load Balancer 重新導向至新建立的負載平衡器。
**注意:**精靈會建立新的負載平衡器。精靈不會將現有的 Classic Load Balancer 轉換為 Application Load Balancer 或 Network Load Balancer。您必須手動將流量重新導向至新建立的負載平衡器。
然後,更新任何政策、指令碼和程式碼。將所有流量重新導向至新的負載平衡器並完成舊負載平衡器上的所有現有請求之後,請刪除舊的負載平衡器。
遷移考量
- 如果您的負載平衡器只有一個子網,則務必在建立 Application Load Balancer 時指定第二個子網。Application Load Balancer 至少需要兩個子網。
- 如果您不確定要遷移到哪個負載平衡器,則請考慮使用 Network Load Balancer。如果您的 Classic Load Balancer 使用 HTTP 或 HTTPS 接聽程式,則請遷移至 Application Load Balancer。如果您的 Classic Load Balancer 使用 TCP 接聽程式,則請遷移至 Network Load Balancer。如需不同負載平衡器功能的詳細資訊,請參閱 Elastic Load Balancing 功能。
- Classic Load Balancer 可讓您關閉跨區域負載平衡。根據預設,Application Load Balancer 會開啟跨區域負載平衡,且無法關閉該負載平衡。使用 Network Load Balancer,您可以關閉跨區域負載平衡。
- Application Load Balancer 可以在負載平衡器本身上支援請求重新導向。如果將 Classic Load Balancer 的後端連線設定為 HTTP 重新導向,則可以在遷移至新的負載平衡器期間關閉或移除重新導向。
- Network Load Balancer 不支援負載平衡器層級的安全群組。您可以使用與目標相關聯的安全群組來限制流量。在 Network Load Balancer 層級,您可以使用子網的網路存取控制清單 (ACL) 來限制流量。
- Network Load Balancer 能夠保留用戶端 IP 地址。如果您使用安全群組來限制目標上的流量,請注意封包的來源 IP 包含用戶端 IP 地址。
負載平衡器遷移期間的停機時間
如果新的負載平衡器安裝程式發生錯誤,則可能會在遷移期間發生停機時間。若要最大限度地減少或降低任何停機時間,請考慮下列方法:
- 在遷移任何生產流量之前,請對新的負載平衡器執行測試。確保新的負載平衡器可以處理流量請求。
- 使用 Amazon Route 53 的加權路由政策,逐漸將流量路由到新的負載平衡器。如果您看到新負載平衡器的問題,則請將流量加權值指派為 "0"。
- 如果 Route 53 不作為 DNS 供應商使用,則請讓舊的負載平衡器保持運作。將現有記錄的存留時間 (TTL) 值降為 "0"。然後,等待先前的 TTL 值重設,並更新記錄以指向新的負載平衡器 DNS 名稱。如果新負載平衡器出現任何問題,請更新 DNS 記錄以指向 Classic Load Balancer 的 DNS 名稱。TTL 值 "0" 可阻止對記錄進行快取。問題解決之後,請將 TTL 值退回原始值。
- 如果新的負載平衡器執行時沒有任何問題,請刪除舊的負載平衡器。
**注意:**新一代的負載平衡器不同時支援 HTTP/HTTPS 和 TCP 接聽程式。如果您將 Classic Load Balancer 同時與 HTTP/HTTPS 和 TCP 接聽程式搭配使用,則最佳實務是將 Network Load Balancer 與所有 TCP/TLS 接聽程式搭配使用。透過此變更,您會遺失 HTTP/ HTTPS 層級日誌記錄,因為 NLB 中沒有應用程式層級路由可提供。另一種方法是繼續使用 Classic Load Balancer。