Amazon EC2
AWS 雲端
Elastic Load Balancing 入門


  • 一般問題

    問:如何決定要為應用程式選取哪個負載平衡器?

    Elastic Load Balancing 支援三種負載平衡器類型。您可以根據應用程式的需要選擇最適合的負載平衡器。如果您需要彈性的應用程式管理和 TLS 終止,建議您使用 Application Load Balancer。如果應用程式需要絕佳的效能和靜態 IP,建議您使用 Network Load Balancer。如果您的應用程式建立在 EC2 Classic 網路內,則應該使用 Classic Load Balancer。

    問:是否可在不使用公有 IP 的情況下,從 Amazon Virtual Private Cloud (VPC) 以私有方式存取 Elastic Load Balancing API?

    是,您可以透過建立 VPC 端點,從 Amazon Virtual Private Cloud (VPC) 以私有方式存取 Elastic Load Balancing API。使用 VPC 端點,AWS 網路會處理 VPC 和 Elastic Load Balancing API 之間的路由,無須使用網際網路閘道、NAT 閘道或 VPN 連接。Elastic Load Balancing 使用的最新一代 VPC 端點採用 AWS PrivateLink 技術,這項 AWS 技術可使用彈性網路界面 (ENI) 搭配 VPC 的私有 IP 啟用 AWS 服務間的私有連線。要進一步了解 AWS PrivateLink,請參閱 AWS PrivateLink 文件
     

  • Application Load Balancer

    問:Application Load Balancer 支援哪些作業系統?
    Application Load Balancer 可在 Amazon EC2 服務目前所支援的任何作業系統支援目標。

    問:Application Load Balancer 支援哪些協定?
    Application Load Balancer 支援對使用 HTTP 和 HTTPS (安全 HTTP) 協定的應用程式執行負載平衡。

    問:Application Load Balancer 是否支援 HTTP/2?
    是。Application Load Balancer 原本就已啟用 HTTP/2 支援。支援 HTTP/2 的用戶端可以透過 TLS 連接到 Application Load Balancer。

    問:可以使用哪些 TCP 連接埠執行負載平衡?
    您可以為下列 TCP 連接埠執行負載平衡:1-65535

    問:Application Load Balancer 是否支援 WebSocket?
    是。Application Load Balancer 原本就已提供 WebSocket 和安全 WebSocket 支援,且隨時可以使用。

    問:Application Load Balancer 是否支援請求追蹤?
    是。Application Load Balancer 預設會啟用請求追蹤。

    問:現有的負載平衡器 (Classic Load Balancer) 是否可以與 Application Load Balancer 獲得相同的功能和權益?
    雖然有一些重疊的功能,但我們目前不打算在這兩種負載平衡器提供相同的功能。Application Load Balancer 是我們未來應用程式層負載平衡平台的基礎。

    問:是否可以將 Amazon EC2 執行個體設定為僅接受來自 Application Load Balancer 的流量?
    是。

    問:是否可為 Application Load Balancer 的前端設定安全群組?
    是。

    問:我是否可在 Application Load Balancer 使用在 Classic Load Balancer 所用的現有 API?
    否。Application Load Balancer 需要一組新的 API。

    問:如何同時管理 Application Load Balancer 和 Classic Load Balancer?
    ELB 主控台可讓您從相同的界面管理 Application 和 Classic Load Balancer。如果您使用 CLI 或 SDK,則需要在 Application Load Balancer 使用不同的「服務」。例如,在 CLI 中,您將使用 `aws elb describe-load-balancers` 描述 Classic Load Balancer,並使用 `aws elbv2 describe-load-balancers` 描述 Application Load Balancer。

    問:是否可將 Classic Load Balancer 轉換成 Application Load Balancer (反之亦然)?
    否。您無法將負載平衡器從一種類型轉換成另一種類型。

    問:如何遷移到 Application Load Balancer?
    同時將相同的後端執行個體連接到 Classic Load Balancer 和 Application Load Balancer。這可讓您將流量從一個終端節點遷移到另一個終端節點,且無須改變現有的堆疊。將 DNS 變更為指向 Application Load Balancer 之前,務必先在新的平台上測試應用程式的行為。

    問:是否可使用 Application Load Balancer 做為第 4 層負載平衡器?
    否。如果您需要 Layer-4 功能,則應該使用 Network Load Balancer。

    問:是否可使用單一 Application Load Balancer 處理 HTTP 和 HTTPS 請求?
    是,您可以在單一 Application Load Balancer 新增 HTTP 連接埠 80 和 HTTPS 連接埠 443 的接聽程式。

    問:我是否可以取得從我的帳戶發出的所有 Application Load Balancing API 呼叫的歷史記錄,以便用於安全分析和營運方面的故障排除?
    是。要取得從您的帳戶發出的應用程式負載平衡 API 呼叫歷史記錄,請使用 AWS CloudTrail

    問:Application Load Balancer 是否支援 HTTPS 終止?
    是。您可以在 Application Load Balancer 上終止 HTTPS 連接。您必須在負載平衡器上安裝 SSL 憑證。負載平衡器使用此憑證終止連接,然後解密用戶端的請求,再將它們傳送到目標。

    問:取得 SSL 憑證的步驟為何?
    您可以使用 AWS Certificate Manager 佈建 SSL/TLS 憑證,或者透過下列步驟從其他來源取得憑證:建立憑證請求、取得由 CA 簽署的憑證請求,然後使用 AWS Certification ManagerAWS Identity and Access Management (IAM) 服務上傳憑證。

    問:Application Load Balancer 如何與 AWS Certificate Manager (ACM) 整合?
    Application Load Balancer 已與 AWS Certificate Management (ACM) 整合。與 ACM 整合可非常輕鬆地將憑證繫結到負載平衡器,進而讓整個 SSL 卸載程序更加容易。購買、上傳和續約 SSL/TLS 憑證是耗時而複雜的手動程序。ACM 與 Application Load Balancer 整合之後,這整個程序已簡化為只要請求信任的 SSL/TLS 憑證,然後選取 ACM 憑證就能將它佈建到負載平衡器。

    問:Application Load Balancer 是否支援後端伺服器身份驗證?
    否,Application Load Balancer 僅支援後端加密。

    問:如何啟用 Application Load Balancer 的伺服器名稱指示 (SNI)?
    當您將一個以上的 TLS 憑證關聯到負載平衡器上相同的安全接聽程式時,就會自動啟用 SNI。同樣地,當您只將一個憑證關聯到一個安全接聽程式時,則安全接聽程式的 SNI 模式就會自動停用。

    問:是否可將相同網域的多個憑證關聯到一個安全接聽程式?
    是,您可以將相同網域的多個憑證關聯到一個安全接聽程式。例如,您可以關聯以下憑證:
    (a) ECDSA 和 RSA 憑證
    (b) 針對 SSL/TLS 憑證使用含有不同金鑰大小 (例如,2K 和 4K) 的憑證
    (c) 單一網域、多個網域 (SAN) 和萬用字元憑證

    問:Application Load Balancer 是否支援 IPv6?
    是,Application Load Balancer 支援 IPv6。

    問:如何在 Application Load Balancer 上設定規則?
    您可以為每個設定的負載平衡器接聽程式設定規則。這些規則包含條件,以及滿足這些條件時的對應動作。條件會是服務的路徑 URL 路徑 (例如 /img),並會轉發動作。設定完成之後,負載平衡器將使用規則判斷必須將請求路由到哪個服務。

    問:Application Load Balancer 的資源是否有限制?
    您的 AWS 帳戶會提供這些 Application Load Balancer 限制。

    問:我如何保護負載平衡器後方的 Web 應用程式不受 Web 攻擊?
    您可將 Application Load Balancer 與 AWS WAF 整合,AWS WAF 是一種 Web 應用程式防火牆,可讓您根據 IP 地址、HTTP 標頭和自訂 URI 字串來設定規則,協助保護 Web 應用程式不受攻擊。AWS WAF 可使用這些規則封鎖、允許或監控 (計算) Web 應用程式的 Web 請求。請參閱 AWS WAF Developer Guide 了解更多資訊。

    問:是否可以對任意 IP 地址進行負載平衡?
    您可以使用來自負載平衡器 VPC 內目標的負載平衡器 VPC CIDR 的任何 IP 地址,以及來自位於負載平衡器 VPC 外部目標 (例如,可透過 AWS Direct Connect 或 VPN 連接進行連線之對等 VPC、EC2-Classic 及現場部署位置的目標) 的 RFC 1918 範圍 (10.0.0.0/8、172.16.0.0/12 及 192.168.0.0/16) 或 RFC 6598 範圍 (100.64.0.0/10) 的任何 IP 地址。

    問:如何針對跨 VPC 和現場部署位置分發的應用程式進行負載平衡?
    有多種方式可以達到混合負載平衡目的。如果應用程式於分散在 VPC 和現場部署位置的目標上執行,您可以使用它們的 IP 地址將它們新增至相同的目標群組。若要在不影響應用程式的情況下遷移至 AWS,請以逐步新增方式將 VPC 目標新增至目標群組,然後將現場部署目標從目標群組中移除。如果您有兩個不同的應用程式,其中一個應用程式的目標位於 VPC,另一個應用程式的目標位於現場部署位置,您可以將 VPC 目標放在一個目標群組,將現場部署目標放在另一個目標群組,然後使用以內容為基礎的路由功能,將流量路由到每個目標群組。您也可以針對 VPC 和現場部署目標使用個別的負載平衡器,以及在 VPC 和現場部署目標之間使用 DNS 加權來實現加權負載平衡。

    問:是否可以對 EC2-Classic 執行個體進行負載平衡?
    將 EC2-Classic 執行個體的執行個體 ID 註冊為目標時,無法對這些執行個體進行負載平衡。但是,如果您使用 ClassicLink 將這些 EC2-Classic 執行個體連結至負載平衡器的 VPC,然後使用這些 EC2-Classic 執行個體的私有 IP 做為目標,就可以對 EC2-Classic 執行個體進行負載平衡。如果您目前使用 EC2 Classic 執行個體搭配 Classic Load Balancer,可以輕鬆地遷移至 Application Load Balancer。

    問:Application Load Balancer 定價的運作方式?
    我們按 Application Load Balancer 執行小時數及每小時使用的負載平衡器容量單位 (LCU) 數計算,不足一小時按一小時計費。

    問:什麼是負載平衡器容量單位 (LCU)?
    LCU 是決定 Application Load Balancer 付費方式的新指標。LCU 可定義 Application Load Balancer 處理流量時在各定價方式 (新連線、作用中連線、頻寬和規則評估) 消耗的最高資源量。

    問:Classic Load Balancer 是否依 LCU 計費?
    否,Classic Load Balancer 將持續以頻寬和每小時用量計費。

    問:如何知道 Application Load Balancer 使用多少 LCU?
    我們透過 CloudWatch 公開四個組成 LCU 的定價方式用量。

    問:LCU 是否會將所有定價方式列入計費?
    否。每小時的 LCU 數是依據組成 LCU 的三種定價方式中最高的資源消耗量計費。

    問:不足一個單位的 LCU 是否會列入計費?
    是。

    問:是否為新的 AWS 帳戶提供 Application Load Balancer 免費方案?
    是。對於新的 AWS 帳戶,Application Load Balancer 免費方案提供 750 小時和 15 個 LCU。此免費方案僅適用於 AWS 新客戶,註冊 AWS 後的 12 個月內均可使用。

    問:是否可以在免費方案合併使用 Application Load Balancer 和 Classic Load Balancer?
    是。您可以同時使用 Classic 和 Application Load Balancer,且可個別使用 15 GB 和 15 個 LCU。750 個負載平衡器小時數則由 Classic 和 Application Load Balancer 共用。

    問:什麼是規則評估?
    規則評估的算法是將處理的規則數量乘以一個小時的平均請求率。

    問:如何計算不同憑證類型和金鑰大小的 LCU 費用?
    以 LCU 運算計費時,憑證金鑰大小只會影響每秒新連線數。
    下表針對不同 RSA 和 ECDSA 憑證金鑰大小列出此計費方式的值。 

    RSA 憑證        
    金鑰大小 <=2K  <=4K  <=8K  >8K 
    新連線/秒 25 5 1 0.25
    ECDSA 憑證        
    金鑰大小  <=256 <=384 <=521 >521 
    新連線/秒 25 5 1 0.25
  • Network Load Balancer

    問:是否可為 Network Load Balancer 建立 TCP (Layer 4) 接聽程式?

    是。Network Load Balancer 僅支援 TCP (Layer 4) 接聽程式。

    問:Network Load Balancer 提供哪些重要功能?

    Network Load Balancer 提供 TCP (Layer 4) 負載平衡。其架構每秒可處理數百萬個請求、突然變化的流量模式,以及提供極低的延遲。此外,Network Load Balancer 還可保留用戶端的來源 IP,並提供穩定的 IP 支援和可用區域隔離。同時還支援對 WebSocket 類型應用程式非常實用的長時間執行連線。

    問:Network Load Balancer 與 Classic Load Balancer 上的 TCP 接聽程式有何不同?

    Network Load Balancer 可保留用戶端的來源 IP,但 Classic Load Balancer 無法保留。客戶可使用代理協定搭配 Classic Load Balancer 取得來源 IP。Network Load Balancer 自動為負載平衡器提供每個可用區域的靜態 IP,同時在每個可用區域為負載平衡器指派一個彈性 IP。Classic Load Balancer 不支援這些功能。Classic Load Balancer 提供 Network Load Balancer 所沒有的 SSL 終止。

    問:如何從 Classic Load Balancer 遷移到 Network Load Balancer?

    同時將相同的後端目標連接到 Classic Load Balancer 和 Network Load Balancer。這可讓您將流量從一個終端節點遷移到另一個終端節點,且無須改變現有的堆疊。將 DNS 變更為指向 Network Load Balancer 之前,務必先在新的平台上測試應用程式的行為。

    問:Network Load Balancer 的資源是否有限制?

    是,請參閱 Network Load Balancer 限制文件以取得詳細資訊。

    問:是否可使用 AWS 管理主控台設定我的 Network Load Balancer?

    是,您可以使用 AWS 管理主控台、AWS CLI 或 API 設定 Network Load Balancer。

    問:是否可在 Network Load Balancer 使用 Classic Load Balancer 的現有 API?

    否。若要建立 Classic Load Balancer,請使用 2012-06-01 API。若要建立 Network Load Balancer 或 Application Load Balancer,請使用 2015-12-01 API。

    問:是否可在單一可用區域建立 Network Load Balancer?

    是,建立負載平衡器時提供一個子網路,即可在單一可用區域建立 Network Load Balancer。

    問:Network Load Balancer 是否支援 DNS 區域和可用區域備援?

    是,您可以使用 Amazon Route 53 運作狀態檢查和 DNS 備援功能來增強在 Network Load Balancer 監管之下執行的應用程式可用性。使用 Route 53 DNS 備援,您可以在多個 AWS 可用區域執行應用程式,並跨區域指定備用負載平衡器以進行容錯移轉。在 Network Load Balancer 已設定異地同步備份的情況下,如果該可用區域的負載平衡器沒有已註冊的運作狀態良好 EC2 執行個體,或者該區域的負載平衡器節點運作狀態不良,則 R-53 會容錯移轉到其他運作狀態良好可用區域的備用負載平衡器節點。

    問:Network Load Balancer 是否可混搭 ELB 提供的 IP 和彈性 IP 或指派的私有 IP?

    否。Network Load Balancer 地址只能由您完全掌控,或由 ELB 完全掌控。這樣才能確保在 Network Load Balancer 使用彈性 IP 時,用戶端已知的所有地址都不會改變。

    問:是否可以在每個子網路的 NLB 指派一個以上的 EIP?

    否。在 NLB 所在的每個關聯子網路,NLB 只能支援一個與公有/網際網路連結的 IP 地址

    問:如果移除/刪除 Network Load Balancer,與其關聯的彈性 IP 地址會發生什麼情況?

    與負載平衡器關聯的彈性 IP 地址將會傳回您分配的集區以供日後使用。

    問:NLB 是否支援內部負載平衡器?

    您可以將 NLB 設定為與網際網路連結的負載平衡器或內部負載平衡器,與 Application Load Balancer 和 Classic Load Balancer 類似。

    問:內部 Network Load balancer 是否可在每個子網路支援一個以上的私有 IP?

    否。在負載平衡器所在的每個關聯子網路,NLB 只能支援一個私有 IP。

    問:是否可使用 Network Load Balancer 設定 Websockets?

    是,將 TCP 接聽程式設為將流量路由到實作 WebSockets 協定 (https://tools.ietf.org/html/rfc6455) 的目標。由於 WebSockets 是 layer 7 協定,而 Network Load Balancer 在 layer 4 運作,因此 Network Load Balancer 沒有處理 WebSockets 或其他較高級協定的特殊處理程序。

    問:是否可以對任意 IP 地址進行負載平衡?

    您可以使用來自負載平衡器 VPC 內目標的負載平衡器 VPC CIDR 的任何 IP 地址,以及來自位於負載平衡器 VPC 外部目標 (可透過 AWS Direct Connect 進行連線的 EC2-Classic 及現場部署位置) 的 RFC 1918 範圍 (10.0.0.0/8、172.16.0.0/12 及 192.168.0.0/16) 或 RFC 6598 範圍 (100.64.0.0/10) 的任何 IP 地址。

    問:不使用執行個體 ID,改用 IP 地址將負載平衡器後方的容器設為目標時,可以獲得哪些好處?

    執行個體上的每個容器現在都可以擁有自己的安全群組,不需要和其他容器共享安全規則。您可以將安全群組連接至 ENI,且執行個體上的每個 ENI 都可以有不同的安全群組。您可以將容器對應至特定 ENI 的 IP 地址,以依據容器建立與安全群組的關聯。使用 IP 地址進行負載平衡也能夠讓在執行個體上執行的多個容器使用相同連接埠 (例如連接埠 80)。跨容器使用相同連接埠的能力可讓執行個體上的容器透過熟知的連接埠 (而非隨機連接埠) 互相通訊。

    問:如何針對跨 VPC 和現場部署位置分發的應用程式進行負載平衡?

    有多種方式可以達到混合負載平衡目的。如果應用程式於分散在 VPC 和現場部署位置的目標上執行,您可以使用它們的 IP 地址將它們新增至相同的目標群組。若要在不影響應用程式的情況下遷移至 AWS,請以逐步新增方式將 VPC 目標新增至目標群組,然後將現場部署目標從目標群組移除。您也可以針對 VPC 和現場部署目標使用個別的負載平衡器,以及在 VPC 和現場部署目標之間使用 DNS 加權來實現加權負載平衡。

    問:是否可以對 EC2-Classic 執行個體進行負載平衡?

    將 EC2-Classic 執行個體的執行個體 ID 註冊為目標時,無法對這些執行個體進行負載平衡。但是,如果您使用 ClassicLink 將這些 EC2-Classic 執行個體連結至負載平衡器的 VPC,然後使用這些 EC2-Classic 執行個體的私有 IP 做為目標,就可以對 EC2-Classic 執行個體進行負載平衡。如果您目前使用 EC2 Classic 執行個體搭配 Classic Load Balancer,可以輕鬆地遷移至 Network Load Balancer。

    問:Network Load Balancer 定價的運作方式?

    我們按 Network Load Balancer 執行小時數及 Network Load Balancer 每小時使用的負載平衡器容量單位 (LCU) 數計算,不足一小時按一小時計費。

    問:什麼是負載平衡器容量單位 (LCU)?

    LCU 是決定 Network Load Balancer 付費方式的新指標。LCU 可定義 Network Load Balancer 處理流量時在各定價方式 (新連線/流程、作用中連線/流程和頻寬) 消耗的最高資源量。

    問:每秒新連線/流程數是否與每秒請求數相同?

    否。單一連線可傳送多個請求。

    問:Classic Load Balancer 是否依 LCU 計費?

    否。Classic Load Balancer 將持續以頻寬和每小時用量計費。

    問:如何知道 Network Load Balancer 使用多少 LCU?

    我們將透過 Amazon CloudWatch 公開組成 LCU 的三種定價方式用量。

    問:LCU 是否會將所有定價方式列入計費?

    否。每小時的 LCU 數是依據組成 LCU 的三種定價方式中最高的資源消耗量計費。

    問:不足一個單位的 LCU 是否會列入計費?

    是。

    問:是否為新的 AWS 帳戶提供 Network Load Balancer 免費方案?

    是。對於新的 AWS 帳戶,Network Load Balancer 免費方案提供 750 小時和 15 個 LCU。此免費方案僅適用於 AWS 新客戶,註冊 AWS 後的 12 個月內均可使用。

    問:是否可以在免費方案合併使用 Network Load Balancer、Application Load Balancer 和 Classic Load Balancer?

    是。您可以在 Application 和 Network 個別使用 15 個 LCU,Classic 則可使用 15 GB。750 個負載平衡器小時數則由 Application、Network 和 Classic Load Balancer 共用。

  • Classic Load Balancer

    問:Classic Load Balancer 支援哪些作業系統?

    Classic Load Balancer 可在 Amazon EC2 服務目前所支援的任何作業系統上支援 Amazon EC2 執行個體。

    問:Classic Load Balancer 支援哪些協定?
    Classic Load Balancer 支援對使用 HTTP、HTTPS (安全 HTTP)、SSL (安全 TCP) 和 TCP 協定的應用程式執行負載平衡。

    問:可以為哪些 TCP 連接埠執行負載平衡?
    您可以為下列 TCP 連接埠執行負載平衡:

    • [EC2-VPC] 1-65535
    • [EC2-Classic] 25, 80, 443, 465, 587, 1024-65535

    問:Classic Load Balancer 是否支援 IPv6 流量?
    是。每個 Classic Load Balancer 都有一個關聯的 IPv4、IPv6,以及雙協議棧 (IPv4 和 IPv6) DNS 名稱。VPC 不支援 IPv6。您可以使用 Application Load Balancer 為 VPC 提供原生 IPv6 支援。

    問:是否可以將 Amazon EC2 執行個體設定為僅接受來自 Classic Load Balancer 的流量?
    是。

    問:是否可為 Classic Load Balancer 的前端設定安全群組?
    如果您使用的是 Amazon Virtual Private Cloud,則可以為 Classic Load Balancer 的前端設定安全群組。

    問:是否可以使用單一 Classic Load Balancer 處理 HTTP 和 HTTPS 請求?
    是,您可以將 HTTP 連接埠 80 和 HTTPS 連接埠 443 對應到單一 Classic Load Balancer。

    問:已執行負載平衡的 Amazon EC2 執行個體需要從每個 Classic Load Balancer 接受多少個連線?
    Classic Load Balancer 並不為其可以嘗試與您已負載平衡的 Amazon EC2 執行個體建立的連接數設置上限。您會發現此數值會隨著並行 HTTP、HTTPS 或 SSL 請求的數量,或者 Classic Load Balancer 收到的並行 TCP 連接數而擴展。

    問:是否可以對使用已支付 AMI 啟動的 Amazon EC2 執行個體執行負載平衡?
    您可以從 AWS Marketplace 對使用已支付 AMI 啟動的 Amazon EC2 執行個體執行負載平衡。但是,Classic Load Balancer 不支援從 Amazon DevPay 網站使用已支付 AMI 啟動的執行個體。

    問:是否可以在 Amazon Virtual Private Cloud 中使用 Classic Load Balancer?
    可以,請參閱 Elastic Load Balancing 網頁。

    問:我是否可以取得從我的帳戶發出的所有 Classic Load Balancer API 呼叫的歷史記錄,以便用於安全分析和營運方面的故障排除?
    是。要收到從您的帳戶發出的所有 Classic Load Balancer API 呼叫的歷史記錄,只需在 AWS 管理主控台中開啟 CloudTrail 即可。

    問:Classic Load Balancer 是否支援 SSL 終止?
    是,您可以在 Classic Load Balancer 上終止 SSL。您必須在每個負載平衡器上安裝 SSL 憑證。負載平衡器使用此憑證終止連接,然後解密用戶端的請求,再將它們傳送到後端執行個體。

    問:取得 SSL 憑證的步驟為何?
    您可以使用 AWS Certificate Manager 佈建 SSL/TLS 憑證,或者透過下列步驟從其他來源取得憑證:建立憑證請求、取得由 CA 簽署的憑證請求,然後使用 AWS Identity and Access Management (IAM) 服務上傳憑證。

    問:Classic Load Balancer 如何與 AWS Certificate Manager (ACM) 整合?
    Classic Load Balancer 現在已與 AWS Certificate Management (ACM) 整合。與 ACM 整合可非常輕鬆地將憑證繫結到每個負載平衡器,進而讓整個 SSL 卸載程序更加容易。購買、上傳和續約 SSL/TLS 憑證通常是耗時而複雜的手動程序。ACM 與 Classic Load Balancer 整合之後,這整個程序已簡化為只要請求信任的 SSL/TLS 憑證,然後選取 ACM 憑證就能將它佈建到每個負載平衡器。