Elastic Load Balancing 支持三种类型的负载均衡器:Application Load Balancer、Network Load Balancer 和 Classic Load Balancer。这里用ALB( Application Load Balancer)说明。
应用程序负载均衡器(ALB)在应用程序层正常工作,该层是开放系统互连 (OSI) 模型的第 7 层。当你的流量递增的时候,ALB会自动伸缩,来适应你的负载,一般自动伸缩需要10几分钟,如果预测你的流量增长比较快,需要向AWS申请人工扩容。当然,后端负载的ec2需要你自己准备扩容。
目前中国区的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的连接数量,并做相应的邮件通知。
参考:
https://docs.amazonaws.cn/elasticloadbalancing/latest/application/introduction.html