Amazon EC2
AWS 云
Elastic Load Balancing 入门


  • 一般性问题

    问:我如何确定为应用程序选择哪种负载均衡器?

    Elastic Load Balancing 支持三类负载均衡器。您可以根据应用程序按需选择合适的负载均衡器。如果您需要灵活管理应用程序和终止 TLS,则建议您使用应用程序负载均衡器。如果应用程序需要实现极致性能和静态 IP,则建议您使用网络负载均衡器。如果应用程序在 EC2 Classic 网络中构建而成,则建议您使用传统负载均衡器。

    问:我可以在不使用共有 IP 的情况下,从 Amazon Virtual Private Cloud (VPC) 对 Elastic Load Balancing API 进行私有访问吗?

    可以,您可以通过创建 VPC 终端节点来实现从 Amazon Virtual Private Cloud (VPC) 对 Elastic Load Balancing API 进行私有访问。借助 VPC 终端节点,VPC 和 Elastic Load Balancing API 之间的路由将由 AWS 网络处理,而无需使用 Internet 网关、NAT 网关或 VPN 连接。Elastic Load Balancing 所使用的最新一代 VPC 终端节点由 AWS PrivateLink 提供支持。AWS PrivateLink 是一种通过使用 VPC 中带有私有 IP 的弹性网络接口来支持各 AWS 服务之间的私有连接的 AWS 技术。要了解关于 AWS PrivateLink 的更多信息,请访问 AWS PrivateLink 文档
     

  • 应用程序负载均衡器

    问:应用程序负载均衡器支持哪些操作系统?
    应用程序负载均衡器支持使用 Amazon EC2 目前所支持的任何操作系统的目标。

    问:应用程序负载均衡器支持哪些协议?
    应用程序负载均衡器支持对使用 HTTP 和 HTTPS (安全 HTTP) 协议的应用程序进行负载均衡。

    问:应用程序负载均衡器是否支持 HTTP/2?
    支持。应用程序负载均衡器内置 HTTP/2 支持。支持 HTTP/2 的客户端可以通过 TLS 连接到应用程序负载均衡器。

    问:可以对哪些 TCP 端口执行负载均衡?
    您可以对以下 TCP 端口执行负载均衡:1-65535

    问:应用程序负载均衡器是否支持 WebSocket?
    支持。应用程序负载均衡器内置 WebSocket 和 Secure WebSocket 支持,随时可用。

    问:Application Load Balancer 是否支持请求跟踪?
    是的。您的 Application Load Balancer 上默认启用了请求跟踪。

    问:现有负载均衡器(Classic 负载均衡器)是否具有应用程序负载均衡器的功能和优势?
    这两种负载均衡器的功能尽管有一些重叠,但并不完全相同。应用程序负载均衡器是我们面向未来推出的应用程序层负载均衡平台的基础。

    问:可否将 Amazon EC2 实例配置为仅接收来自应用程序负载均衡器的流量?
    可以。

    问:可否为应用程序负载均衡器的前端配置安全组?
    可以。

    问:可否将用于 Classic 负载均衡器的现有 API 用于应用程序负载均衡器?
    不可以。应用程序负载均衡器需要一组新的 API。

    问:如何同时管理应用程序负载均衡器和传统负载均衡器?
    借助 ELB 控制台,您可以在同一界面上管理应用程序负载均衡器和 Classic 负载均衡器。如果您使用 CLI 或 SDK,则将针对应用程序负载均衡器使用其他“服务”。例如,在 CLI 中,您可以使用“aws elb describe-load-balancers”描述 Classic 负载均衡器,使用“aws elbv2 describe-load-balancers”描述应用程序负载均衡器。

    问:可否将 Classic 负载均衡器转换为应用程序负载均衡器(或将应用程序负载均衡器转换为 Classic 负载均衡器)?
    不可以,您不能将一种负载均衡器类型转换为另一种。

    问:如何迁移到应用程序负载均衡器?
    您可以将相同的后端实例同时连接到 Classic 负载均衡器和应用程序负载均衡器。如此一来,您能够将流量从一个终端节点迁移到另一个,且不会改变其现有堆栈。请务必首先测试应用程序在新平台上的行为,然后再将 DNS 更改为指向应用程序负载均衡器。

    问:可否将应用程序负载均衡器用作第 4 层负载均衡器?
    不可以。如果您需要第 4 层功能,则应使用网络负载均衡器。

    问:可否使用单个应用程序负载均衡器处理 HTTP 和 HTTPS 请求?
    可以。您可以将 HTTP 端口 80 和 HTTPS 端口 443 的侦听器添加到单个应用程序负载均衡器。

    问:我能否获取从我的账户发起的所有应用程序负载均衡器 API 调用的历史记录,以便进行安全分析并排除运行故障?
    能。要获取从您的账户发起的应用程序负载均衡器 API 调用的历史记录,请使用 AWS CloudTrail

    问:应用程序负载均衡器是否支持终止 HTTPS?
    支持。您可以终止应用程序负载均衡器上的 HTTPS 连接。您必须在负载均衡器上安装 SSL 证书。负载均衡器先使用此证书终止连接,然后解密来自客户端的请求并将请求发送到目标。

    问:获取 SSL 证书需要哪些步骤?
    您可以使用 AWS Certificate Manager 预置 SSL/TLS 证书,也可以从其他来源获取证书,具体方法如下:先创建证书请求、获取 CA 签名的证书请求,然后使用 AWS Certificate ManagerAWS Identity and Access Management (IAM) 服务上传证书。

    问:应用程序负载均衡器如何与 AWS Certificate Manager (ACM) 集成?
    应用程序负载均衡器现已与 AWS Certificate Management (ACM) 集成。与 ACM 集成后,可以很简单地将证书绑定到负载均衡器,从而使整个 SSL 卸载过程变得非常容易。SSL/TLS 证书的购买、上传和续订是一个非常耗时且复杂的手动过程。应用程序负载均衡器与 ACM 集成后,整个过程便大大简化,只需请求受信任的 SSL/TLS 证书,然后选择 ACM 证书并使用负载均衡器对其进行预置即可。

    问:应用程序负载均衡器是否支持后端服务器身份验证?
    不支持。应用程序负载均衡器仅支持后端加密。

    问:如何能为应用程序负载均衡器启用服务器名称指示 (SNI)?
    当您将多个 TLS 证书与负载均衡器上的同一个安全侦听器关联时,系统会自动启用 SNI。同样,当您仅将一个证书与一个安全侦听器关联时,系统会自动禁用该安全侦听器的 SNI 模式。

    问:可以将同一个域的多个证书关联到一个安全侦听器吗?
    可以,您可以将同一个域的多个证书关联到一个安全侦听器。例如,您可以指定
    (a) ECDSA 和 RSA 证书
    (b) 密钥长度不同 (例如 2K 和 4K) 的 SSL/TLS 证书
    (c) 单域型、多域型 (SAN) 和通配符证书

    问:应用程序负载均衡器是否支持 IPv6?
    支持。Application Load Balancer 支持 IPv6。

    问:如何在 Application Load Balancer 上设置规则?
    您可以针对为负载均衡器配置的每个侦听器设置规则。规则应包括一个条件和一个相应的操作(条件满足后触发)。条件可能是某个服务的一个 URL 路径(例如 /img),相应的操作为转发。规则设置成功后,负载均衡器将使用这些规则来确定必须将请求路由至哪个服务。

    问:应用程序负载均衡器是否存在资源限制?
    您的 AWS 账户存在以下关于应用程序负载均衡器的限制。

    问:如何保护负载均衡器后的 Web 应用程序免受 Web 攻击?
    您可以将 Application Load Balancer 与 AWS WAF 集成,后者是一种 Web 应用程序防火墙,让您能够配置基于 IP 地址、HTTP 报头和自定义 URI 字符串的规则,帮助保护 Web 应用程序免受攻击。借助这些规则,AWS WAF 能够阻止、允许或监控(统计)Web 应用程序的 Web 请求。要了解更多信息,请参阅 AWS WAF 开发人员指南

    问:能否对任意 IP 地址进行负载均衡?
    您可以将负载均衡器 VPC CIDR 中的任意 IP 地址用于负载均衡器 VPC 内的目标,将 RFC 1918 范围 (10.0.0.0/8、172.16.0.0/12,以及 192.168.0.0/16) 或 RFC 6598 范围 (100.64.0.0/10) 中的任意 IP 地址用于负载均衡器 VPC 外的目标 (例如,对等 VPC、EC2-Classic 和本地位置内可通过 AWS Direct Connect 或 VPN 连接进行访问的目标)。

    问:如何对分布在 VPC 和本地位置的应用程序进行负载均衡?
    有多种方法可实现混合负载均衡。如果应用程序在分布于 VPC 和本地位置之间的多个目标上运行,您可以使用这些目标的 IP 地址将其添加到同一目标组。要在不影响应用程序的情况下迁移到 AWS,请逐步向目标组添加 VPC 目标,并从目标组中删除本地目标。如果您有两个不同的应用程序,其中一个应用程序的目标位于 VPC 中,另一应用程序的目标位于本地位置,则您可以将 VPC 目标放入一个目标组,将本地目标放入另一个目标组,然后使用基于内容的路由将流量路由到每个目标组。您还可以分别针对 VPC 目标和本地目标使用不同的负载均衡器,并使用 DNS 加权在 VPC 和本地目标之间进行加权负载均衡。

    问:如何对 EC2-Classic 实例进行负载均衡?
    将 EC2-Classic 实例的 ID 注册为目标时,您无法对其进行负载均衡。但如果您使用 ClassicLink 将这些 EC2-Classic 实例链接到负载均衡器的 VPC,并将这些 EC2-Classic 实例的私有 IP 用作目标,那么您就可以对 EC2-Classic 实例进行负载均衡。如果您目前使用的是带有 Classic Load Balancer 的 EC2 Classic 实例,则可以轻松迁移至 Application Load Balancer。

    问:应用程序负载均衡器的定价机制是什么?
    您需要按应用程序负载均衡器的运行小时数 (不足 1 小时按 1 小时算) 和每小时使用的负载均衡器容量单位 (LCU) 数付费。

    问:什么是负载均衡器容量单位 (LCU)?
    LCU 是一项新指标,用于确定您如何为 Application Load Balancer 付费。对于 Application Load Balancer 处理流量时涉及的各项指标(新连接数、活跃连接数、带宽和规则评估数),LCU 将确定哪项指标的资源使用量最大。

    问:传统负载均衡器是否会按 LCU 计费?
    不会,传统负载均衡器将继续按带宽和每小时使用量计费。

    问:如何得知应用程序负载均衡器使用的 LCU 数?
    我们通过 CloudWatch 公开构成 LCU 的所有四个指标的使用情况。

    问:我是否需要为一个 LCU 中的所有指标付费?
    不需要。每小时所使用的 LCU 数量由组成 LCU 的三个指标中资源使用量最大的指标来决定。

    问:我是否只需为部分 LCU 付费?
    是。

    问:是否会为新 AWS 账户提供应用程序负载均衡器免费套餐?
    会。对于新 AWS 账户,针对应用程序负载均衡器提供包括 750 小时和 15 个 LCU 的免费套餐。此免费套餐仅面向新 AWS 客户提供,自 AWS 注册之日起 12 个月内有效。

    问:能否在免费套餐中同时使用应用程序负载均衡器和传统负载均衡器?
    能。您可以同时使用传统负载均衡器和应用程序负载均衡器,二者的免费使用量分别为 15GB 和 15 个 LCU。传统负载均衡器和应用程序负载均衡器的免费使用时间共计 750 小时。

    问:什么是规则评估数?
    规则评估数是指处理的规则数量与每小时平均请求率的乘积。

    问:如何针对不同的证书类型和密钥长度应用 LCU 账单?
    证书密钥长度只影响 LCU 账单计算中每秒新建立的连接数。
    下表针对不同密钥长度的 RSA 和 ECDSA 证书列出了此指标的值。 

    RSA 证书        
    密钥长度 <=2K  <=4K  <=8K  >8K 
    新建连接数/秒 25 5 1 0.25
    ECDSA 证书        
    密钥长度 <=256 <=384 <=521 >521 
    新建连接数/秒 25 5 1 0.25
  • 网络负载均衡器

    问:我能否为网络负载均衡器创建 TCP (第 4 层) 侦听器?

    能。网络负载均衡器仅支持 TCP (第 4 层) 侦听器。

    问:网络负载均衡器提供哪些重要功能?

    网络负载均衡器提供 TCP (第 4 层) 负载均衡功能。该功能的设计目的在于处理每秒数百万请求、突变的流量模式以及提供超低延迟。此外,网络负载均衡器还会保存客户端的源 IP,提供稳定的 IP 支持和区域隔离,以及支持长时间运行的连接 (此类连接对 WebSocket 型应用程序非常有用)。

    问:网络负载均衡器与传统负载均衡器上的 TCP 侦听器相比如何?

    网络负载均衡器会保存客户端的源 IP,传统负载均衡器则不会。不过,客户可以使用配备传统负载均衡器的代理协议获取源 IP。网络负载均衡器会自动按可用区向相应负载均衡器提供静态 IP,还支持按可用区向相应负载均衡器分配弹性 IP。传统负载均衡器不提供此项支持,但提供网络负载均衡器无法实现的 SSL 终止。

    问:如何从传统负载均衡器迁移到网络负载均衡器?

    您可以将相同的后端目标同时连接到传统负载均衡器和网络负载均衡器。如此一来,您能够将流量从一个终端节点迁移到另一个,而不会改变其现有堆栈。请务必首先测试应用程序在新平台上的行为,然后再将 DNS 更改为指向网络负载均衡器。

    问:网络负载均衡器是否存在资源限制?

    是的,有关详细信息,请参阅网络负载均衡器限制文档

    问:我能否使用 AWS 管理控制台设置网络负载均衡器?

    能,您可以使用 AWS 管理控制台、AWS CLI 或相应 API 创建网络负载均衡器。

    问:我能否使用传统负载均衡器的现有 API 创建网络负载均衡器?

    不能。要创建传统负载均衡器,请使用 2012-06-01 API。要创建网络负载均衡器或应用程序负载均衡器,请使用 2015-12-01 API。

    问:我能否在单个可用区内创建网络负载均衡器?

    能,您可以在单个可用区内创建网络负载均衡器,方法是在创建负载均衡器时提供单个子网。

    问:网络负载均衡器是否支持 DNS 地区和区域故障转移?

    支持,您可以使用 Amazon Route 53 运行状况检查和 DNS 故障转移功能来增强在网络负载均衡器后方运行的应用程序的可用性。使用 Route 53 DNS 故障转移,您可以在多个 AWS 可用区运行应用程序并跨地区指定备用负载均衡器以进行故障转移。如果您的网络负载均衡器已针对多个可用区进行了配置,那么当该可用区内通过该负载均衡器注册的 EC2 实例运行状况不佳时,或者当指定可用区内的负载均衡器节点运行状况不佳时,R-53 将故障转移至其他运行状况良好的可用区内的备用负载均衡器节点。

    问:我的网络负载均衡器能否同时具有 ELB 提供的 IP、弹性 IP 和分配的私有 IP?

    不能。网络负载均衡器的地址必须完全由您或 ELB 控制。这是为了确保当将弹性 IP 用于网络负载均衡器时,客户端常用的所有地址均不会改变。

    问:我能否在每个子网中为 NLB 分配多个 EIP?

    不能。对于 NLB 所在的每个关联子网,该 NLB 仅支持单个公有/面向 Internet 的 IP 地址

    问:如果我移除/删除网络负载均衡器,其关联的弹性 IP 地址会怎样?

    该负载均衡器关联的弹性 IP 地址将返回已分配的池,以供未来使用。

    问:NLB 是否支持内部负载均衡器?

    您可以将 NLB 设置为面向 Internet 的负载均衡器或内部负载均衡器,功能可能类似于应用程序负载均衡器和传统负载均衡器。

    问:内部网络负载均衡器能否在每个子网中支持多个私有 IP?

    不能。对于 NLB 所在的每个关联子网,该负载均衡器只能支持一个私有 IP。

    问:我能否使用网络负载均衡器设置 Websockets?

    能,您可以配置 TCP 侦听器,用于将流量路由至实施 WebSockets 协议 (https://tools.ietf.org/html/rfc6455) 的目标。由于 WebSockets 是第 7 层协议,而网络负载均衡器在第 4 层运行,因此无需针对 WebSockets 或其他更高级别的协议特别处理网络负载均衡器。

    问:能否对任意 IP 地址进行负载均衡?

    您可以将负载均衡器 VPC CIDR 中的任意 IP 地址用于负载均衡器 VPC 内的目标,将 RFC 1918 范围 (10.0.0.0/8、172.16.0.0/12,以及 192.168.0.0/16) 或 RFC 6598 范围 (100.64.0.0/10) 中的任意 IP 地址用于负载均衡器 VPC 外的目标 (可通过 AWS Direct Connect 进行访问的 EC2-Classic 和本地位置)。

    问:通过将具有 IP 地址而非实例 ID 的负载均衡器后的容器作为目标,我可以获得哪些好处?

    目前,实例上的每个容器都拥有自己的安全组,不需要与其他容器共享安全规则。您可以将安全组附加到 ENI,以便实例上的每个 ENI 都能拥有不同的安全组。您可以将容器映射到特定 ENI 的 IP 地址,以便关联每个容器的安全组。使用 IP 地址进行负载均衡时,还支持在一个实例上运行的多个容器使用同一端口 (比如说端口 80)。通过让多个容器使用同一端口,实例上的容器能够通过已知端口而非随机端口进行相互通信。

    问:如何对分布在 VPC 和本地位置的应用程序进行负载均衡?

    有多种方法可实现混合负载均衡。如果应用程序在分布于 VPC 和本地位置之间的多个目标上运行,您可以使用这些目标的 IP 地址将其添加到同一目标组。要想迁移到 AWS 而又不想影响您的应用程序,需逐渐向目标组添加 VPC 目标,并从目标组移除本地目标。您还可以对 VPC 和本地目标使用单独的负载均衡器,并使用 DNS 权重在 VPC 和本地目标之间实现加权的负载均衡。

    问:如何对 EC2-Classic 实例进行负载均衡?

    将 EC2-Classic 实例的 ID 注册为目标时,您无法对其进行负载均衡。但如果您使用 ClassicLink 将这些 EC2-Classic 实例链接到负载均衡器的 VPC,并将这些 EC2-Classic 实例的私有 IP 用作目标,那么您就可以对 EC2-Classic 实例进行负载均衡。如果您目前使用的是带有 Classic Load Balancer 的 EC2 Classic 实例,则可以轻松迁移至 Network Load Balancer。

    问:网络负载均衡器的定价机制是什么?

    您需要按网络负载均衡器的运行小时数 (不足 1 小时按 1 小时算) 和每小时使用的负载均衡器容量单位 (LCU) 数付费。

    问:什么是负载均衡器容量单位 (LCU)?

    LCU 是一项新指标,用于确定您如何为网络负载均衡器付费。对于网络负载均衡器处理流量时涉及的各项指标(新连接/流数、活跃连接/流数和带宽),LCU 可确定哪项指标使用的资源最多。

    问:每秒的新连接/流数是否与每秒请求数相同?

    不相同。在一次连接中可以发送多个请求。

    问:传统负载均衡器是否会按 LCU 计费?

    不会。传统负载均衡器将继续按带宽和小时费用计费

    问:如何得知网络负载均衡器使用的 LCU 数量?

    我们会通过 Amazon CloudWatch 公布组成 LCU 的所有三个指标的使用情况。

    问:我是否需要为一个 LCU 中的所有指标付费?

    不需要。每小时所使用的 LCU 数量由组成 LCU 的三个指标中资源使用量最大的指标来决定。

    问:我是否只需为部分 LCU 付费?

    是。

    问:是否会为新 AWS 账户提供网络负载均衡器免费套餐?

    会。对于新 AWS 账户,针对网络负载均衡器提供包括 750 小时和 15 个 LCU 的免费套餐。此免费套餐仅面向新 AWS 客户提供,自 AWS 注册之日起 12 个月内有效。

    问:能否在免费套餐中同时使用网络负载均衡器、应用程序负载均衡器和传统负载均衡器?

    能。您可以同时使用应用程序负载均衡器和网络负载均衡器 (每个免费使用量均为 15 个 LCU) 以及传统负载均衡器 (分别为 15GB)。应用程序负载均衡器、网络负载均衡器和传统负载均衡器的免费使用时间共计 750 小时。

  • 传统负载均衡器

    问:传统负载均衡器支持哪些操作系统?

    传统负载均衡器支持 Amazon EC2 实例使用 Amazon EC2 服务目前支持的所有操作系统。

    问:传统负载均衡器支持哪些协议?
    Classic 负载均衡器支持对使用 HTTP、HTTPS(安全 HTTP)、SSL(安全 TCP)和 TCP 协议的应用程序执行负载均衡。

    问:可以为哪些 TCP 端口执行负载均衡?
    您可以为下列 TCP 端口执行负载均衡:

    • [EC2-VPC] 1-65535
    • [EC2-Classic] 25、80、443、465、587、1024-65535

    问:传统负载均衡器是否支持 IPv6 流量?
    支持。每个 Classic 负载均衡器都关联一个 IPv4、一个 IPv6 和一个双栈(同时支持 IPv4 和 IPv6)DNS 名称。VPC 中不支持 IPv6。您可以在 VPC 中使用应用程序负载均衡器提供原生 IPv6 支持。

    问:可否将 Amazon EC2 实例配置为仅接收来自 Classic 负载均衡器的流量?
    可以。

    问:可否为 Classic 负载均衡器的前端配置安全组?
    如果您使用的是 Amazon Virtual Private Cloud,则可以为 Classic 负载均衡器的前端配置安全组。

    问:可否使用单个 Classic 负载均衡器处理 HTTP 和 HTTPS 请求?
    可以。您可以将 HTTP 端口 80 和 HTTPS 端口 443 映射到单个 Classic 负载均衡器。

    问:已进行负载均衡的 Amazon EC2 实例需要从每个传统负载均衡器接收多少个连接?
    对于其可以尝试与已执行负载均衡的 Amazon EC2 实例建立的连接数,Classic 负载均衡器并不设置上限。随着 HTTP、HTTPS 或 SSL 并发请求数或 Classic 负载均衡器所接收的并发 TCP 连接数的增多,此数值亦会提高。

    问:是否可以对使用付费 AMI 启动的 Amazon EC2 实例执行负载均衡?
    对于通过从 AWS Marketplace 购买的付费 AMI 启动的 Amazon EC2 实例,您可以对其执行负载均衡。但是,Classic 负载均衡器不支持使用 Amazon DevPay 站点上的付费 AMI 而启动的实例。

    问:是否可以在 Amazon Virtual Private Cloud 中使用 Classic 负载均衡器?
    可以。有关详情,请参阅 Elastic Load Balancing 网页。

    问:我能否获取从我的账户发起的所有 Classic 负载均衡器 API 调用的历史记录,以便进行安全分析并排除运行故障?
    可以。要获取从您的账户发起的 Classic 负载均衡器 API 调用的历史记录,只需在 AWS 管理控制台打开 CloudTrail 即可。

    问:Classic 负载均衡器是否支持终止 SSL?
    支持。您可以终止 Classic 负载均衡器上的 SSL 连接。您必须在每个负载均衡器上安装 SSL 证书。负载均衡器先使用此证书终止连接,然后解密来自客户端的请求并将请求发送到后端实例。

    问:获取 SSL 证书需要哪些步骤?
    您可以使用 AWS Certificate Manager 预置 SSL/TLS 证书,也可以从其他来源获取证书,具体方法如下:先创建证书请求、获取 CA 签名的证书请求,然后使用 AWS Identity and Access Management (IAM) 服务上传证书。

    问:传统负载均衡器如何与 AWS Certificate Manager (ACM) 集成?
    Classic 负载均衡器现已与 AWS Certificate Management (ACM) 集成。与 ACM 集成后,可以很简单地将证书绑定到每个负载均衡器,从而使整个 SSL 卸载过程变得非常容易。SSL/TLS 证书的购买、上传和续订通常是一个非常耗时且复杂的手动过程。Classic 负载均衡器与 ACM 集成后,整个过程便大大简化,只需请求受信任的 SSL/TLS 证书,然后选择 ACM 证书并使用负载均衡器对其进行预置即可。