本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
使用 開始使用 Application Load Balancer AWS CLI
本教學透過 提供 Application Load Balancer 實作簡介 AWS CLI。
開始之前
-
使用以下命令來確認您執行的 AWS CLI 版本是否支援 Application Load Balancer。
aws elbv2 help
如果您收到錯誤訊息,指出 elbv2 不是有效的選擇,請更新 AWS CLI。如需詳細資訊,請參閱AWS Command Line Interface 《 使用者指南》中的安裝最新版本的 AWS CLI。
-
在虛擬私有雲端 (VPC) 中啟動您的 EC2 執行個體。確保這些執行個體的安全群組允許在接聽程式連接埠和運作狀態檢查連接埠上進行存取。如需詳細資訊,請參閱目標安全群組。
-
決定是建立 IPv4 負載平衡器還是雙堆疊負載平衡器。如果您想要用戶端僅使用 IPv4 地址來與負載平衡器通訊,請使用 IPv4。如果您想要用戶端同時使用 IPv4 和 IPv6 地址來與負載平衡器通訊,請選擇雙堆疊。也可以選擇雙堆疊使用 IPv6 與後端目標 (例如 IPv6 應用程式或雙堆疊子網路) 進行通訊。
-
請務必在每個 EC2 執行個體上安裝 Web 伺服器,例如 Apache 或 Internet Information Services (IIS)。確保這些執行個體的安全群組在連接埠 80 上允許 HTTP 存取。
建立負載平衡器
完成以下步驟,建立您的第一個負載平衡器。
建立負載平衡器
-
使用 create-load-balancer 命令來建立負載平衡器。您必須指定並非來自相同可用區域的兩個子網路。
aws elbv2 create-load-balancer --name
my-load-balancer
\ --subnets subnet-0e3f5cac72EXAMPLE
subnet-081ec835f3EXAMPLE
--security-groups sg-07e8ffd50fEXAMPLE
使用 create-load-balancer 命令建立
dualstack
負載平衡器。aws elbv2 create-load-balancer --name
my-load-balancer
\ --subnets subnet-0e3f5cac72EXAMPLE
subnet-081ec835f3EXAMPLE
--security-groups sg-07e8ffd50fEXAMPLE
--ip-address-typedualstack
其輸出將包含負載平衡器的 Amazon Resource Name (ARN),格式如下:
arn:aws:elasticloadbalancing:
us-east-2
:123456789012
:loadbalancer/app/my-load-balancer/1234567890123456
-
使用 create-target-group 命令建立目標群組,指定用於 EC2 執行個體的相同 VPC。
可以建立 IPv4 和 IPv6 目標群組,以便與雙堆疊負載平衡器建立關聯。目標群組的 IP 地址類型會決定負載平衡器用於與後端目標通訊並檢查目標運作狀態的 IP 版本。
aws elbv2 create-target-group --name
my-targets
--protocol HTTP --port 80 \ --vpc-id vpc-0598c7d356EXAMPLE
--ip-address-type
[ipv4 or ipv6]
其輸出將包含目標群組的 ARN,格式如下:
arn:aws:elasticloadbalancing:
us-east-2
:123456789012
:targetgroup/my-targets
/1234567890123456
-
使用 register-targets 命令向目標群組註冊您的執行個體:
aws elbv2 register-targets --target-group-arn
targetgroup-arn
\ --targets Id=i-0abcdef1234567890
Id=i-1234567890abcdef0
-
使用 create-listener 命令為您的負載平衡器建立具有預設規則以轉送請求至目標群組的接聽程式:
aws elbv2 create-listener --load-balancer-arn
loadbalancer-arn
\ --protocol HTTP --port 80 \ --default-actions Type=forward,TargetGroupArn=targetgroup-arn
其輸出將包含接聽程式的 ARN,格式如下:
arn:aws:elasticloadbalancing:
us-east-2
:123456789012
:listener/app/my-load-balancer
/1234567890123456
/1234567890123456
-
(選用) 您可以使用 describe-target-health 命令驗證目標群組已註冊目標的運作狀態,如下所示:
aws elbv2 describe-target-health --target-group-arn
targetgroup-arn
新增 HTTPS 接聽程式
如果您有使用 HTTP 接聽程式的負載平衡器,您可以如下所示新增 HTTPS 接聽程式。
將 HTTPS 接聽程式新增至您的負載平衡器
-
使用以下其中一個方法來建立 SSL 憑證以與您的負載平衡器搭配使用:
-
使用 create-listener 命令來建立具有預設規則以將請求轉送至目標群組的接聽程式。建立 HTTPS 接聽程式時必須指定 SSL 憑證。請注意,您可以使用
--ssl-policy
選項來指定非預設的 SSL 政策。aws elbv2 create-listener --load-balancer-arn
loadbalancer-arn
\ --protocol HTTPS --port 443 \ --certificates CertificateArn=certificate-arn
\ --default-actions Type=forward,TargetGroupArn=targetgroup-arn
新增以路徑為基礎的路由
如果您的接聽程式具有會將請求轉送至一個目標群組的預設規則,則您可以新增規則來根據 URL,將請求轉送至另一個目標群組。例如,您可以將一般請求路由到一個目標群組和請求,以向其他目標群組顯示影像。
將規則新增至具有路徑模式的接聽程式
-
使用 create-target-group 命令建立目標群組:
aws elbv2 create-target-group --name
my-targets
--protocol HTTP --port 80 \ --vpc-id vpc-0598c7d356EXAMPLE
-
使用 register-targets 命令向目標群組註冊您的執行個體:
aws elbv2 register-targets --target-group-arn
targetgroup-arn
\ --targets Id=i-0abcdef1234567890
Id=i-1234567890abcdef0
-
使用 create-rule 命令,在 URL 包含指定的模式時,將規則新增至會將請求轉送至目標群組的接聽程式:
aws elbv2 create-rule --listener-arn
listener-arn
--priority10
\ --conditions Field=path-pattern,Values='/img/*
' \ --actions Type=forward,TargetGroupArn=targetgroup-arn
刪除負載平衡器
當您已不再需要負載平衡器和目標群組時,便可將其刪除,如下所示:
aws elbv2 delete-load-balancer --load-balancer-arn
loadbalancer-arn
aws elbv2 delete-target-group --target-group-arntargetgroup-arn