本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
通过 Amazon CLI 开始使用应用程序负载均衡器
本教程提供了通过 Amazon CLI 对 Application Load Balancer 进行操作的实践介绍。
开始前的准备工作
-
使用以下命令可验证您是否在运行支持 Application Load Balancer 的 Amazon CLI 版本。
aws elbv2 help
如果您获取的错误消息指示 elbv2 不是有效选择,请更新您的 Amazon CLI。有关更多信息,请参阅 Amazon Command Line Interface 用户指南中的安装 Amazon Command Line Interface。
-
启动 Virtual Private Cloud (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