AWS负载均衡:了解可选方案

简介

尽管应用的用途、平台和技术多种多样,但大多数应用都有一些共同需求:必须保持在线并避免受到硬件故障的影响,必须能够扩展以满足需求,还必须防范入侵和攻击。

自应用开始从大型机迁移到开放系统以来,各组织一直使用负载均衡器来管理应用的可扩展性和可用性。随着问题日益复杂、安全威胁愈加复杂,负载均衡器的功能集也不断丰富,并增加了安全和优化功能。

随着时间的推移,简单的负载均衡器已演变为功能强大的应用交付控制器(ADC)。全球数千家组织依靠ADC,确保与日常生活息息相关的应用安全、快速且可用。从紧急医疗服务和银行业务,到游戏和约会,ADC提供相关技术,帮助应用充分发挥性能。

随着应用从传统本地部署模式迁移到云服务,其对可扩展性、安全性和可用性的需求并未降低。因此,无论公有云还是私有云,所有云平台都将负载均衡服务作为其核心基础设施即服务(IaaS)产品的一部分,也就不足为奇了。

Amazon Web Services(AWS)Elastic Load Balancing(ELB)服务可帮助组织交付数十万个应用,其中包括一些互联网规模较大的应用。正如本地负载均衡器不断增加功能以满足客户需求一样,AWS中的负载均衡服务也在持续引入新特性和新功能。

虽然ELB非常适合许多组织,但有些组织需要更多功能,才能更好地支持其关键应用。此外,一些企业已部署ADC和负载均衡器,用于扩展和管理本地应用。对于这些组织,在AWS上采用与数据中心相同的平台,有助于减少云迁移所需的时间和成本,并降低相关风险。在决定哪种负载均衡服务适合贵组织之前,我们先来了解一下AWS上提供的各种负载均衡选项。

AWS上的负载均衡

在主流IaaS提供商中,Amazon Web Services提供的服务种类十分广泛,涵盖众多功能和用途,从基础计算和块存储到高级数据库和机器学习环境。负载均衡器是许多AWS客户架构中的关键组件。AWS提供两种不同的负载均衡服务,均称为“Elastic Load Balancing”,用于虚拟私有云(VPC)环境。

应用负载均衡器

Amazon Application Load Balancer (ALB)在AWS云上提供负载均衡、运行状况监控和基于URL的请求路由。ALB支持HTTP和HTTPS协议的负载均衡,可加载来自任一AWS证书管理服务的客户SSL证书,还支持WebSocket流量的负载均衡。此外,ALB支持后端Elastic Compute Cloud (EC2)服务器资源自动扩缩容:当流量需求增加时,ALB可以触发部署更多服务器;当需求下降时,则可以移除这些服务器。

ALB服务也可扩展以应对额外负载。随着应用网络流量增加,系统会创建更多ALB实例并将其注册到DNS,然后通过DNS轮询将流量分配到这些ALB实例。由于新实例的启动时间可能需要1至7分钟,为在突发工作负载下获得更佳性能,建议预热ALB实例。

可通过Web控制台、CLI、API、CloudFormation模板(CFT)以及Ansible等多种自动化工具部署ALB。

网络负载均衡器

AWS弹性负载均衡系列的最新成员是Network Load Balancer(NLB)。与“经典”负载均衡器一样,它在第4层运行,提供基于连接的负载均衡,以及网络层和应用层运行状况检查。NLB旨在有效应对流量激增和大量连接。此外,NLB的目标既可以是RFC 1918私有IP地址,也可以是EC2实例。其自动扩缩容、自扩缩和部署选项与ALB类似。

Classic Load Balancer

AWS仍提供其“经典”Elastic Load Balancer,支持针对TCP流量的基本第4层负载均衡,但不支持第7层流量均衡或流量导向。其自动扩缩容、自扩缩和部署选项与ALB类似。

F5 BIG-IP虚拟ADC

与轻量级AWS经典负载均衡器相比,F5® BIG-IP® ADC平台代表了负载均衡领域的另一端。凭借一系列可应对广泛安全、应用优化和可用性挑战的功能,BIG-IP能够解决较简单的解决方案无法解决的问题,并管理其无法处理的应用流量。

BIG-IP提供全面的应用流量管理,包括对流量进行全面检查、控制和处理。这些功能涵盖应用层请求和响应,可用于防止数据丢失以及处理服务器响应内容。事实证明,这项功能能够快速、可靠地解决问题,已成为数千家组织不可或缺的工具。此外,通过以编程方式全面检查和处理应用流量,开发人员可以在关键的战略控制点增加一个架构层,从而增强应用行为。

BIG-IP与ELB:管理方面的差异

这些可编程的问题解决能力也会带来一些需要注意的负担。首先,BIG-IP所处的基础设施层级不同于AWS经典负载均衡器和ALB。BIG-IP以EC2实例的形式部署在VPC中,这种方式既有优势,也有不足。作为VPC的一部分,ADC可以有效管理可用区内所有组件之间的流量,并让您能够在很大程度上控制VPC内各组件之间的通信。

与此同时,这也会增加需要管理和维护的EC2实例。该组件将成为任务关键型组件,虽然高可用性配置并不复杂,但现在需要由客户负责。底层平台的软件更新和日常管理也不由AWS负责,而是由客户承担;新功能则通过发布到AWS Marketplace的新版本提供,而不是通过基本无缝的服务升级来交付。

最后,BIG-IP既可按需扩展,也可自动扩展应用服务器实例,但与使用AWS核心服务相比,客户几乎不可避免地需要承担更多配置工作。

哪种负载均衡器适合我?

为贵组织选择合适的解决方案,主要取决于应用和平台需求。AWS ELB非常适合某些应用和用例,而其他应用和用例则需要BIG-IP的高级功能。

AWS Elastic Load Balancing

ALB专为需要简单负载均衡和一些基本URI到目标映射规则的应用而设计。对于许多AWS原生应用,ALB可以满足基本的流量分配和扩展需求。如果开发人员或应用供应商能够及时修复安全或功能问题,或者安全受损的总体风险较低,ALB是一个合适的选择。

对于使用其他TCP协议且需要可靠而简单的负载均衡服务的类似应用,经典负载均衡器通常足以满足需求。

BIG-IP负载均衡

在其他一些用例中,组织可能更倾向于在AWS上利用功能完备的ADC。使用AWS上的BIG-IP可带来以下部分优势:

  • 增强安全性
  • 更强的流量控制能力
  • 流量优化
  • 真正的应用层可编程性

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,需要通过Amazon Marketplace部署实例,并采用按使用量计费或自带许可证模式。BIG-IP镜像既可手动部署,也可使用AWS CFT等自动化选项进行部署。F5提供了多个获得全面支持的模板,以及一些“实验性”模板。这些模板可从F5 Github存储库获取,其中还包含Python SDK和其他工具。还可从F5 DevCentral存储库获取由社区支持的其他部署工具、playbook和文档。

结论

对于在AWS上部署应用的组织而言,AWS ELB和F5 BIG-IP都能带来显著价值。了解何时何处可能需要更强的控制能力、安全性或可编程性,有助于选择合适的解决方案,为云端应用和业务提供支持。

发布于2017年11月3日