11 月 19 - 20 日 Apache Pulsar 社区年度盛会来啦,立即报名! 了解详情
写点什么

新版 Network Load Balancer 推出

  • 2019-10-21
  • 本文字数:2651 字

    阅读完需:约 9 分钟

新版 Network Load Balancer 推出
Elastic Load Balancing


(ELB) 于 2009 年作为三件组合包的一部分


推出


(另外两件是


Auto Scaling



Amazon CloudWatch


),自推出以来一直都是 AWS 的重要组成部分。从那时开始,我们已经添加了很多功能,同时引入了


Application Load Balancer


。Application Load Balancer 设计用于支持基于内容的应用程序级路由和运行在容器中的应用程序,非常适用于微服务、流式处理和实时工作负载。这些年来,我们的客户使用 ELB 支持以几乎任意规模运行的网站和应用程序,从在一个或两个 T2 实例上运行的简单站点到在大型高端实例队列上运行的复杂应用程序,并处理海量流量。ELB 还可以在后台监控流量,并自动扩展以满足需求。多年来,这一过程(包括巨大的缓冲空间)的速度更快、响应更迅捷,甚至非常适合那些使用 ELB 来支持直播、闪购和假日季的客户。但是,在某些情况下,例如区域之间的瞬时故障转移或高峰期突增的工作负载,我们会与客户一起预配置 ELB,以应对流量激增。 **新版 Network Load Balancer**


今天,我们要介绍的是新版 Network Load Balancer (NLB)。它设计用于每秒处理数千万个请求,同时以超低延迟保持高吞吐量,无需您执行任何操作。Network Load Balancer 与 Application Load Balancer 保持 API 兼容,包括对目标组和目标的完全编程控制。以下是它的一些最重要的功能:


静态 IP 地址 – 每个 Network Load Balancer 均可为其权限范围内的每个可用区提供单个 IP 地址,与该 IP 地址的连接将在相应可用区中所有 VPC 子网的实例之间传输流量。如果您同时在


us-west-2a


us-west-2c 中有目标,NLB 将创建和管理两个 IP 地址(每个可用区一个)。您也可以为每个可用区指定现有的弹性 IP,以实现更好的控制。通过完全控制 IP 地址,Network Load Balancer 可以用于需要将 IP 地址硬编码为 DNS 记录、客户防火墙规则等的情况。


区域性 – 每可用区一个 IP 地址的功能可以通过提高性能来降低延迟,通过隔离和容错提高可用性,并使 Network Load Balancer 对客户端应用程序透明。此外,Network Load Balancer 还可将来自特定源的一系列请求路由到单个可用区中的目标,并在这些目标不可用时仍然提供自动故障转移。


源地址保留 – 借助 Network Load Balancer,传入连接的初始源 IP 地址和源端口将保持不变,因此,应用程序软件不需要支持


X-Forwarded-For、代理协议


或其他解决方法。这也意味着您可以在目标上使用常规防火墙规则,包括 VPC 安全组。


长时间运行的连接 – NLB 可处理具有内置容错的连接,并且可以处理已打开数月或数年的连接,使其适用于物联网、游戏和消息收发应用程序。


故障转移 – NLB 由


Route 53 运行状况检查提供支持,支持区域内和跨区域的 IP 地址之间的故障转移。


**创建 Network Load Balancer**


要创建 Network Load Balancer,请打开 EC2 控制台,选择


负载均衡器,然后单击


创建负载均衡器



选择“Network Load Balancer”,单击


创建,然后输入详细信息。为目标 VPC 中的每个子网选择一个弹性 IP 地址,然后标记 Network Load Balancer:



然后单击 **配置路由**,创建一个新的目标组。输入名称,然后选择协议和端口。我还可以设置要在流量端口或我选择的备用端口上进行的运行状况检查:



单击注册目标和要接收流量的 EC2 实例,然后单击添加到已注册目标



确保所有设置正确无误,然后单击创建



新负载均衡器的状态为正在预置,并将在一分钟左右切换到活动状态:



出于测试目的,我直接从控制台获取了负载均衡器的 DNS 名称(在实际操作中,您需要使用 Amazon Route 53 和更友好的名称):



然后,我向该负载均衡器发送了大量流量(我原本打算让它运行一两秒即可,但是我走神了。结果它创建了大量进程,这是一个有趣的小意外):


Bash


$ while true;> do>   wget http://nlb-1-6386cc6bf24701af.elb.us-west-2.amazonaws.com/phpinfo2.php &> done
复制代码


当然,更严格的测试会使用 Bees with Machine Guns 之类的工具!


我快速断开了一下,让一些流量传输,然后查看了 Load Balancer 的 CloudWatch 指标,发现它可以轻松应对这种突然的流量冲击:



我还查看了 EC2 实例,看看它们在加载期间的运行状况(事实证明,运行状况非常好):



