尽管有广泛的用途、平台和技术,大多数应用都有一些共同的需求。它们必须始终在线,不受硬件故障的影响,它们必须进行扩展以满足需求,它们必须可以实现防御,以避免受到损害和攻击。
自从应用开始从大型计算机迁移到开放系统以来,企业已经使用负载均衡器来管理应用的可扩展性和可用性。当面临复杂的问题和更复杂的安全威胁时,负载均衡器开发了更丰富的功能集,并增加了安全和优化功能。
随着时间的推移,简单的负载均衡器已经发展成为强大的应用交付控制器 (ADC)。在世界各地,成千上万的企业依靠 ADC 来使日常所需的应用运行得安全、快速且可用。从紧急医疗服务和银行业务到游戏和约会,ADC 提供了帮助应用发挥其最佳性能的技术。
随着应用从传统的本地模式转移到云服务,它们对规模、安全性和可用性的需求并没有减少。因此,所有的云平台理所当然地(无论是共有元还是私有云)都提供负载均衡服务,作为其核心基础设施即服务 (IaaS) 产品的一部分。
Amazon Web Services (AWS) Elastic Load Balancing (ELB) 服务帮助企业提供数十万个应用,包括一些互联网最大的应用。就像本地的负载均衡器增加功能以满足客户需求一样,AWS 中的负载均衡服务也在不断加入新的特性和功能。
虽然 ELB 对许多企业来说是一个不错的选择,但其他企业需要额外的功能来周全地支持自己的关键应用。此外,一些企业已经部署了 ADC 和负载均衡器来扩展和管理他们的本地应用。对于这些企业来说,在 AWS 上采用与数据中心相同的平台可以减少云迁移的时间、成本和风险。在决定哪种负载均衡服务适合企业之前,让我们看一下 AWS 上的各种负载均衡选项。
Amazon Web Services 提供了所有主流 IaaS 供应商中最广泛的服务,跨越了巨大的功能和用途范围,从简单的计算和块存储到先进的数据库和机器学习环境。许多 AWS 客户架构的一个关键组成部分是负载均衡器,其中AWS提供两种不同的服务(都以“Elastic Load Balancing”为名),用于虚拟私有云 (VPC) 环境中。
Amazon 的 Application Load Balancer (ALB) 在 AWS 的云上提供负载均衡、健康监测和基于 URL 的请求路由。ALB 利用从 AWS 云的证书管理服务之一加载的客户 SSL 证书提供 HTTP 和 HTTPS 协议负载均衡,还支持负载均衡 WebSocket 流量。此外,ALB 允许自动扩展后端弹性计算云 (EC2) 服务器资源:当流量需求增加时,ALB 可以触发部署额外的服务器,然后可以在需求降低时删除这些服务器。
ALB 服务也可以扩展以应对额外的负载。随着应用网络流量的增加,额外的 ALB 实例被创建并在 DNS 上注册,然后使用 DNS 轮回技术将流量分配到 ALB 实例上。为了在突发的工作负载下获得最佳性能,建议对 ALB 实例进行预热,因为新实例的启动时间可能在 1 到 7 分钟不等。
ALB 可以通过 Web 控制台、CLI、API、云形成模板 (CFT) 和许多自动化工具(如 Ansible)来部署。
AWS 的云上弹性负载均衡系列的最新成员是 Network Load Balancer(NLB)。与“经典”负载均衡器一样,它在第 4 层运行,提供基于连接的负载均衡以及网络和应用层的健康检查。NLB 的设计可以完美消化流量高峰和大量连接。此外,NLB 允许以 RFC 1918 私有 IP 地址以及 EC2 实例为目标。自动扩展、自我扩展和部署选项与 ALB 类似。
AWS 也仍然提供“经典”Elastic Load Balancer,它支持 TCP 流量的基本第 4 层负载均衡,但没有第 7 层流量均衡或引导。自动扩展、自我扩展和部署选项与 ALB 类似。
较轻量级 AWS 经典负载均衡器而言,F5® BIG-IP® ADC 平台代表了负载均衡领域的另一个维度。BIG-IP 拥有一整套功能,可以解决大量的安全、应用优化和可用性挑战,能够解决简单解决方案无法处理的问题并管理应用流量。
BIG-IP 提供全面的应用流量管理,其中包括全面的流量检查、控制和操作。这延伸到了应用层的请求和响应,从而实现了数据丢失预防和服务器响应内容操作。这种能力已被证明是一种快速、可靠和宝贵的问题解决工具,适用于成千上万的企业。此外,对应用流量的全面程序化检查和操作为开发人员提供了一个额外的架构层,从而在一个关键的战略控制点上优化应用行为。
所有这些可编程、解决问题的能力均会有些弊端,这点无法否认。首先,BIG-IP 在一个不同于 AWS 的经典负载均衡器和 ALB 的基础设施层面上运行。BIG-IP 作为 EC2 实例部署在 VPC 中,这既有优点也有缺点。作为 VPC 的一部分,ADC 能够有效地管理可用性区域内所有组件之间的流量,并对 VPC 中的组件之间的通信进行重要控制。
同时,它创建了额外的需要管理和维护的 EC2 实例。将成为关键任务的组件的高可用性(虽然易于配置)现在变成了企业的责任。在软件更新和一般管理方面,管理底层平台不是由AWS而是由客户来处理,而新的功能是由发布到 AWS Marketplace 的版本来提供,而不是本质上的无缝服务升级。
最后,BIG-IP 既可以按需扩展,也可以自动扩展应用服务器实例,但与使用 AWS 核心服务相比,几乎不可避免地会有更多的配置工作落在客户身上。
为企业选择合适的解决方案,基本上取决于应用和平台需求。有些应用和用例很适合 AWS ELB,而有些则需要 BIG-IP 的高级功能。
ALB 是为需要简单的负载均衡和一些基本的 URI 到目的地的映射规则的应用而设计。ALB 将满足许多 AWS 的原生应用的基本流量分配和扩展服务。当开发人员或应用供应商可以及时修复安全或功能问题时,或者安全问题的整体风险较低时,很明显要选择 ALB。
对于使用其他 TCP 协议的类似应用,需要强大但简单的负载均衡服务,经典的负载均衡器通常就够用。
在其他使用案例中,企业可能更愿意利用 AWS 上成熟的 ADC 功能。在 AWS 的云上使用 BIG-IP 的一些好处包括:
BIG-IP 的平台架构为您提供了对应用流量的完全可见性和控制。凭借大量的功能,AWS 环境中的 BIG-IP 实例可以提供强大的工具包,解决应用性能、安全性或可用性问题。BIG-IP 可以将单个应用层请求引导到任何可路由的资源,从本地 EC2 实例或其他云中的服务器实例到基于 API 的服务或本地设备。
例如,ALB 可以根据请求的 URL 将流量引导到后端资源,但如果需要根据更复杂的特性(如设备类型、连接速度或客户端位置)引导流量,BIG-IP 更有能力完成这一任务。
当企业应用被迁移到云或开发人员无法随时缓解应用漏洞或行为问题时,这种先进的问题解决能力变得非常重要。当应用需要紧急保护、在新的客户端类型(甚至客户端操作系统改变)下出现错误行为,或在某些请求下崩溃时,BIG-IP 通常会提供快速、简单和可靠的修复。
另一个重要因素是数据中心和云之间的一致性需求。成千上万的企业依靠 BIG-IP 设备在其数据中心提供关键应用。AWS BIG-IP Virtual Edition 在 AWS 上提供的应用层服务与数据中心中的物理 BIG-IP 相同。使用 BIG-IP VE,企业可以更快、更便宜、更有信心地迁移应用,同时员工可以把重新掌握技能的精力放在其他领域,继续应用企业对 BIG-IP 掌握的现有知识和投资。
作为一项本地服务,部署 AWS ELB 就像检查一个盒子一样简单。在 AWS 上启动和运行 BIG-IP VE 需要使用按账单计费或自带许可模式从 AWS Marketplace 部署实例。BIG-IP 镜像的部署可以手动管理,也可以使用 AWS CFT 等自动化选项,其中 F5 提供了许多得到充分支持的模板(以及一些“实验性”模板)。这些都可以从 F5 Github 资源库中获得,其中还包含 Python SDK 和其他工具。其他社区支持的部署工具、操作手册和文档可从 F5 DevCentral 资源库中获得。
AWS ELB 和 F5 BIG-IP 都为在 AWS 上部署应用的企业提供了极具吸引力的价值。了解要在哪种时间点和情况需要加强控制、安全或可编程性,可以帮助您选择正确的解决方案来支持云中的应用和业务。