

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

# 创建 Application Load Balancer
<a name="create-application-load-balancer"></a>

应用程序负载均衡器接收来自客户端的请求，然后将请求分发给目标组中的目标（例如 EC2 实例）。有关更多信息，请参阅《弹性负载均衡用户指南》中的[弹性负载均衡的工作原理](https://docs.aws.amazon.com/elasticloadbalancing/latest/userguide/how-elastic-load-balancing-works.html)**。

**Topics**
+ [先决条件](#load-balancer-prereqs)
+ [创建负载均衡器](#create-load-balancer)
+ [测试负载均衡器](#test-load-balancer)
+ [后续步骤](#application-load-balancer-next-steps)

## 先决条件
<a name="load-balancer-prereqs"></a>
+ 确定应用程序将支持的可用区和 IP 地址类型。在负载均衡器 VPC 以及在每个可用区的子网。如果应用程序同时支持 IPv4 和 IPv6 流量，请确保子网同时支持 IPv4 和。 IPv6 CIDRs在每个可用区中至少部署一个目标。有关更多信息，请参阅 [您的负载均衡器的子网](application-load-balancers.md#subnets-load-balancer)。
+ 确保目标实例的安全组允许来自客户端 IP 地址（如果目标通过实例 ID 指定）或负载均衡器节点（如果目标通过 IP 地址指定）的流量通过侦听器端口。有关更多信息，请参阅 [推荐的规则](load-balancer-update-security-groups.md#security-group-recommended-rules)。
+ 确保目标实例的安全组允许来自负载均衡器的流量使用运行状况检查协议通过运行状况检查端口。

## 创建负载均衡器
<a name="create-load-balancer"></a>

在创建应用程序负载均衡器的过程中，您将创建负载均衡器、至少一个侦听器和至少一个目标组。负载均衡器在每个已启用的可用区内至少有一个运行正常的已注册目标时，即表示其做好了处理客户端请求的准备。

------
#### [ Console ]

**创建应用程序负载均衡器**

1. 打开位于 [https://console.aws.amazon.com/ec2/](https://console.aws.amazon.com/ec2/) 的 Amazon EC2 控制台。

1. 在导航窗格中，选择**负载均衡器**。

1. 选择**创建负载均衡器**。

1. 在 **Application Load Balancer** 下，选择 **Create**（创建）。

1. **基本配置**

   1. 对于**Load balancer name**（负载均衡器名称），输入负载均衡器的名称。名称在该区域的负载均衡器集合中必须唯一。名称最多可包含 32 个字符，并且只能包含字母数字字符和连字符。它们不能以连字符或 `internal-` 开头或结尾。应用程序负载均衡器创建后将不能更改其名称。

   1. 对于 **Scheme** (方案)，选择互联网**-facing** (面向互联网) 或 **Internal** (内部)。面向互联网的负载均衡器将来自客户端的请求通过互联网路由到目标。内部负载均衡器使用私有 IP 地址将请求路由到目标。

   1. 对于**负载均衡器 IP 地址类型**，请选择**IPv4**您的客户端是使用 IPv4 地址与负载均衡器通信，如果您的客户端同时使用 IPv4 和 IPv6 地址与负载均衡器通信，则选择**双栈**地址。 IPv4如果您的客户端仅使用 IPv6 地址与负载均衡器通信，请选择**不公开的 Dualstack**。

1. **网络映射**

   1. 对于 **VPC**，请选择您为负载均衡器准备的 VPC。对于面向互联网的负载均衡器，只能选择 VPCs带有互联网网关的负载均衡器。

   1. （可选）对于 **IP 池**，您可以选择将 **IPAM 池用于公 IPv4 有**地址。有关更多信息，请参阅 [IPAM IP 地址池](application-load-balancers.md#ip-pools)。

   1. 对于**可用区和子网**，按以下方式为负载均衡器启用可用区：
      + 选择至少来自两个可用区的子网
      + 选择至少一个本地区域中的子网
      + 选择一个 Outpost 子网

      有关更多信息，请参阅 [您的负载均衡器的子网](application-load-balancers.md#subnets-load-balancer)。

      使用 **Dualstack** 负载均衡器时，必须选择同时包含两者 IPv4 和 IPv6 CIDR 块的子网。

1. **安全组**

   我们会为负载均衡器 VPC 预选默认安全组。您可以根据需要选择其他安全组。如果您没有可满足您需求的安全组，请选择**创建新的安全组**，以立即创建一个。有关更多信息，请参阅《Amazon VPC 用户指南》**中的[创建安全组](https://docs.aws.amazon.com/vpc/latest/userguide/creating-security-groups.html)。

1. **侦听器和路由**

   1. 默认值是一个通过端口 80 接受 HTTP 流量的侦听器。您可保留默认侦听器设置，或者根据需要修改**协议**和**端口**。

   1. 对于**默认操作**，选择目标组以转发流量。如果没有能满足您需求的目标组，请选择**创建目标组**，以立即创建一个目标组。有关更多信息，请参阅 [创建目标组](create-target-group.md)。

   1. （可选）选择**添加侦听器标签**，然后输入标签键和标签值。

   1. （可选）选择**添加侦听器**以添加其他侦听器（例如，HTTPS 侦听器）。

1. **安全侦听器设置**

   仅当您添加 HTTPS 侦听器时才会显示此部分。

   1. 对于**安全策略**，请选择符合您要求的安全策略。有关更多信息，请参阅 [安全策略](describe-ssl-policies.md)。

   1. 对于**默认 SSL/TLS 证书**，有以下选项可用：
      + 如果您使用创建或导入了证书 AWS Certificate Manager，请**选择 From ACM**，然后选择证书。
      + 如果您使用 IAM 导入了一个证书，则选择**从 IAM**，然后选择您的证书。
      + 如果您在 ACM 中没有可用的证书，但有可用于负载均衡器的证书，请选择**导入证书**，并提供所需的信息。否则，请选择**请求新的 ACM 证书**。有关更多信息，请参阅《AWS Certificate Manager 用户指南》中的 [AWS Certificate Manager 证书](https://docs.aws.amazon.com/acm/latest/userguide/gs.html) certificates**。

   1. （可选）选择**双向认证（mTLS）**，然后选择一个策略以启用 ALPN。

      有关更多信息，请参阅 [双向 TLS 身份验证](mutual-authentication.md)。

1. **通过服务集成进行优化**

   （可选）您可以将 other AWS 与您的负载均衡器集成。有关更多信息，请参阅 [负载均衡器集成](load-balancer-integrations.md)。

1. **负载均衡器标签**

   （可选）展开**负载均衡器标签**。（可选）选择**添加新的标签**，然后输入标签键和标签值。有关更多信息，请参阅[标签](load-balancer-tags.md)。

1. **摘要**

   查看配置，然后选择**创建负载均衡器**。在创建过程中，一些默认属性会应用于网络负载均衡器。创建网络负载均衡器后，您可以查看和编辑它们。有关更多信息，请参阅 [负载均衡器属性](application-load-balancers.md#load-balancer-attributes)。

------
#### [ AWS CLI ]

**创建应用程序负载均衡器**  
使用 [create-load-balancer](https://docs.aws.amazon.com/cli/latest/reference/elbv2/create-load-balancer.html) 命令。

以下示例创建了一个面向互联网的负载均衡器，包括两个已启用的可用区和一个安全组。

```
aws elbv2 create-load-balancer \
    --name my-load-balancer \
    --type application \
    --subnets subnet-1234567890abcdef0 subnet-0abcdef1234567890 \
    --security-groups sg-1111222233334444
```

**创建内部应用程序负载均衡器**  
包含如下示例所示的 `--scheme` 选项。

```
aws elbv2 create-load-balancer \
    --name my-load-balancer \
    --type application \
    --scheme internal \
    --subnets subnet-1234567890abcdef0 subnet-0abcdef1234567890 \
    --security-groups sg-1111222233334444
```

**创建双栈应用程序负载均衡器**  
包含如下示例所示的 `--ip-address-type` 选项。

```
aws elbv2 create-load-balancer \
    --name my-load-balancer \
    --type application \
    --ip-address-type dualstack \
    --subnets subnet-1234567890abcdef0 subnet-0abcdef1234567890 \
    --security-groups sg-1111222233334444
```

**添加侦听器**  
使用 [create-listener](https://docs.aws.amazon.com/cli/latest/reference/elbv2/create-listener.html) 命令。有关示例，请参阅 [创建 HTTP 侦听器](create-listener.md) 和 [创建 HTTPS 侦听器](create-https-listener.md)。

------
#### [ CloudFormation ]

**创建应用程序负载均衡器**  
定义类型的资源[AWS::ElasticLoadBalancingV2::LoadBalancer](https://docs.aws.amazon.com/AWSCloudFormation/latest/TemplateReference/aws-resource-elasticloadbalancingv2-loadbalancer.html)。

```
Resources:
  myLoadBalancer:
    Type: 'AWS::ElasticLoadBalancingV2::LoadBalancer'
    Properties:
      Name: my-alb
      Type: application
      Scheme: internal
      IpAddressType: dualstack
      Subnets: 
        - !Ref subnet-AZ1
        - !Ref subnet-AZ2
      SecurityGroups: 
        - !Ref mySecurityGroup
      Tags: 
        - Key: "department"
          Value: "123"
```

**添加侦听器**  
定义类型的资源[AWS::ElasticLoadBalancingV2::Listener](https://docs.aws.amazon.com/AWSCloudFormation/latest/TemplateReference/aws-resource-elasticloadbalancingv2-listener.html)。有关示例，请参阅 [创建 HTTP 侦听器](create-listener.md) 和 [创建 HTTPS 侦听器](create-https-listener.md)。

------

## 测试负载均衡器
<a name="test-load-balancer"></a>

 在创建负载均衡器之后，您可验证您的 EC2 实例是否通过了初始运行状况检查。然后，您可检查负载均衡器是否正在将流量发送到您的 EC2 实例。要删除负载均衡器，请参阅 [删除 Application Load Balancer](load-balancer-delete.md)。

**要测试负载均衡器**

1. 创建负载均衡器之后，选择**关闭**。

1. 在导航窗格中，选择**目标组**。

1. 选择新创建的目标组。

1. 选择 **Targets (目标)** 并验证您的实例是否已就绪。如果实例的状态为 `initial`，通常是因为该实例仍在注册过程中。此状态还可以表示实例未通过被视为正常运行所需的最少次数的运行状况检查。在至少一个实例的状态为正常后，便可测试负载均衡器。有关更多信息，请参阅 [目标运行状况](target-group-health-checks.md#target-health-states)。

1. 在导航窗格中，选择**负载均衡器**。

1. 选择新创建的负载均衡器。

1. 选择**描述**并复制面向互联网的负载均衡器或内部负载均衡器的 DNS 名称（例如， my-load-balancer-1234567890abcdef. elb.us-east-2.amazonaws.com）。
   + 对于面向互联网的负载均衡器，请将 DNS 名称粘贴到连接互联网的 Web 浏览器的地址字段中。
   + 对于内部负载均衡器，请将 DNS 名称粘贴到与 VPC 具有私有连接的 Web 浏览器的地址字段中。

   如果所有内容的配置都正确，浏览器会显示您服务器的默认页面。

1. 如果网页未显示，请参阅以下文档以获取其他配置帮助和故障排除步骤。
   + 对于与 DNS 相关的问题，请参阅《*Amazon Route 53 开发人员指南*》中的[将流量路由到 ELB 负载均衡器](https://docs.aws.amazon.com/Route53/latest/DeveloperGuide/routing-to-elb-load-balancer.html)。
   + 对于与负载均衡器相关的问题，请参阅 [对 Application Load Balancer 进行故障排除](load-balancer-troubleshooting.md)。

## 后续步骤
<a name="application-load-balancer-next-steps"></a>

创建负载均衡器后，您可能需要执行以下操作：
+ 添加[侦听器规则](listener-rules.md)。
+ 配置[负载均衡器属性](edit-load-balancer-attributes.md)。
+ 配置[目标组属性](edit-target-group-attributes.md)。
+ [HTTPS 侦听器] 将证书添加到[可选证书列表](listener-update-certificates.md#add-certificates)。
+ 配置[监控功能](load-balancer-monitoring.md)。