进行实验,创建两个EC2, 每一个EC2在一个AZ (Availability Zone)里,再创建一个ELB,达到负载均衡的目的。
AWS负载均衡有三种:
- Application Load Balancer
- Network Load Balancer
- Classic Load Balancer,如果应用没有反应,那么ELB会返回504
这三种负载均衡有一些区别,首先,Application Load Balancers 和 Network Load Balancers需要使用Target Group,注册实例到Target Group,流量会用到Target Group, Classic Load Balancer需要直接注册实例到Load Balancers。
另外, Application Load Balancers的cross-zone load balancing设置是一直开启的,Network Load Balancer的cross-zone load balancing设置默认关闭,可以设置开启。Classic Load Balancer,如果使用API 或者 CLI创建,cross-zone load balancing设置默认关闭,如果使用界面进行创建,cross-zone load balancing设置默认开启。
创建两个EC2
创建两个EC2,分别在不同的AZ里,启动脚本分别是:
第一个EC2,
#!/bin/bash
yum update -y
yum install httpd -y
service httpd start
chkconfig httpd on
cd /var/www/html
echo "<html><h1>这是我的第一个服务器</h1></html>" > index.html
第二个EC2,
#!/bin/bash
yum update -y
yum install httpd -y
service httpd start
chkconfig httpd on
cd /var/www/html
echo "<html><h1>这是我的第二个服务器</h1></html>" > index.html
创建一个Classic Load Balancer
在EC2界面里的Load Balancer里创建Classic Load Balancer,注意到里面是灰色的,显示PREVIOUS GENERATION for HTTP, HTTPS, and TCP
,估计是以后要废弃了。取名:XiongTestLB
,默认先前创建的安全组:MyWebDMZ
。添加前面创建的两个实例,另外设置安全检查,检查点为/index.html
。
Step 4: Configure Health Check
Cancel Previous Next: Add EC2 Instances
Your load balancer will automatically perform health checks on your EC2 instances and only route traffic to instances that pass the health check. If an instance fails the health check, it is automatically removed from the load balancer. Customize the health check to meet your specific needs.
那么等待一会,ELB会生成一个网址:http://xiongtestlb-2109892632.ap-southeast-1.elb.amazonaws.com/
, 等待状态为InService
,在浏览器里测试这个网址,由于使用了负载均衡,测试结果是在两个EC2之间进行切换。
这是我的第一个服务器
这是我的第二个服务器
测试创建Application loader Balancer和Target group
创建Application loader Balancer,并取名为XiongApplicationELB
。在创建Application loader Balancer的过程中,需要创建Target group,取名为XiongTargetGroup
,添加前面创建的两个EC2的实例,这里创建侦听器来监测这个新创建的Target Group, 这个Target Group可以设计流量规则 。
Target group也生成了DNS Name网址:XiongApplicationELB-137106111.ap-southeast-1.elb.amazonaws.com
测试结果也是在两个EC2之间进行切换。
这是我的第一个服务器
这是我的第二个服务器
术语
==ELB== Elastic Load Balancer
==AZ== Availability Zone
==Security Group== 安全组
Reference
What Is Elastic Load Balancing?
Registered Instances for Your Classic Load Balancer
Controlling Access to Your Amazon EC2 Auto Scaling Resources
The Netflix Simian Army
How Elastic Load Balancing Works