Amazon EC2
AWS 雲端
Elastic Load Balancing 入門
高可用性

高可用性

Elastic Load Balancing 可將流量自動分發到單一可用區域或多個可用區域的多個目標,像是 Amazon EC2 執行個體、容器和 IP 地址。

運作狀態檢查

運作狀態檢查

Elastic Load Balancing 可以偵測運作狀態不佳的目標、停止將流量傳送到這些目標,然後將負載平均地分配給其餘運作狀態良好的目標。

安全功能

安全功能

使用 Amazon Virtual Private Cloud (Amazon VPC) 可以建立和管理與負載平衡器關聯的安全群組,以提供更多的聯網和安全選項。您也可以建立內部 (不與網際網路連接) 的負載平衡器。

TLS 終止

TLS 終止

Elastic Load Balancing 提供已整合的憑證管理和 SSL 解密功能,允許您靈活地集中管理負載平衡器的 SSL 設定,以及從應用程式卸載 CPU 密集型工作。

Layer 4 或 Layer 7 負載平衡

Layer 4 或 Layer 7 負載平衡

您可以使用 Layer 7 特有功能對 HTTP/HTTPS 應用程式執行負載平衡,或對僅依賴 TCP 協定的應用程式使用嚴格的 Layer 4 負載平衡。

操作監控

操作監控

Elastic Load Balancing 提供與 Amazon CloudWatch 指標的整合,以及請求追蹤以即時監控應用程式的效能。

您可以根據應用程式的需要選擇最適合的負載平衡器。如果您需要彈性的應用程式管理,建議您使用 Application Load Balancer。如果應用程式需要絕佳的效能和靜態 IP,建議您使用 Network Load Balancer。如果您目前已有在 EC2-Classic 網路內建置的應用程式,則應使用 Classic Load Balancer

功能

Application Load Balancer

Network Load Balancer

Classic Load Balancer

協定

HTTP、HTTPS

TCP

TCP、SSL、HTTP、HTTPS

平台

VPC

VPC

EC2-Classic,VPC

運作狀態檢查

CloudWatch 指標

記錄日誌

可用區域備援

連接耗盡 (取消註冊延遲)

負載平衡到相同執行個體上的多個連接埠

 

WebSocket

 

以 IP 地址做為目標
 

負載平衡器刪除保護

 

以路徑為基礎的路由

 

 

以主機為基礎的路由

 

 

原生 HTTP/2

 

 

可設定的閒置連接逾時
 

跨區域負載平衡

 

SSL 卸載

 

伺服器名稱指示 (SNI)    

黏性工作階段

 

後端伺服器加密

 

靜態 IP

 

 

彈性 IP 地址

 

 

