开始学习Amazon ELB(弹性负载均衡)
ELB(Elastic Load Balancing)
Amazon ELB是一个系统及网站的关口,即客户的访问(进口)及系统的相应结果(出口)都要经过ELB。
使用Amazon ELB可提高系统的系统的可用性及维护性!
创建Amazon ELB
- 点击:Services页面的EC2
- 点击:[NETWORK & SECURITY]下面的[Load Balancers]
- 点击:[Create Load Balancer]
1 .定义负载均衡(Load Balancer)
定义负载均衡的时候,需定义ELB和EC2之间的通信方式,一般有2中方式HTTP及HTTPS。
Load Balancer Protocol | Load Blancer Port | Instance Protocol | Instance Port |
---|---|---|---|
HTTP | 80 | HTTP | 80 |
HTTPS | 443 | HTTP | 80 |
在这里选择客户访问ELB的80端口,ELB再把数据转送(Forward)到EC2的80端口。
ELB以HTTPS(通常是443端口)方式处理的时候,需要在ELB上配置SSL证明书。
- Load Blanser name:awsgood
- Create LB Instance:在这里使用默认
- Create an internal load banacer:有效
- Enable advanced VPC configuration Listener Configuration:在这里不选择
- 最后点击[Next:Assing Security Groups]
2. 定义安全组(Security Group)
在定义负载均衡的时候,ELB仅以HTTP(80端口)方式接收客户端的请求,因此安全组里也只允许HTTP(TCP协议的80端口)。
Type | Protocol | Port Range | Source |
---|---|---|---|
Custom TCP Rule | TCP | 80 | Anywhere 0.0.0.0/0 |
- 选择Create a new security group(在这里新建安全组)
- Security group name:awsgood for ELB(可任意填写)
- Description:This Security Group for ELB(可任意填写)
- 点击:Next:Configure Security Settings
3. 设置安全
在这里没有选择HTTPS因此无设定页面,点击[Next:Configure health Check]。
4. 配置Health Check
ELB需要确认管理下的EC2是不是在一个可提供服务器的状态下,这个管理机制就是Health Check(可用性检查)。
参数名 | 默认值 | 内容 |
---|---|---|
Ping Protocol | HTTP | Health Check使用的协议 |
Ping Port | 80 | Health Check使用的端口 |
Ping Path | /index.html | ELB确认EC2可用性时访问的路径 |
Response Timeout | 5 | 响应超时时间(单位:秒) |
Helth Check Interval | 30 | Health Check的间隔(单位:秒) |
Unhealthy Threshold | 2 | ELB确认EC2,连续失败多少次?会判定为EC2异常(OutOfService) |
Healthy Threshold | 10 | ELB确认EC2,连续成功几回?判定为正常(InService) |
5. 添加EC2实例
添加ELB管理的EC2实例。在这里只添加了一个Amazon EC2实例,创建ELB之后也可以添加EC2实例。
创建实例的方法,参照 : 5分钟创建Amazon EC2实例
参数名 | 说明 |
---|---|
Enable Cross-Zone Load Balancing | ELB管理下的EC2跨AZ(AvailabilityZone)的时候,以EC2实例为单位提供进行负载均衡。 |
Enable Connection Draining | ELB管理下的EC2不能提供服务时(状态为OutOfService),以确立连接的Connection的维持时间(单位:秒) |
6. 定义标签
可定义任意的标签。
- Nmae:awsgood-ELB
- 点击:Review and Create
7. 确认配置及创建ELB
确认ELB的配置正确以后,点击[Create]。
确认ELB
创建ELB以后查看其正确性。
- 选择创建ELB
- 点击Instance
- 查看Status为InService
如Instance的Status为OutOfService时,需查看Health Check的配置。
根据Health Check的配置,有时Status变为InService需要可能需要一点时间。如果确认Health Check的配置没有问题,并且过了一定时间(根据Health Check的配置不同)以后,状态还为OutOfService时候,可尝试以下操作。
- 点击该实例下面的[Edit Instances]
- 为选择该实例的状态下,点击[Save]
- 再次点击该实例下面的[Edit Instances]
- 选择该实例以后,点击[Save]
其实以上的操作就是把该实例从ELB的管理下删除/添加的操作。
万一EC2实例还是在[OutOfService]状态的话,需确认EC2的安全组(SecurityGroup)配置及Health Check配置里指定的路径是不是能访问。