后来,我的同事执行了一次更为严格的测试。他们设置了一个 Network Load Balancer,并使用自动扩展的实例队列为其提供支持。然后,他们设置了第二个由数百个 EC2 实例组成的队列,每个实例均运行 Bees with Machine Guns,并被配置为生成具有高度变化的请求和响应大小的流量。从每秒 150 万个请求开始,他们迅速提高拨入,在测试资源耗尽之前,每秒达到了 300 多万个请求和 30Gbps 的总带宽。


选择负载均衡器


与往常一样,在选择负载均衡器时,您应考虑应用程序的需求。下面是一些准则:


Network Load Balancer (NLB) – NLB 每秒能够处理数百万个请求,同时保持超低延迟,非常适合 TCP 流量的负载均衡。NLB 还经过优化,能够处理不稳定的流量模式,同时在每个可用区使用单个静态 IP 地址。


Application Load Balancer (ALB) – ALB 提供支持现代应用程序体系结构(包括微服务和基于容器的应用程序)的高级请求路由,非常适合 HTTP 和 HTTPS 流量的高级负载均衡。


Classic Load Balancer (CLB) – 非常适合在 EC2-Classic 网络中构建的应用程序。


有关并排的功能比较,请参阅 Elastic Load Balancer 详情表。


如果您当前使用的是 Classic Load Balancer,希望迁移到 Network Load Balancer,请参阅我们的负载均衡器复制实用工具。这一 Python 工具可帮助您创建与现有 Classic Load Balancer 配置相同的 Network Load Balancer。它还可以使用新的负载均衡器注册现有 EC2 实例。


定价和可用性


和 Application Load Balancer 一样,新版 NLB 的定价以负载均衡器容量单位 (LCU) 为基础。根据以下几项中的最高值,每 LCU 为 0.006 USD:


  • 带宽 – 1GB/ LCU。

  • 新连接 – 800 个/LCU。

  • 活动连接 – 100,000 个/LCU。


大多数应用程序都有带宽限制,在与 Application Load Balancer 或 Classic Load Balancers 对比时,成本(负载均衡)应减少约 25%。


目前,由 AWS CloudFormationAuto ScalingAmazon ECS 提供支持的 Network Load Balancer 已面向所有 AWS 商业区域提供,中国(北京)地区除外。


作者介绍:


Jeff Barr


Jeff Barr 是 AWS 的首席布道师,从 2004 年开始写本博客以来,他开启了不停写博文的模式。


本文转载自 AWS 技术博客。


原文链接:


https://amazonaws-china.com/cn/blogs/china/new-network-load-balancer/


2019-10-21 08:00407

评论

发布
暂无评论
发现更多内容

缓存思想在算法设计中的应用梳理

che-ri-sh

缓存

架构师课程第八周总结

dongge

信创舆情一线--工信部开展APP侵害用户权益专项整治行动

统小信uos

网络通讯

陈皮

架构师第8周学习总结

小蚂蚁

TNFE-Weekly[第六十六周已更新]

莹姐🙈

小程序 大前端 周报

第八周课后作业

晨光

架构师第八周

Tulane

PC人脸识别登录,出乎意料的简单

程序员小富

Java 人脸识别

Hadoop 中的 Namenode 和 Datanode

dongge

架构师训练营 - 第八周 - 学习总结

韩挺

各类SQL中日期时间那些事

大唐小生

sql 大数据 SQL语法

六大自动化测试技巧

禅道项目管理

自动化 测试

Java十大常用框架介绍(spring系+dubbo+RabbitMQ+Ehcache+redis)

BUZHIDAO

查找两个单向链表合并元素

leis

架构师训练营 - 第八周 - 作业

韩挺

总结

李朋

架构师培训 -08 数据结构算法,网络通信协议,非阻塞网络I/O,数据库原理

刘敏

CompletableFuture运行流程源码详解

编号94530

Java 并发编程 多线程 CompletableFuture

37岁程序员被裁,想用6月工资跪舔领导划掉被裁名额,结果蒙了!

程序员生活志

程序员 职场

教培行业工程师面临着什么挑战?研发面板全栈式解决工程师的痛点

Deepexi

DevOps 运维 敏捷开发 研发管理 单元测试

如何让你的Nginx 提升10倍性能?

老大哥

Java

架构师训练营第八周作业

Geek_2dfa9a

架构师课作业 - 第八周

Tulane

架构师训练营第八周总结

Geek_2dfa9a

第八周作业

Geek_a327d3

链表查找算法,HDFS数据节点宕机处理

dony.zhang

第8周

李朋

套娃成功!在《我的世界》里运行Win95、玩游戏,软件和教程现已公开!

程序员生活志

游戏 我的世界

躬履艰难,其节乃见:华为陈黎芳眼中的全球责任

脑极体

第八周课后总结

晨光

新版 Network Load Balancer 推出_语言 & 开发_亚马逊云科技 (Amazon Web Services)_InfoQ精选文章