如何在 Network Load Balancer 後面註冊 Application Load Balancer?

3 分的閱讀內容
0

我的 Application Load Balancer 需要一個靜態 IP 位址。我想在 Network Load Balancer 後面註冊 Application Load Balancer。

簡短說明

您無法為 Application Load Balancer 分配靜態 IP 地址。如果您的 Application Load Balancer 需要靜態 IP 地址,則最佳實踐是在 Network Load Balancer 後方註冊。無法變更為 Network Load Balancer 分配的靜態 IP 地址,並為您的 Application Load Balancer 提供固定的進入點。

**注意:**下列解決方法使用 Amazon Elastic Compute Cloud (Amazon EC2) 主控台上的新啟動體驗。若要完成這些步驟,請在 Amazon EC2 主控台中切換此功能。

解決方法

Amazon EC2 主控台

使用 Amazon EC2 主控台建立新的目標群組,並將 Application Load Balancer 註冊為目標。然後,建立並設定 Network Load Balancer,以將流量轉送至 Application Load Balancer。

為 TCP 80 和 TCP 443 流量建立新的目標群組,並將您的 Application Load Balancer 註冊為目標

若要為 Amazon EC2 執行個體建立新的目標群組並註冊目標,請完成下列步驟:

  1. 開啟 Amazon EC2 主控台
  2. 在導航窗格中,展開負載平衡,然後選擇目標群組
  3. 選擇建立目標群組
  4. 對於選擇目標類型,選擇 Application Load Balancer
  5. 對於目標群組名稱,輸入目標群組的名稱。
  6. 對於協定,選擇 TCP,然後對於連接埠,選擇 80 傳送 HTTP 流量。
  7. 對於 VPC,選取用於您的 Application Load Balancer 的虛擬私有雲端 (VPC)。
  8. 對於運作狀態檢查協定,為傳回 HTTP 200 - 399 狀態的 Application Load Balancer 選擇 HTTPHTTPS
  9. 選擇下一步
  10. 對於 Application Load Balancer,選取您的 Application Load Balancer。
  11. 選擇建立目標群組
  12. 重複步驟 3-11,以建立其他目標群組。重複步驟 6 時,選擇 TCP 協定和連接埠 443,為 HTTPS 流量建立另一個目標群組。

建立並設定 Network Load Balancer,將 HTTP 和 HTTPS 流量轉送至 Application Load Balancer

若要建立並設定 Network Load Balancer,以將 HTTP 和 HTTPS 流量轉送至 Application Load Balancer,請完成下列步驟:

  1. 開啟 Amazon EC2 主控台
  2. 在導航窗格中,展開負載平衡,然後選擇負載平衡器
  3. 選擇建立負載平衡器
  4. 對於負載平衡器類型,選擇 Network Load Balancer,然後選擇建立
  5. 對於負載平衡器名稱,輸入 Network Load Balancer 的名稱。
  6. 方案中,選擇面向網際網路內部。您可以將內部 Application Load Balancer 與面向網際網路的 Network Load Balancer 搭配使用。
  7. 對於 IP 位址類型,選擇 IPv4
  8. 對於 VPC,選取您的 VPC。
  9. 對於映射,選擇一或多個可用區域和子網路。對於內部負載平衡器選擇私有子網路,或對於面向網際網路的負載平衡器選擇公有子網路。
  10. 對於 IPv4 位址,選擇由 AWS 指派使用彈性 IP 位址
  11. 對於協定,選擇 TCP,然後對於連接埠,選擇 80 傳送 HTTP 流量。
  12. 對於預設動作,選擇包含 Application Load Balancer 作為已註冊目標的目標群組。
  13. 選擇新增接聽程式,然後重複步驟 11 和 12。使用預設動作選擇協定 TCP 和連接埠 443,該動作可將流量轉送至 Application Load Balancer 的 TCP 443 目標群組。
  14. 選擇建立負載平衡器
  15. 測試負載平衡器
    **注意:**若要使用此組態在 Application Load Balancer 上使用 HTTP 至 HTTPS 重新導向,您必須建立兩個目標群組。為 TCP 80 建立一個 Application Load Balancer 目標群組,為 TCP 443 建立另一個群組。
    設定 Application Load Balancer 的安全群組和網路存取控制清單 (網路 ACLs),以允許從 Network Load Balancer 的私人 IP 位址進行運作狀態檢查。

AWS CLI

**注意:**如果您在執行 AWS Command Line Interface (AWS CLI) 命令時收到錯誤,請參閱對 AWS CLI 錯誤進行疑難排解。此外,請確定您使用的是最新的 AWS CLI 版本

若要使用 AWS CLI 在 Network Load Balancer 後面註冊 Application Load Balancer,請完成下列步驟:

  1. 建立新目標群組並使用 alb 目標類型:
    aws elbv2 create-target-group \
    --name <name> \
    --protocol TCP \
    --port <port> \
    --target-type alb \
    --vpc-id <vpc_id>
    **注意:**將 name 取代為您的目標群組名稱,將 port 取代為連接埠號碼,將 vpc_id 取代為您的 VPC ID。
  2. 向目標群組註冊 Application Load Balancer:
    aws elbv2 register-targets \
    --target-group-arn <tg_arn from previous command> \
    --targets Id=<alb_arn>
    **注意:**將 tg_arn from previous command 取代為您目標群組的 ARN。將 alb_arn 取代為 Application Load Balancer ARN。
  3. 建立 Network Load Balancer:
    aws elbv2 create-load-balancer \
    --name <nlb name> \
    --type network \
    --scheme internal \
    --subnets <subnet_ids>
    **注意:**將 nlb_name 取代為您的 Network Load Balancer 名稱,將 subnet_ids 取代為您的子網路 ID。
  4. 建立接聽程式:
    aws elbv2 create-listener --load-balancer-arn ${nlb1_arn} \
    --protocol TCP --port <port> \
    --default-actions Type=forward,TargetGroupArn=<target group>

相關資訊

使用 AWS Lambda 啟用 Application Load Balancer 的靜態 IP 地址

Application Load Balancer 現在透過與 Network Load Balancer 直接整合來啟動 AWS PrivateLink 和靜態 IP 地址

AWS 官方
AWS 官方已更新 7 個月前