目录
介绍
elastic load balancing 支持三种类型的负载均衡器:application load balancer、network load balancer 和 classic load balancer。这里用alb( application load balancer)说明。
功能差异
- application load balancer(alb)
- 应用层负载均衡:工作在osi模型的第7层(应用层),专注于http、https和quic等应用层协议。
- 复杂路由能力:支持基于内容的路由,能够根据url路径、http头、查询字符串等条件将请求转发到不同的目标组。
- 深度集成:与云原生服务(如kubernetes)深度集成,是阿里云官方提供的云原生ingress网关。
- 安全性:自带ddos防护,集成web应用防火墙,支持全链路https加密。
- network load balancer(nlb)
- 网络层负载均衡:工作在osi模型的第4层(传输层),专注于tcp和udp协议。
- 高性能:能够处理数百万个请求/秒,同时保持超低延迟,非常适合需要高性能网络传输的应用场景。
- 静态ip和弹性ip支持:可以分配静态ip地址或弹性ip地址,提供更灵活的网络配置选项。
- classic load balancer(clb)
- 多功能协议支持:支持tcp、ssl/tls、http和https协议,是aws中支持协议最多的负载均衡器。
- 基本功能:提供负载均衡器的基本功能,如健康检查、会话粘性等。
- 向后兼容性:适用于需要向后兼容旧版aws服务或工具的场景。
适用场景
- alb
- 适用于需要复杂路由和高度灵活性的web应用和服务。
- 适用于微服务架构,能够高效处理来自不同客户端的请求,并根据请求内容将流量路由到相应的服务实例。
- nlb
- 适用于需要高性能、低延迟的网络传输场景,如数据库集群、实时音视频通信等。
- 适用于需要直接处理tcp或udp流量的应用,如游戏服务器、实时消息系统等。
- clb
- 适用于不需要复杂路由和高级功能的简单web应用和服务。
- 适用于需要向后兼容旧版aws服务或工具的场景,以及需要支持多种协议的应用场景。
性能比较
- alb:由于其工作在应用层,因此具有强大的路由和转发能力,但相对于nlb来说,在处理大量tcp连接时可能会有一定的性能开销。
- nlb:提供极高的性能和极低的延迟,特别适用于需要处理大量tcp连接或udp数据包的应用场景。
- clb:虽然支持多种协议,但在性能和灵活性方面可能不如alb和nlb。
补充
目前中国区的ddos防御还没上,但是机房的的网络入口有syn proxy,检测到syn flood 会帮你挡掉直到特定的阀值,挡不掉的部分由alb自己做弹性伸缩来硬吃。
基本组成部分
- 负载均衡器
- 侦听器
- 目标组
创建流程
按照流程创建就行,这里把需要注意的地方记录一下:
1. 对外的alb,需要两个不同可用区的公有子网,如果不具备,请自行创建两个公有子网()(如果使用私有子网,会造成alb访问不到后端的ec2),如下
2. 需要准备你的域名(如:vip.test.com)ssl证书,一般你向供应商购买ssl证书后,都会提供给你(公有密钥证书:就是crt文件,私有密钥:就是key文件。通常这两个文件已经是pem编码了,直接拷贝粘贴就行。)
3. alb创建完成后,一般会分配给你一个对外的域名,如:myinternal-elb-1677075150.cn-north-1.elb.amazonaws.com.cn ,如果你需要使用自己的域名(vip.test.com)指向该alb,需要在你的dns服务器中增加一条cname记录(vip.test.com 已有的a记录需要删除,不然不会生效):
myinternal-elb-1677075150.cn-north-1.elb.amazonaws.com.cn. in cname vip.test.com.
当你配置好cname后,可以使用dig 来测试:
$ dig test.vip.com
; <<>> dig 9.10.6 <<>> vip.test.com
;; global options: +cmd
;; got answer:
;; ->>header<<- opcode: query, status: noerror, id: 58877
;; flags: qr rd ra; query: 1, answer: 3, authority: 0, additional: 0
;; question section:
;vip.test.com. in a
;; answer section:
vip.test.com. 600 in cname myinternal-elb-1677075150.cn-north-1.elb.amazonaws.com.cn.
myinternal-elb-1677075150.cn-north-1.elb.amazonaws.com.cn. 600 in a 52.80.xxx.xx
myinternal-elb-1677075150.cn-north-1.elb.amazonaws.com.cn. 600 in a 52.81.xxx.xx
;; query time: 6 msec
;; server: 192.168.5.1#53(192.168.5.1)
;; when: tue may 07 01:09:59 cst 2019
;; msg size rcvd: 143
4. 创建alb后,记得在cloudwatch中为alb创建基本的监控,例如监控alb后端的实例数,elb的连接数量,并做相应的邮件通知。
发表评论