保留來源 IP 地址

 

 

  • Application Load Balancer

    Application Load Balancer 在請求層 (Layer 7) 運作,根據請求的內容將流量路由到目標 (EC2 執行個體、容器及 IP 地址)。Application Load Balancer 適合用於 HTTP 和 HTTPS 流量的進階負載平衡,它針對現代應用程式架構 (包括微型服務和以容器為基礎的應用程式) 提供進階的請求路由。Application Load Balancer 透過一律使用最新的 SSL/TLS 加密技術和協定,以簡化和改進應用程式的安全性。

    第 7 層負載平衡
    您可以對 HTTP/HTTPS 應用程式執行負載平衡,並使用第 7 層特有的功能,如 X-Forwarded-For 標頭。

    HTTPS 支援
    Application Load Balancer 支援用戶端和負載平衡器之間的 HTTPS 終止。Application Load Balancer 還透過 AWS Identity and Access Management (IAM) 和 AWS Certificate Manager 提供 SSL 憑證管理,用於預先定義安全政策。

    伺服器名稱指示 (SNI)
    伺服器名稱指示 (SNI) 是 TLS 協定的延伸,用戶端可用它指定 TLS 信號交換開始時要連接的主機名稱。負載平衡器可透過相同的安全接聽程式出示多個憑證,使其能夠使用單一安全接聽程式支援多個安全網站。Application Load Balancer 還藉由 SNI 支援智慧憑證選擇演算法。如果用戶端指示的主機名稱符合多個憑證,負載平衡器將依據包含用戶端能力等多項因素,判斷要使用的最佳憑證。

    以 IP 地址做為目標
    您可以使用應用程式後端的 IP 地址做為目標,針對 AWS 或現場部署託管的任何應用程式進行負載平衡。這可以讓您針對在任何 IP 地址和執行個體上任何界面託管的應用程式後端進行負載平衡。在相同執行個體上託管的每個應用程式皆可擁有關聯的安全群組,且可以使用相同的連接埠。您也可以使用 IP 地址做為目標,針對在現場部署位置 (透過 Direct Connect 或 VPN 連接)、對等 VPC 及 EC2-Classic (使用 ClassicLink) 託管的應用程式進行負載平衡。跨 AWS 和現場部署資源進行負載平衡的功能可協助您遷移至雲端、升級至雲端,或容錯移轉至雲端。

    高可用性
    您需要在 Application Load Balancer 指定一個以上的可用區域。您可以將傳入流量分配到多個可用區域的目標。Application Load Balancer 會自動擴展請求處理容量,以因應傳入的應用程式流量。

    安全功能
    使用 Amazon Virtual Private Cloud (Amazon VPC) 時,您可以建立和管理與 Elastic Load Balancing 關聯的安全群組,以提供更多的聯網和安全選項。您可以將 Application Load Balancer 設定為與網際網路連接,或建立不含公有 IP 地址的負載平衡器以做為內部 (不與網際網路連接) 的負載平衡器。

    以內容為基礎的路由
    如果您的應用程式是由多項個別服務組成,Application Load Balancer 可依據請求內容將請求路由到服務。

            以主機為基礎的路由
            您可以根據 HTTP 標頭的主機欄位路由用戶端請求,以便從相同的負載平衡器路由到多個網域。

            以路徑為基礎的路由
            您可以根據 HTTP 標頭的 URL 路徑路由用戶端請求。

    容器化的應用程式支援
    Application Load Balancer 利用在單一 Amazon EC2 執行個體的多個連接埠執行負載平衡,增強了對容器的支援。與 Amazon EC2 Container Service (ECS) 的深度整合可提供全受管容器產品。ECS 可讓您在 ECS 任務定義指定動態連接埠,當容器在 EC2 執行個體進行排程時給予未使用的連接埠。ECS 排程器會使用此連接埠自動將任務新增到負載平衡器。

    HTTP/2 支援
    HTTP/2 是新的 HyperText Transfer Protocol (HTTP) 版本,它使用單一多工連接,可在相同的連接傳送多個請求。同時還能在使用二進位格式傳送標頭資料之前進行壓縮,並支援用戶端的 TLS 連接。

    WebSocket 支援
    WebSocket 可讓伺服器與最終使用者交換即時訊息,最終使用者無須向伺服器請求 (或輪詢) 更新。在長時間執行的 TCP 連接中,WebSocket 協定會在用戶端與伺服器之間提供雙向的通訊管道。

    原生 IPv6 支援
    Application Load Balancer 支援 VPC 中的原生網際網路協定版本 6 (IPv6)。這可讓用戶端透過 IPv4 或 IPv6 連接到 Application Load Balancer。

    黏性工作階段
    黏性工作階段是將請求從相同用戶端路由到相同目標的機制。Application Load Balancer 支援使用負載平衡器產生的 Cookie 的黏性工作階段。如果您啟用黏性工作階段,相同的目標會收到請求,並可使用 Cookie 復原工作階段內容。粘性定義在目標群組層級中。

    運作狀態檢查
    Application Load Balancer 只會將流量路由到運作狀態良好的目標。使用 Application Load Balancer,您可以透過兩種方式增進對應用程式運作狀態的洞見:(1) 運作狀態檢查改進功能可讓您設定 200-499 的詳細錯誤代碼。運作狀態檢查可讓您監控負載平衡器後方每個服務的運作狀態;以及 (2) 新的指標則可深入了解 EC2 執行個體上執行的每個服務流量。

    操作監控
    Amazon CloudWatch 會報告 Application Load Balancer 的指標,例如請求計數、錯誤計數、錯誤類型和請求延遲。

    記錄日誌
    您可以使用存取日誌功能記錄傳送到負載平衡器的所有請求,並將日誌存放在 Amazon S3 中供以後分析之用。將日誌壓縮且副檔名為 gzip。壓縮的日誌可節省儲存空間和傳輸頻寬,對於診斷應用程式故障和分析 Web 流量非常有用。

    您也可以使用 AWS CloudTrail 記錄帳戶的 Application Load Balancer API 呼叫並傳送日誌檔。API 呼叫歷史記錄可讓您執行安全分析、資源變更追蹤和合規性審核。

    刪除保護
    您可以在 Application Load Balancer 上啟用刪除保護,以避免不小心遭到刪除。

    請求追蹤
    Application Load Balancer 會在進入負載平衡器的所有請求插入新的自訂識別符 "X-Amzn-Trace-Id" HTTP 標頭。請求追蹤讓您能夠透過請求的唯一 ID,在請求通過構成您網站和分散式應用程式的各項服務時追蹤請求。您可以使用這個唯一追蹤識別符,以個別要求的精細度找出應用程式堆疊中的任何效能或時間問題。

    Web 應用程式防火牆
    您現在可以使用 AWS WAF 來保護 Application Load Balancer 上的 Web 應用程式。AWS WAF 是一種 Web 應用程式防火牆,可協助保護您的 Web 應用程式不受可能影響應用程式可用性、安全性危害、或耗用過多資源的常見 Web 入侵程式的侵擾。

  • Network Load Balancer

    Network Load Balancer 在連線層 (Layer 4) 運作,根據 IP 協定資料將連線路由至目標 (Amazon EC2 執行個體、容器及 IP 地址)。Network Load Balancer 適合用於 TCP 流量的負載平衡,每秒能夠處理數百萬個請求,同時保持超低延遲。Network Load Balancer 已經過優化,在每個可用區域中使用單一靜態 IP 地址即可處理突發與臨時性的流量模式。它已經與其他熱門 AWS 服務整合,例如 Auto Scaling、Amazon EC2 Container Service (ECS) 和 Amazon CloudFormation。

    以連線為基礎的負載平衡
    您可以平衡 TCP 流量的負載,將連線路由到目標 (Amazon EC2 執行個體、微型服務和容器以及 IP 地址)。

    高可用性
    Network Load Balancer 具備高度可用性。它可接受用戶端傳入的流量,然後將這些流量分發到同一可用區域內的多個目標。負載平衡器還會監控其已註冊目標的運作狀態,並確保只將流量路由到運作狀態良好的目標。當負載平衡器偵測到運作狀態不佳的目標時,它會停止將流量路由到該目標,並將流量路由到剩餘的運作狀態良好的目標。如果一個可用區域中所有目標的運作狀態都不佳,但您已在其他可用區域中設定目標,Network Load Balancer 就會自動執行容錯移轉,將流量路由到這些其他可用區域中運作狀態良好的目標。

    高輸送量
    Network Load Balancer 的設計旨在處理不斷成長的流量,可以每秒平衡數百萬個請求的負載。它也可以處理突然變化的流量模式。

    低延遲
    Network Load Balancer 提供極低的延遲,適用於對延遲敏感的應用程式。

    保留來源 IP 地址
    Network Load Balancer 會保留用戶端來源 IP,以便後端查看用戶端的 IP 地址。然後,應用程式可利用它執行進一步處理。

    靜態 IP 支援
    Network Load Balancer 會自動為每個可用區域 (子網路) 提供靜態 IP,應用程式可使用它做為負載平衡器的前端 IP。

    彈性 IP 支援
    Network Load Balancer 也允許您選擇為每個可用區域 (子網路) 指派彈性 IP,因此可提供您自己的固定 IP。

    運作狀態檢查
    Network Load Balancer 支援網路和應用程式目標的運作狀態檢查。網路層級的運作狀態是根據目標對正常流量的整體回應。如果目標變得無法使用或速度過慢而無法回應新連線,則負載平衡器會將目標標示為不可用。應用程式層級的運作狀態檢查還可用於其他操作。透過定期在指定目標上探查特定 URL,即可整合實際應用程式的運作狀態。對於快速診斷和功能強大的偵錯,也可透過 Network Load Balancer API 中的 'reason codes' 以及與目標運作狀態檢查關聯的 Amazon CloudWatch 指標,完整掌握運作狀態檢查及其可能的故障原因。

    DNS 容錯移轉
    如果在 Network Load Balancer 中註冊的目標都處於運作不佳的狀態,或是特定區域中的 Network Load Balancer 節點的運作都不佳,則 Amazon Route 53 會將流量導向到其他可用區域中的負載平衡器節點。

    與 Amazon Route 53 整合
    如果您的 Network Load Balancer 沒有回應,則與 Route 53 的整合將可從服務中移除不可用的負載平衡器 IP 地址,並將流量導向另一個區域中的替代 Network Load Balancer。

    與 AWS 服務整合
    Network Load Balancer 已經與其他 AWS 服務整合,例如 Auto Scaling、Amazon EC2 Container Service (ECS)、AWS CloudFormation、AWS CodeDeploy 和 AWS Config。

    長效 TCP 連線
    Network Load Balancer 支援長效 TCP 連線,適合用於 WebSocket 類型的應用程式。

    集中 API 支援
    Network Load Balancer 使用與 Application Load Balancer 相同的 API。這讓您能夠在相同 Amazon EC2 執行個體的多個連接埠使用目標群組、執行運作狀態檢查及負載平衡,以支援容器化應用程式。

    強大的監控和稽核功能
    Amazon CloudWatch 會報告 Network Load Balancer 指標。CloudWatch 提供作用中流程計數、運作狀態良好主機計數、新流程計數、已處理位元組等指標。Network Load Balancer 也與 AWS CloudTrail 整合。CloudTrail 會追蹤 Network Load Balancer 的 API 呼叫。

    增強型日誌
    您可以使用 Flow Logs 功能記錄傳送至負載平衡器的所有請求。Flow Logs 會擷取 VPC 中進出網路界面的 IP 流量相關資訊。系統使用 Amazon CloudWatch Logs 存放流量日誌資料。

    區域隔離
    Network Load Balancer 是專為單一區域中的應用程式架構所設計。如果可用區域中發生故障,我們將自動容錯移轉到其他運作狀態良好的可用區域。雖然我們建議客戶在多個可用區域設定負載平衡器和目標以實現高可用性,但是您可在單一可用區域中啟用 Network Load Balancer,以支援需要區域隔離的架構。

    使用 IP 地址做為目標的負載平衡
    您可以使用應用程式後端的 IP 地址做為目標,針對 AWS 或現場部署託管的任何應用程式進行負載平衡。這可以讓您針對在任何 IP 地址和執行個體上任何界面託管的應用程式後端進行負載平衡。在相同執行個體上託管的每個應用程式皆可擁有關聯的安全群組,且可以使用相同的連接埠。您也可以使用 IP 地址做為目標,針對在現場部署位置 (透過 Direct Connect 連接) 和 EC2-Classic (使用 ClassicLink) 託管的應用程式進行負載平衡。跨 AWS 和現場部署資源進行負載平衡的功能可協助您遷移至雲端、升級至雲端,或容錯移轉至雲端。

  • Classic Load Balancer

    Classic Load Balancer 提供跨多個 Amazon EC2 執行個體的基本負載平衡功能,而且可同時在請求層與連線層運作。Classic Load Balancer 適用於在 EC2-Classic 網路內建立的應用程式。使用 Virtual Private Cloud (VPC) 時,我們建議使用 Layer 7 的 Application Load Balancer 和 Layer 4 的 Network Load Balancer。

    高可用性
    您可以將輸入流量分配到單一可用區域或多個可用區域中的 Amazon EC2 執行個體。Classic Load Balancer 會自動擴展請求處理容量,以因應傳入的應用程式流量。

    運作狀態檢查
    Classic Load Balancer 可偵測 Amazon EC2 執行個體的運作狀態。一旦偵測到運作狀態不佳的 EC2 執行個體,則不會再將流量路由到這些執行個體,而是將負載分佈到其他運作正常的執行個體。

    安全功能
    使用 Amazon Virtual Private Cloud (Amazon VPC) 時,您可以建立和管理與 Classic Load Balancer 關聯的安全群組,以提供更多的聯網和安全選項。您也可以建立不含公有 IP 地址的 Classic Load Balancer,以做為內部 (不與網際網路連接) 的負載平衡器。

    SSL 卸載
    Classic Load Balancer 支援 SSL 終止,包括從應用程式執行個體卸載 SSL 解密、集中管理 SSL 憑證,以及透過選用公開金鑰身份驗證加密後端執行個體。靈活的加密支援允許您控制負載平衡器向用戶端提供的加密方式和通訊協定。

    黏性工作階段
    Classic Load Balancer 支援使用 Cookie 將使用者工作階段黏貼到特定 Amazon EC2 執行個體。當使用者持續存取您的應用程式時,流量將路由到同一個執行個體。

    IPv6 支援
    Classic Load Balancer 支援對 EC2-Classic 網路使用網際網路協定版本 4 和 6 (IPv4 和 IPv6) 兩者。

    Layer 4 或 Layer 7 負載平衡
    您可以平衡 HTTP/HTTPS 應用程式的負載並使用 Layer 7 特有的功能,如 X-Forwarded 和黏性工作階段。您還可以對僅依賴 TCP 協定的應用程式使用嚴格的 Layer 4 負載平衡。

    操作監控
    由 Amazon CloudWatch 報告 Classic Load Balancer (如請求計數和請求延遲)。

    記錄日誌
    使用存取日誌功能記錄傳送至負載平衡器的所有請求,並將日誌存放在 Amazon S3 中供以後分析之用。日誌可用於診斷應用程式故障和分析 Web 流量。您可以使用 AWS CloudTrail 記錄帳戶的 Classic Load Balancer API 呼叫並傳送日誌檔。API 呼叫歷史記錄可讓您執行安全分析、資源變更追蹤和合規性審核。