一般性问题
问:我如何确定为应用程序选择哪种负载均衡器?
答:Elastic Load Balancing (ELB) 支持四类负载均衡器。您可以根据应用程序按需选择合适的负载均衡器。如果您需要对 HTTP 请求进行负载均衡,建议您使用 Application Load Balancer (ALB)。如果您需要对网络/传输协议(第 4 层 – TCP、UDP)以及极端性能/低延迟的应用程序进行负载均衡,建议您使用 Network Load Balancer。如果应用程序在 Amazon Elastic Compute Cloud (Amazon EC2) Classic 网络中构建而成,则建议您使用 Classic Load Balancer。如果您需要部署和运行第三方虚拟设备,您可以使用网关负载均衡器。
问:我可以在不使用公有 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 文档。
问:有没有适用于负载均衡器的 SLA?
答:有,Elastic Load Balancing 可保证负载均衡器(传统、应用程序或网络)的每月可用性至少达到 99.99%。如需了解有关 SLA 的更多信息并了解您是否有资格获得额度,请访问此处。
Application Load Balancer
问:Application Load Balancer 支持哪些操作系统?
答:Application Load Balancer 支持使用 Amazon EC2 目前所支持的任何操作系统的目标。
问:Application Load Balancer 支持哪些协议?
答:Application Load Balancer 支持对使用 HTTP 和 HTTPS(安全 HTTP)协议的应用程序进行负载均衡。
问:Application Load Balancer 是否支持 HTTP/2?
答:能。Application Load Balancer 内置 HTTP/2 支持。支持 HTTP/2 的客户端可以通过 TLS 连接到 Application Load Balancer。
问:如何在我的 Application Load Balancer 上使用静态 IP 或 PrivateLink?
答:您可以从为每个可用区的 PrivateLink 和静态 IP 地址提供支持的网络负载均衡器中将流量转发至您的 Application Load Balancer。创建一个 Application Load Balancer 型目标组、将 Application Load Balancer 注册到该目标组并将网络负载均衡器配置为将流量转发至 Application Load Balancer 型目标组。
问:可以对哪些 TCP 端口执行负载均衡?
答:您可以为下列 TCP 端口执行负载均衡:1-65535
问:Application Load Balancer 是否支持 WebSocket?
答:能。Application Load Balancer 内置 WebSocket 和 Secure WebSocket 支持,随时可用。
问:Application Load Balancer 是否支持请求跟踪?
答:能。您的 Application Load Balancer 上默认启用了请求跟踪。
问:Classic Load Balancer 是否具有与 Application Load Balancer 相同的功能和优点?
答:虽然存在一些重叠,但两种类型的负载均衡器之间没有同等的功能。Application Load Balancer 是我们面向未来推出的应用程序层负载均衡平台的基础。
问:可否将 Amazon EC2 实例配置为仅接收来自 Application Load Balancer 的流量?
答:可以。
问:我是否可以为 Application Load Balancer 的前端配置安全组?
答:可以。
问:可否将用于 Classic Load Balancer 的现有 API 用于 Application Load Balancer?
答:不可以。Application Load Balancer 需要一组新的应用程序编程接口 (API)。
问:如何同时管理 Application Load Balancer 和 Classic Load Balancer?
答:借助 ELB 控制台,您可以在同一界面中管理 Application Load Balancer 和 Classic Load Balancer。如果您使用命令行界面 (CLI) 或软件开发工具包 (SDK),则将针对 Application Load Balancer 使用其他“服务”。例如,在 CLI 中,您可以使用“aws elb describe-load-balancers”描述 Classic Load Balancer,使用“aws elbv2 describe-load-balancers”描述 Application Load Balancer。
问:可否将 Classic Load Balancer 转换为 Application Load Balancer(或将 Application Load Balancer 转换为 Classic Load Balancer)?
答:不可以,您不能将一种负载均衡器类型转换为另一种。
问:可否从 Classic Load Balancer 迁移到 Application Load Balancer?
答:能。您可以使用该文档中所列的方式之一从 Classic Load Balancers 迁移到 Application Load Balancer。
问:可否将 Application Load Balancer 用作第 4 层负载均衡器?
答:不可以。如果您需要第 4 层功能,则应使用 Network Load Balancer。
问:可否使用单个 Application Load Balancer 处理 HTTP 和 HTTPS 请求?
答:可以。您可以将 HTTP 端口 80 和 HTTPS 端口 443 的侦听器添加到单个 Application Load Balancer。
问:我能否获取从我的账户发起的所有 Application Load Balancer API 调用的历史记录,以便进行安全分析并排除运行故障?
答:能。要获取从您的账户发起的 Application Load Balancer API 调用的历史记录,请使用 AWS CloudTrail。
问:Application Load Balancer 是否支持终止 HTTPS?
答:支持。您可以终止 Application Load Balancer 上的 HTTPS 连接。您必须在负载均衡器上安装安全套接字层 (SSL) 证书。负载均衡器先使用此证书终止连接,然后解密来自客户端的请求并将请求发送到目标。
问:获取 SSL 证书需要哪些步骤?
答:您可以使用 AWS Certificate Manager 预置 SSL/TLS 证书,也可以从其他来源获取证书,具体方法如下:先创建证书请求、获取 CA 签名的证书请求,然后使用 AWS Certification Manager 或 AWS Identity and Access Management (IAM) 服务上传证书。
问:Application Load Balancer 如何与 AWS Certificate Manager (ACM) 集成?
答:Application Load Balancer 现已与 AWS Certificate Management (ACM) 集成。与 ACM 集成后,可以简化将证书绑定到负载均衡器的过程,从而精简整个 SSL 卸载过程。SSL/TLS 证书的购买、上传和续订是一个复杂且耗时的手动过程。Application Load Balancer 与 ACM 集成后,整个过程便大大简化,只需请求受信任的 SSL/TLS 证书,然后选择 ACM 证书并使用负载均衡器对其进行预置即可。
问:Application Load Balancer 是否支持后端服务器身份验证?
答:不支持。Application Load Balancer 仅支持后端加密。
问:如何能为 Application Load Balancer 启用服务器名称指示 (SNI)?
答:当您将多个 TLS 证书与负载均衡器上的同一个安全侦听器关联时,系统会自动启用 SNI。同样,当您仅将一个证书与一个安全侦听器关联时,系统会自动禁用该安全侦听器的 SNI 模式。
问:可以将同一个域的多个证书关联到一个安全侦听器吗?
答:可以,您可以将同一个域的多个证书关联到一个安全侦听器。例如,您可以指定:
- ECDSA 和 RSA 证书
- 密钥长度不同(例如 2K 和 4K)的 SSL/TLS 证书
- 单域型、多域型 (SAN) 和通配符证书
问:Application Load Balancer 是否支持 IPv6?
答:支持。Application Load Balancer 支持 IPv6。
问:如何在 Application Load Balancer 上设置规则?
答:您可以针对负载均衡器上的每个侦听器配置规则。规则包括条件以及条件满足时的相应操作。支持的条件为托管标头、路径、HTTP 标头、方法、查询参数和源 IP 无类域间路由 (CIDR)。支持的操作为重定向、固定响应、验证和转发。规则设置成功后,负载均衡器将使用这些规则来确定应路由哪个特定 HTTP 请求。您可以在一个规则中使用多个条件和操作,并可以在每个条件中就多个值指定一个匹配。
问:Application Load Balancer 是否存在资源限制?
答:您的 AWS 账户存在以下关于 Application Load Balancer 的限制。
问:如何保护负载均衡器后的 Web 应用程序免受 Web 攻击?
答:您可以将 Application Load Balancer 与 AWS Web Application Firewall (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、Amazon 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。
问:如何在 Application Load Balancer 中启用跨区域负载均衡?
答:在 Application Load Balancer 中,跨区域负载均衡默认已启用。
问:什么时候应该使用与 Application Load Balancer 集成的 Amazon Cognito 验证用户身份,什么时候应该利用 Application Load Balancer 对 OpenID Connect (IODC) 身份提供程序 (IdP) 的原生支持验证用户身份?
答:如果存在以下情况,您应该使用 Amazon Cognito 验证身份:
- 您希望采用灵活方式验证用户身份:可以通过社交媒体身份(Google、Facebook 和 Amazon),可以通过企业身份 (SAML),或者可以通过 Amazon Cognito 用户池为您提供的用户目录。
- 您管理多个身份提供程序(包括 OpenID Connect)并希望在 Application Load Balancer (ALB) 中创建一个身份验证规则,该规则可以使用 Amazon Cognito 联合您的多个身份提供程序。
- 您需要从一个集中位置使用一个或多个社交或 OpenID Connect 身份提供程序主动管理用户配置文件。例如,您可以将用户分组,并添加自定义属性来代表用户状态,控制付费用户的访问权限。
另外,如果您已经开发了自定义 IdP 解决方案并希望使用一个与 OpenID Connect 兼容的身份提供程序进行身份验证,那么您最好使用 Application Load Balancer 原生的 OIDC 解决方案。
问:Application Load Balancer 支持什么类型的重定向?
答:支持以下三种类型的重定向。
重定向类型 | 示例 |
---|---|
HTTP 重定向到 HTTP | http://hostA 重定向到 http://hostB |
HTTP 重定向到 HTTPS | http://hostA 重定向到 https://hostB |
HTTPS 重定向到 HTTPS | https://hostA 重定向到 https://hostB |
问:ALB 支持哪些内容类型作为固定响应操作的消息正文?
答:支持以下内容类型:text/plain、text/css、text/html、application/javascript 和 application/json。
问:通过 Application Load Balancer 进行的 AWS Lambda 调用的机制是什么?
答:负载均衡器接收的 HTTP(S) 请求由基于内容的路由规则处理。如果请求内容与具有将 Lambda 函数作为目标转发到目标组的操作的规则匹配,则调用相应的 Lambda 函数。请求的内容(包括标题和正文)以 JavaScript 对象表示法 (JSON) 格式传递给 Lambda 函数。Lambda 函数的响应应采用 JSON 格式。Lambda 函数的响应转换为 HTTP 响应并发送到客户端。负载均衡器使用 AWS Lambda Invoke API 调用您的 Lambda 函数,并要求您将 Lambda 函数的调用权限提供给 Elastic Load Balancing 服务。
问:通过 Application Load Balancer 调用 Lambda 是否支持 HTTP 和 HTTPS 协议上的请求?
答:是。Application Load Balancer 支持通过 HTTP 和 HTTPS 协议进行请求的 Lambda 调用。
问:我可以在哪些 AWS 区域中使用 Lambda 函数作为 Application Load Balancer 的目标?
答:在以下 AWS 区域,您可以将 Lambda 用作 Application Load Balancer 的目标:美国东部(弗吉尼亚北部)、美国东部(俄亥俄)、美国西部(加利福尼亚北部)、美国西部(俄勒冈)、亚太地区(孟买)、亚太地区(首尔)、亚太地区(新加坡)、亚太地区(悉尼)、亚太地区(东京)、加拿大(中部)、欧洲(法兰克福)、欧洲(爱尔兰)、欧洲(伦敦)、欧洲(巴黎)、南美洲(圣保罗)和 GovCloud(美国西部)。
问:Application Load Balancer 在 AWS Local Zones 中是否可用?
答:是的,Application Load Balancer 可以在洛杉矶本地区域中使用。在洛杉矶本地扩展区内,Application Load Balancer 将在单个子网中运行并自动扩展,以适应不同级别的应用程序负载,而无需人工干预。
问:Application Load Balancer 的定价机制是什么?
答:您需要按 Application Load Balancer 的运行小时数(不足 1 小时按 1 小时算)和每小时使用的负载均衡器容量单位 (LCU) 数付费。
问:什么是负载均衡器容量单位 (LCU)?
答:LCU 是一项新指标,用于确定您如何为 Application Load Balancer 付费。对于 Application Load Balancer 处理流量时涉及的各项指标(新连接数、活跃连接数、带宽和规则评估数),LCU 将确定哪项指标的资源使用量最大。
问:Classic Load Balancer 是否会按 LCU 计费?
答:不会,Classic Load Balancer 将继续按带宽和每小时使用量计费。
问:如何得知 Application Load Balancer 使用的 LCU 数?
答:我们通过 Amazon CloudWatch 公开构成 LCU 的所有四个指标的使用情况。
问:我是否需要为一个 LCU 中的所有指标付费?
答:不需要。每小时所使用的 LCU 数量由组成 LCU 的四个指标中资源使用量最大的指标来决定。
问:我是否只需为部分 LCU 付费?
答:能。
问:是否会为新 AWS 账户提供 Application Load Balancer 免费套餐?
答:是。对于新 AWS 账户,针对 Application Load Balancer 提供包括 750 小时和 15 个 LCU 的免费套餐。此免费套餐仅面向新 AWS 客户提供,自 AWS 注册之日起 12 个月内有效。
问:能否在免费套餐中同时使用 Application Load Balancer 和 Classic Load Balancer?
答:是。您可以同时使用 Classic Load Balancer 和 Application Load Balancer,二者的免费使用量分别为 15GB 和 15 个 LCU。Classic Load Balancer 和 Application Load Balancer 的免费使用时间共计 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 |
问:当在 Application Load Balancer 中启用跨区域负载均衡时,我是否需要对区域 AWS 数据转移付费?
答:不需要。当您在 Application Load Balancer 中启用跨区域负载均衡时,您无需支付此类型的区域数据转移费用。
问:Application Load Balancer 的用户身份验证是否需要单独付费?
答:不需要。启用 Application Load Balancer 中的身份验证功能不需要单独付费。如果同时使用 Amazon Cognito 和 Application Load Balancer,需要按 Amazon Cognito 定价付费。
问:如何对 AWS Lambda 目标使用 Application Load Balancer 收费?
答:通常,您需要按 Application Load Balancer 的运行小时数(不足 1 小时按 1 小时算)和每小时使用的负载均衡器容量单位 (LCU) 数付费。对于 Lambda 目标,每个 LCU 每小时处理 0.4 GB 字节,每秒处理 25 个新连接,每分钟处理 3000 个活动连接以及每秒处理 1000 个规则评估。对于已处理的字节维度,每个 LCU 每小时为 Lambda 目标提供 0.4GB,而对于所有其他目标类型(如 Amazon EC2 实例、容器和 IP 地址),每小时提供 1GB。请注意,通常的 AWS Lambda 费用适用于 Application Load Balancer 对 Lambda 的调用。
问:我如何区分 Lambda 目标处理的字节数与其他目标(Amazon EC2、容器和本地服务器)处理的字节数?
答:Application Load Balancer 会发出两个新的 CloudWatch 指标。LambdaTargetProcessedBytes 指标指示 Lambda 目标处理的字节数,StandardProcessedBytes 指标指示由所有其他目标类型处理的字节数。
Network Load Balancer
问:我能否为 Network Load Balancer 创建 TCP 或 UDP(第 4 层)侦听器?
答:能。网络负载均衡器支持 TCP、UDP 和 TCP+UDP(第 4 层)侦听器以及 TLS 侦听器。
问:Network Load Balancer 提供哪些重要功能?
答:Network Load Balancer 提供 TCP 和 UDP(第 4 层)负载均衡功能。网络负载均衡器的设计目的在于处理每秒数百万请求、突变的流量模式以及提供超低延迟。此外,Network Load Balancer 还支持 TLS 终止,保存客户端的源 IP,提供稳定的 IP 支持和区域隔离,以及支持长时间运行的连接(此类连接对 WebSocket 型应用程序非常有用)。
问:Network Load Balancer 能否在同一端口上处理 TCP 和 UDP 协议流量?
答:能。为此,您可以使用 TCP+UDP 侦听器。例如,对于同时使用 TCP 和 UDP 的 DNS 服务,您可以在端口 53 上创建 TCP+UDP 侦听器,然后负载均衡器将在该端口上处理 UDP 和 TCP 请求的流量。您必须将 TCP+UDP 侦听器与 TCP+UDP 目标组关联。
问:网络负载均衡器与 Classic Load Balancer 上的 TCP 侦听器相比如何?
答:Network Load Balancer 会保存客户端的源 IP,Classic Load Balancer 则不会。不过,客户可以使用配备 Classic Load Balancer 的代理协议获取源 IP。Network Load Balancer 会自动按可用区 (AZ) 向相应负载均衡器提供静态 IP,还支持按 AZ 向相应负载均衡器分配弹性 IP。Classic Load Balancer 不提供此项支持,
问:能否从 Classic Load Balancer 迁移到网络负载均衡器?
答:能。您可以使用该文档中所列的方式之一从 Classic Load Balancer 迁移到 Network Load Balancer。
问:Network Load Balancer 是否存在资源限制?
答:是的,有关详细信息,请参阅 Network Load Balancer 限制文档。
问:我能否使用 AWS 管理控制台设置 Network Load Balancer?
答:能,您可以使用 AWS 管理控制台、AWS CLI 或相应 API 创建 Network Load Balancer。
问:我能否使用 Classic Load Balancer 的现有 API 创建网络负载均衡器?
答:不能。要创建 Classic Load Balancer,请使用 2012-06-01 API。要创建网络负载均衡器或 Application Load Balancer,请使用 2015-12-01 API。
问:我能否在单个可用区内创建 Network Load Balancer?
答:能,您可以在单个 AZ 内创建 Network Load Balancer,方法是在创建负载均衡器时提供单个子网。
问:Network Load Balancer 是否支持 DNS 地区和区域故障转移?
答:支持,您可以使用 Amazon Route 53 运行状况检查和 DNS 故障转移功能来增强在 Network Load Balancer 后方运行的应用程序的可用性。使用 Route 53 DNS 故障转移,您可以在多个 AWS 可用区运行应用程序并跨地区指定备用负载均衡器以进行故障转移。
如果您的 Network Load Balancer 已针对多个可用区进行了配置,那么当该可用区内通过该负载均衡器注册的 Amazon EC2 实例运行状况不佳时,或者当指定可用区内的负载均衡器节点运行状况不佳时,Route 53 将故障转移至其他运行状况良好的可用区内的备用负载均衡器节点。
问:我的 Network Load Balancer 能否同时具有 ELB 提供的 IP、弹性 IP 和分配的私有 IP?
答:不能。Network Load Balancer 的地址必须完全由您或 ELB 控制。这是为了确保当将弹性 IP 用于 Network Load Balancer 时,客户端常用的所有地址均不会改变。
问:我能否在每个子网中为 Network Load Balancer 分配多个 EIP?
答:不能。对于 Network Load Balancer 所在的每个关联子网,该 Network Load Balancer 仅支持单个公有/面向 Internet 的 IP 地址。
问:如果我移除/删除 Network Load Balancer,其关联的弹性 IP 地址会怎样?
答:该负载均衡器关联的弹性 IP 地址将返回已分配的池,以供未来使用。
问:Network Load Balancer 是否支持内部负载均衡器?
答:您可以将 Network Load Balancer 设置为面向 Internet 的负载均衡器或内部负载均衡器,可实现与 Application Load Balancer 和 Classic Load Balancer 类似的功能。
问:内部 Network Load Balancer 能否在每个子网中支持多个私有 IP?
答:不能。对于负载均衡器所在的每个关联子网,该 Network Load Balancer 只能支持一个私有 IP。
问:我能否使用 Network Load Balancer 设置 Websockets?
答:能,您可以配置 TCP 侦听器,用于将流量路由至实施 WebSockets 协议 (https://tools.ietf.org/html/rfc6455) 的目标。由于 WebSockets 是第 7 层协议,而 Network Load Balancer 在第 4 层运行,因此无需针对 WebSockets 或其他更高级别的协议特别处理 Network Load Balancer。
问:能否对任意 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 地址目标类型仅在 TCP 侦听器上受支持,目前在 UDP 侦听器上不受支持。
问:能否使用 Network Load Balancer 设置 AWS PrivateLink?
答:能,带有 TCP 和 TLS 侦听器的网络负载均衡器可以用来设置 AWS PrivateLink。您不能在网络负载均衡器上使用 UDP 侦听器设置 PrivateLink。
问:什么是 UDP 流?
答:用户数据报协议 (UDP) 处于无连接状态,而负载均衡器基于 5 元组哈希维持 UDP 流状态,确保在相同环境中发送的数据包始终被转发到相同目标。只要流量在流动,流就被视为是活跃的,直到达到空闲超时。一旦达到超时阈值,负载均衡器就会忘记关联,传入的 UDP 数据包将被视为新流,并被负载均衡到新目标。
问:Network Load Balancer 支持的空闲超时是多长时间?
答:TCP 连接的 Network Load Balancer 空闲超时为 350 秒。UDP 流的空闲超时为 120 秒。
问:通过将具有 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 中启用跨区域负载均衡?
答:您只能在创建您的 Network Load Balancer 之后才可以启用跨区域负载均衡。您可以通过编辑负载均衡器属性,然后勾选跨区域负载均衡支持选框来实现。
问:当在 Network Load Balancer 中启用跨区域负载均衡时,我是否需要对区域 AWS 数据传输付费?
答:需要。当 Network Load Balancer 中启用跨区域负载均衡时,将对可用区之间的区域数据传输进行计费。在 Amazon EC2 按需定价页面的数据传输部分中查看收费信息。
问:跨区域负载平衡是否对 Network Load Balancer 限制有任何影响?响?
答:是。Network Load Balancer 每个可用区目前支持 200 个目标。例如,如果您处于两个可用区内,您可以在 Network Load Balancer 最多注册 400 个目标。如果启用跨区域负载平衡,那么支持的最多目标数将从每个可用区 200 个减少至每个负载平衡器 200 个。因此,在上述例子中,当启用跨区域负载平衡时,即使您的负载平衡器处于两个可用区中,您能在负载平衡器中注册的目标数最多为 200 个。
问:Network Load Balancer 是否支持 TLS 终止?
答:是。您可以终止 Network Load Balancer 上的 TLS 连接。您必须在负载均衡器上安装 SSL 证书。负载均衡器先使用此证书终止连接,然后解密来自客户端的请求并将请求发送到目标。
问:终止 Network Load Balancer 上的 TLS 时,源 IP 地址会保留吗?
答:即使您终止了 Network Load Balancer 上的 TLS,源 IP 地址也会继续保留。
问:获取 SSL 证书需要哪些步骤?
答:您可以使用 AWS Certificate Manager 预置 SSL/TLS 证书,也可以从其他来源获取证书,具体方法如下:先创建证书请求、获取证书颁发机构 (CA) 签名的证书请求,然后使用 AWS Certification Manager (ACM) 或 AWS Identity and Access Management (IAM) 服务上传证书。
问:如何能为 Network Load Balancer 启用服务器名称指示 (SNI)?
答:当您将多个 TLS 证书与负载均衡器上的同一个安全侦听器关联时,系统会自动启用 SNI。同样,当您仅将一个证书与一个安全侦听器关联时,系统会自动禁用该安全侦听器的 SNI 模式。
问:Network Load Balancer 如何集成 AWS Certificate Manager (ACM) 或 Identity Access Manager (IAM)?
答:Network Load Balancer 现已与 AWS Certificate Management (ACM) 集成。与 ACM 集成后,可以很简单地将证书绑定到负载均衡器,从而使整个 SSL 卸载过程变得非常容易。SSL/TLS 证书的购买、上传和续订是一个非常耗时且复杂的手动过程。Network Load Balancer 与 ACM 集成后,整个过程便大大简化,只需请求受信任的 SSL/TLS 证书,然后选择 ACM 证书并使用负载均衡器对其进行预置即可。创建 Network Load Balancer 之后,您现在即可配置 TLS 侦听器,然后您便可以选择从 ACM 或 Identity Access Manager (IAM) 中选择证书。这种经验类似于 Application Load Balancer 或 Classic Load Balancer 提供的体验。
问:Network Load Balancer 是否支持后端服务器身份验证?
答:不支持。Network Load Balancer 仅支持后端加密。
问:Network Load Balancer 支持哪些类型的证书?
答:Network Load Balancer 仅支持 2K 密钥大小的 RSA 证书。我们目前不支持在 Network Load Balancer 上使用密钥大小超过 2K 的 RSA 证书或 ECDSA 证书。
问:哪些 AWS 区域的 Network Load Balancer 支持 TLS 终止?
答:在以下 AWS 区域,您可以在 Network Load Balancer 上使用 TLS 终止:美国东部(弗吉尼亚北部)、美国东部(俄亥俄)、美国西部(加利福尼亚北部)、美国西部(俄勒冈)、亚太区域(孟买)、亚太地区(首尔)、亚太地区(新加坡)、亚太地区(悉尼)、亚太地区(东京)、加拿大(中部)、欧洲(法兰克福)、欧洲(爱尔兰)、欧洲(伦敦)、欧洲(巴黎)、南美洲(圣保罗)和 GovCloud(美国西部)。
问:Network Load Balancer 的定价机制是什么?
答:您需要按 Network Load Balancer 的运行小时数(不足 1 小时按 1 小时算)和每小时使用的负载均衡器容量单位 (LCU) 数付费。
问:什么是负载均衡器容量单位 (LCU)?
答:LCU 是一项新指标,用于确定您如何为 Network Load Balancer 付费。对于 Network Load Balancer 处理流量时涉及的各项指标(新连接/流数、活跃连接/流数和带宽),LCU 可确定哪项指标使用的资源最多。
问:Network Load Balancer 上 TCP 流量的 LCU 指标有哪些?
答:TCP 流量的 LCU 指标如下:
- 每秒 800 个新 TCP 连接。
- 100000 个活跃 TCP 连接(每分钟取样)。
- 对于目标 Amazon EC2 实例、容器和 IP 地址,每小时 1GB。
答:UDP 流量的 LCU 指标如下:
- 每秒 400 个新流。
- 50000 个活跃 UDP 流(每分钟取样)。
- 对于目标 Amazon EC2 实例、容器和 IP 地址,每小时 1GB。
问:Network Load Balancer 上 TLS 流量的 LCU 指标有哪些?
答:TLS 流量的 LCU 指标如下:
- 每秒 50 个新 TLS 连接。
- 3000 个活跃 TLS 连接(每分钟取样)。
- 对于目标 Amazon EC2 实例、容器和 IP 地址,每小时 1GB。
问:每秒的新连接/流数是否与每秒请求数相同?
答:不相同。在一次连接中可以发送多个请求。
问:Classic Load Balancer 是否会按 LCU 计费?
答:不会,Classic Load Balancer 将继续按带宽和小时费用计费。
问:如何得知 Network Load Balancer 使用的 LCU 数量?
答:我们会通过 Amazon CloudWatch 公布组成 LCU 的所有三个指标的使用情况。
问:我是否需要为一个 LCU 中的所有指标付费?
答:不需要。每小时所使用的 LCU 数量由组成 LCU 的三个指标中资源使用量最大的指标来决定。
问:我是否只需为部分 LCU 付费?
答:是。
问:是否会为新 AWS 账户提供 Network Load Balancer 免费套餐?
答:是。对于新 AWS 账户,针对 Network Load Balancer 提供包括 750 小时和 15 个 LCU 的免费套餐。此免费套餐仅面向新 AWS 客户提供,自 AWS 注册之日起 12 个月内有效。
问:能否在免费套餐中同时使用网络负载均衡器、Application Load Balancer 和 Classic Load Balancer?
答:是。您可以同时使用 Application Load Balancer 和网络负载均衡器(每个免费使用量均为 15 个 LCU)以及 Classic Load Balancer(分别为 15GB)。Application Load Balancer、网络负载均衡器和 Classic Load Balancer 的免费使用时间共计 750 小时。
网关负载均衡器
入门
问:与 Network Load Balancer 或 Application Load Balancer 相反的是,我应该什么时候使用网关负载均衡器?
答:您应该在部署网络流量目标不为网关负载均衡器本身的内联虚拟设备时使用网关负载均衡器。网关负载均衡器可以通过第三方虚拟设备以透明方式传递第 3 层的所有流量,并且对流量源和目的地不可见。有关如何比较这些负载均衡器的更多详细信息,请参阅功能比较页面。
问:网关负载均衡器是按区域还是按可用区(AZ)部署?
答:网关负载均衡器在一个可用区内运行。
问:网关负载均衡器提供哪些重要功能?
答:网关负载均衡器提供第 3 层网关和第 4 层负载均衡功能。它是一种透明的线内缓冲设备,不会改变数据包的任何部分。网络负载均衡器的设计目的在于处理每秒数百万请求、不稳定的流量模式以及带来超低延迟。请参阅此表中的网关负载均衡器功能。
问:网关负载均衡器是否执行 TLS 终止?
答:网关负载均衡器不执行 TLS 终止且不会维持任何应用程序状态。这些功能由第三方虚拟设备执行,而网关负载均衡器在其中发送和接收流量。
问:网关负载均衡器是否会维持应用程序状态?
答:网关负载均衡器不维持应用程序状态,但它使用 5 元组(对于 TCP/UDP 流量)或 3 元组(对于非 TCP/UDP 流量)维持流量对特定设备的粘性。
问:网关负载均衡器如何定义流量?
答:默认情况下,网关负载均衡器将流量定义为由源 IP、目标 IP、IP 协议、源端口和目标端口组成的 5 元组的组合。网关负载均衡器使用默认的 5 元组哈希确保该流量的两个方向(即源到目标和目标到源)始终被转发到相同目标。只要流量在流动,流就被视为是活跃的,直到达到空闲超时。一旦达到超时阈值,负载均衡器就会忘记关联,传入的流量数据包将被视为新流,并可能被负载均衡到新目标。
问:我应该何时在网关负载均衡器上使用 5 元组、3 元组和 2 元组粘性?
默认的 5 元组(源 IP、目标 IP、IP 协议、源端口和目标端口)粘性为目标提供最佳的流量分配,适用于大多数基于 TCP 和 UDP 的应用程序,但有一些例外。默认的 5 元组粘性不适用于基于 TCP 或 UDP、为控件和数据使用单独的流式传输或端口号的应用程序,如 FTP、Microsoft RDP、Windows RPC 和 SSL VPN。此类应用程序的控制和数据流可能会落在不同的目标设备上,并可能导致流量中断。如果要支持此类协议,应该使用 3 元组(源 IP、目标 IP、IP 协议)或 2 元组(源 IP、目标 IP)启用 GWLB 流粘性。
有些应用程序根本不使用 TCP 或 UDP 传输,而是使用 SCTP 和 GRE 等 IP 协议。利用 GWLB 默认的 5 元组粘性,来自这些协议的流量可能会落在不同的目标设备上,并可能导致中断。如果要支持此类协议,应该使用 3 元组(源 IP、目标 IP、IP 协议)或 2 元组(源 IP、目标 IP)启用 GWLB 流粘性。
请参阅流粘性文档以了解如何更改流粘性类型。
问:网关负载均衡器支持的空闲超时是多长时间?
答:TCP 连接的网关负载均衡器空闲超时为 350 秒。非 TCP 流的空闲超时为 120 秒。这些超时为固定数值,不能更改。
问:GWLB 是否支持数据包分段?
答:作为透明的线内缓冲设备,GWLB 本身不会对数据包进行分段或重组。
GWLB 将 UDP 片段转发到设备/从目标设备转发。但是,GWLB 会丢弃 TCP 和 ICMP 分段,因为这些分段中不存在第 4 层标头。
此外,如果目标设备将原始传入数据包转换为片段并将新创建的片段发送回 GWLB,则 GWLB 会丢弃这些新创建的片段,因为它们不包含第 4 层标头。为防止在目标设备上发生分段,我们建议在您的目标设备上启用巨型帧或设置您的目标设备的网络接口以便使用最大所需 MTU,从而通过使原始数据包内容保持原样来实现透明的转发行为。
问:Gateway Load Balancer 如何处理单个可用区中一个虚拟设备实例的故障?
答:当单个虚拟设备实例发生故障时,网关负载均衡器会将其从路由列表中删除并将流量重新路由至运行状况正常的设备实例中。
问:网关负载均衡器如何处理单个可用区中所有虚拟设备的故障?
答:如果某个可用区的所有虚拟设备都发生故障,网关负载均衡器将删除网络流量。为获得更大的可用性,我们建议将网关负载均衡器部署在多个可用区中。如果一个可用区内的所有设备均发生故障,脚本可用于添加新设备,或将流量导向另一个可用区内的网关负载均衡器。
问:我能否将设备配置为多个网关负载均衡器的目标?
答:能,多个网关负载均衡器可以指向相同的虚拟设备集。
问:我可以为网关负载均衡器创建哪种类型的侦听器?
答:网关负载均衡器是一种透明的线内缓冲设备,可侦听所有类型的 IP 流量(包括 TCP、UDP、ICMP、GRE、ESP 等)。因此只能在网关负载均衡器上创建 IP 侦听器。
问:网关负载均衡器是否存在资源限制?
答:是的,有关详细信息,请参阅 Gateway Load Balancer 限制文档。
问:我能否使用 AWS 管理控制台设置网关负载均衡器?
答:能,您可以使用 AWS 管理控制台、AWS CLI 或相应 API 创建网关负载均衡器。
问:我能否在单个可用区内创建网关负载均衡器?
答:能,您可以在单个可用区内创建网关负载均衡器,方法是在创建负载均衡器时提供单个子网。但是,我们建议使用多个可用区来提升可用性。创建网关负载均衡器后,您不能添加或删除可用区。
问:如何在网关负载均衡器中启用跨区域负载均衡?
答:默认情况下禁用跨区负载均衡。您只能在创建您的网关负载均衡器之后才可以启用跨区域负载均衡。您可以通过编辑负载均衡器属性,然后勾选跨区域负载均衡支持选框来实现。
问:当在网关负载均衡器中启用跨区域负载均衡时,我是否需要对 AWS 数据传输付费?
答:需要。当网关负载均衡器中启用跨区域负载均衡时,将对可用区之间的数据传输进行计费。在“Amazon EC2 按需定价”页面的数据传输部分中查看收费信息。
问:跨区域负载平衡是否对网关负载均衡器限制有任何影响?
答:是。网关负载均衡器每个可用区目前支持 300 个目标。例如,如果您在 3 个可用区内创建网关负载均衡器,则可以最多注册 900 个目标。如果启用跨区域负载平衡,那么支持的最多目标数将从每个可用区 300 个减少至每个网关负载均衡器 300 个。
网关负载均衡器定价常见问题
问:网关负载均衡器的定价机制是什么?
答:您需要按网关负载均衡器的运行小时数(不足 1 小时按 1 小时算)和网关负载均衡器每小时使用的负载均衡器容量单位 (LCU) 数付费。
问:什么是负载均衡器容量单位 (LCU)?
答:LCU 是一个 Elastic Load Balancing 指标,用于确定您如何为网关负载均衡器付费。对于网关负载均衡器处理流量时涉及的各项指标(新连接/流数、活跃连接/流数和带宽),LCU 可确定哪项指标使用的资源最多。
问:用于网关负载均衡器的 LCU 指标有哪些?
答:TCP 流量的 LCU 指标如下:
- 每秒 600 个新流(或连接)。
- 6 万个活跃流(连接)(每分钟取样)。
- 对于目标 EC2 实例、容器和 IP 地址,每小时 1GB。
答:不是。您只需按这三个指标中小时使用量最高的那个指标付费。
网关负载均衡器终端节点
问:我为什么需要网关负载均衡器终端节点?
为了具有价值,虚拟设备需要尽量少带来额外延迟,且进出虚拟设备的流量必须遵循安全连接。网关负载均衡器终端节点会创建满足这些要求所需的安全低延迟连接。
问:网关负载均衡器终端节点如何帮助进行集中化?
使用网关负载均衡器终端节点,设备可以驻留在不同的 AWS 账户和 VPC 中。这样一来,设备可以集中在一个位置,从而更加便于管理和减少运营开销。
问:网关负载均衡器终端节点的工作原理是什么?
网关负载均衡器终端节点是采用 PrivateLink 技术的一种新的 VPC 端点类型。当网络流量从一个来源(互联网网关、VPC 等)流向网关负载均衡器,然后返回时,网关负载均衡器终端节点可确保这两者之间的私有连接。所有流量均通过 AWS 网络,且数据永远不会公开到互联网上,从而提高安全性和性能。
问:PrivateLink 接口终端节点与网关负载均衡器终端节点有何不同?
PrivateLink 接口终端节点与 Network Load Balancer (NLB) 配对,以分发目标为 Web 应用程序的 TCP 和 UDP 流量。相比之下,网关负载均衡器终端节点可网关负载均衡器结合使用,以连接流量的来源和目的地。流量通过虚拟设备从网关负载均衡器端点流向网关负载均衡器中,然后再通过安全的 PrivateLink 连接返回目的地中。
问:我可以将多少个网关负载均衡器端点连接到一个网关负载均衡器?
网关负载均衡器端点是一个 VPC 端点,对于可以连接到使用网关负载均衡器的服务的 VPC 端点数量没有限制。但是,我们建议每个网关负载均衡器连接不超过 50 个网关负载均衡器端点,以降低在服务失效时产生更广泛影响的风险。
经典负载均衡器
问:Classic Load Balancer 支持哪些操作系统?
答:Classic Load Balancer 支持 Amazon EC2 实例使用 Amazon EC2 服务目前支持的所有操作系统。
问:Classic Load Balancer 支持哪些协议?
答:Classic Load Balancer 支持对使用 HTTP、HTTPS(安全 HTTP)、SSL(安全 TCP)和 TCP 协议的应用程序执行负载均衡。
问:可以为哪些 TCP 端口执行负载均衡?
答:您可以为下列 TCP 端口执行负载均衡:
- [EC2-VPC] 1-65535
- [EC2-Classic] 25、80、443、465、587、1024-65535
问:Classic Load Balancer 是否支持 IPv6 流量?
答:能。每个 Classic Load Balancer 都关联一个 IPv4、一个 IPv6 和一个双栈(同时支持 IPv4 和 IPv6)DNS 名称。VPC 中不支持 IPv6。您可以在 VPC 中使用 Application Load Balancer 提供原生 IPv6 支持。
问:可否将 Amazon EC2 实例配置为仅接收来自 Classic Load Balancer 的流量?
答:能。
问:可否为 Classic Load Balancer 的前端配置安全组?
答:如果您使用的是 Amazon Virtual Private Cloud,则可以为 Classic Load Balancer 的前端配置安全组。
问:可否使用单个 Classic Load Balancer 处理 HTTP 和 HTTPS 请求?
答:可以。您可以将 HTTP 端口 80 和 HTTPS 端口 443 映射到单个 Classic Load Balancer。
问:已进行负载均衡的 Amazon EC2 实例需要从每个 Classic Load Balancer 接收多少个连接?
答:对于其可以尝试与已执行负载均衡的 Amazon EC2 实例建立的连接数,Classic Load Balancer 并不设置上限。随着 HTTP、HTTPS 或 SSL 并发请求数或 Classic Load Balancer 所接收的并发 TCP 连接数的增多,此数值亦会提高。
问:是否可以对使用付费 AMI 启动的 Amazon EC2 实例执行负载均衡?
答:对于通过从 AWS Marketplace 购买的付费 AMI 启动的 Amazon EC2 实例,您可以对其执行负载均衡。但是,Classic Load Balancer 不支持使用 Amazon DevPay 网站上的付费 AMI 启动的实例。
问:是否可以在 Amazon Virtual Private Cloud 中使用 Classic Load Balancer?
答:能。请参阅 Elastic Load Balancing 网页。
问:我能否获取从我的账户发起的所有 Classic Load Balancer API 调用的历史记录,以便进行安全分析并排除运行故障?
答:能。要获取从您的账户发起的 Classic Load Balancer API 调用的历史记录,只需在 AWS 管理控制台打开 CloudTrail 即可。
问:Classic Load Balancer 是否支持终止 SSL?
答:支持。您可以终止 Classic Load Balancer 上的 SSL 连接。您必须在每个负载均衡器上安装 SSL 证书。负载均衡器先使用此证书终止连接,然后解密来自客户端的请求并将请求发送到后端实例。
问:获取 SSL 证书需要哪些步骤?
答:您可以使用 AWS Certificate Manager 预配置 SSL/TLS 证书,也可以从其他来源获取证书,具体方法如下:先创建证书请求、获取 CA 签名的证书请求,然后使用 AWS Identity and Access Management (IAM) 服务上传证书。
问:Classic Load Balancer 如何与 AWS Certificate Manager (ACM) 集成?
答:Classic Load Balancer 现已与 AWS Certificate Management (ACM) 集成。与 ACM 集成后,可以很简单地将证书绑定到每个负载均衡器,从而使整个 SSL 卸载过程变得非常容易。SSL/TLS 证书的购买、上传和续订通常是一个非常耗时且复杂的手动过程。Classic Load Balancer 与 ACM 集成后,整个过程便大大简化,只需请求受信任的 SSL/TLS 证书,然后选择 ACM 证书并使用负载均衡器对其进行预置即可。
问:如何在 Classic Load Balancer 中启用跨区负载均衡?
答:您可以使用控制台、AWS CLI 或 AWS 开发工具包启用跨区负载均衡。有关更多详细信息,请参阅跨区负载均衡文档。
问:当在 Classic Load Balancer 中启用跨区域负载均衡时,我是否需要对区域 AWS 数据传输付费?
答:不需要。当您在 Classic Load Balancer 中启用跨区域负载均衡时,您无需为可用区之间的区域数据传输付费。