开始使用应用程序负载均衡器 AWS CLI - Elastic Load Balancing

本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。

开始使用应用程序负载均衡器 AWS CLI

本教程通过手把手介绍应用程序负载均衡器。 AWS CLI

开始前的准备工作

  • 使用以下命令可验证您是否在运行支持 Application Load Balancer 的 AWS CLI 版本。

    aws elbv2 help

    如果您获取的错误消息指示 elbv2 不是有效选择,请更新您的 AWS CLI。有关更多信息,请参阅 AWS Command Line Interface 用户指南中的安装 AWS Command Line Interface

  • 在虚拟私有云中启动您的EC2实例 (VPC)。确保这些实例的安全组允许访问侦听器端口和运行状况检查端口。有关更多信息,请参阅 目标安全组

  • 决定是创建双栈负载均衡器IPv4还是双栈负载均衡器。IPv4如果您希望客户端仅使用IPv4地址与负载均衡器通信,请使用此选项。如果您希望客户端使用IPv4和IPv6地址与负载均衡器通信,请使用 dualstack。您也可以使用 dualstack 与后端目标(例如IPv6应用程序或双栈子网)通信。IPv6

  • 请务必在每个EC2实例上安装 Web 服务器,例如 Apache 或互联网信息服务 (IIS)。确保这些实例的安全组允许HTTP通过端口 80 进行访问。

创建负载均衡器

要创建第一个负载均衡器,请完成以下步骤。

创建负载均衡器
  1. 使用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-type dualstack

    输出包括负载均衡器的 Amazon 资源名称 (ARN),格式如下:

    arn:aws:elasticloadbalancing:us-east-2:123456789012:loadbalancer/app/my-load-balancer/1234567890123456
  2. 使用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
  3. 使用 register-targets 命令将您的实例注册到目标组:

    aws elbv2 register-targets --target-group-arn targetgroup-arn \ --targets Id=i-0abcdef1234567890 Id=i-1234567890abcdef0
  4. 使用 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
  5. (可选)您可以使用以下describe-target-health命令验证目标组的注册目标的运行状况:

    aws elbv2 describe-target-health --target-group-arn targetgroup-arn

添加HTTPS监听器

如果您的负载均衡器带有HTTP监听器,则可以按如下方式添加HTTPS监听器。

向负载均衡HTTPS器添加侦听器
  1. 使用以下方法之一创建用于您的负载均衡器的SSL证书:

    • 使用 AWS Certificate Manager (ACM) 创建或导入证书。有关更多信息,请参阅 AWS Certificate Manager 用户指南中的请求证书导入证书

    • 使用 AWS Identity and Access Management (IAM) 上传证书。有关更多信息,请参阅《IAM用户指南》中的使用服务器证书

  2. 使用 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例如,您可以将一般请求路由到一个目标组,并将图像显示请求路由到另一个目标组。

将规则添加到带路径模式的侦听器
  1. 使用create-target-group命令创建目标组:

    aws elbv2 create-target-group --name my-targets --protocol HTTP --port 80 \ --vpc-id vpc-0598c7d356EXAMPLE
  2. 使用 register-targets 命令将您的实例注册到目标组:

    aws elbv2 register-targets --target-group-arn targetgroup-arn \ --targets Id=i-0abcdef1234567890 Id=i-1234567890abcdef0
  3. 使用 create- rule 命令向侦听器添加一条规则,如果URL包含指定模式,则该规则将请求转发到目标组:

    aws elbv2 create-rule --listener-arn listener-arn --priority 10 \ --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-arn targetgroup-arn