天天看点

AWS - Elastic load Balance的创建使用 (下)

上一篇豆子演示了如何创建一个基本的ELB对数据进行分流到不同的服务器上。现在我们更进一步,如果访问数据过多过大,比如春晚,比如购买火车票,如何能够根据负荷自动的生成新的服务器进行分流,或者在不忙的时候自动关闭不用的服务器。这个功能可以用Auto Scaling来实现。

接下来,豆子演示一下如何创建一个Auto Scaling Group,会根据ELB下的CPU负荷自动调整,添加或者删除Web Server,所有自动生成的Web Server会自动加入我的Elastic Load Balancer进行分流。

首先,需要创建一个AMI Image,这样我们才能通过这个Image自动生成新的一摸一样的Web Server。

在之前创建好的Lab服务器上选择Create Image 就行了

AWS - Elastic load Balance的创建使用 (下)

输入相关信息

AWS - Elastic load Balance的创建使用 (下)

创建好了

AWS - Elastic load Balance的创建使用 (下)

接下来,我们需要创建Auto Scaling 的Configure 文件和 Auto Scaling Group。这个可以通过管理界面进行创建,也可以通过命令行创建。我下面的操作就是两种方式混杂着操作的。

如果想使用命令行,需要下载对应的命令行工具,并配置对应的环境变量。

具体操作可以参见我的另一篇博客

http://beanxyz.blog.51cto.com/5570417/1422452

AWS - Elastic load Balance的创建使用 (下)

配置好之后运行试试看就可以查看AMI的Image了

AWS - Elastic load Balance的创建使用 (下)

这个和我通过管理界面查看的一样

AWS - Elastic load Balance的创建使用 (下)

首先来创建一个Configure的配置文件,我需要指定 AMI Image,实例的类型,加密的Key,Security Group,Configure 文件的名字 和我所在的Region

如果不了解命令行,也可以直接通过图形界面操作

AWS - Elastic load Balance的创建使用 (下)

创建好的样子。

AWS - Elastic load Balance的创建使用 (下)

接下来我们创建Auto Scaling Group,这里我就通过管理界面来创建了,毕竟这个更直观一些

AWS - Elastic load Balance的创建使用 (下)

选择一个配置文件

AWS - Elastic load Balance的创建使用 (下)

取名字叫做 aws-as-group,注意勾选 load balancing,这样生成的VM默认都在指定的ELB里面,Subnet里面可以把所有的AZ都放进去以实现高可用

AWS - Elastic load Balance的创建使用 (下)

然后设定 Policy,选择Group Size,以及何种情况下触发增加或减少的操作

AWS - Elastic load Balance的创建使用 (下)

创建一个Alarm,自动发送给我的SNS Topic

比如CPU平均利用率超过50%,那么就自动增加一个服务器

AWS - Elastic load Balance的创建使用 (下)

CPU平均利用率低于30%,就自动删除一个服务器

AWS - Elastic load Balance的创建使用 (下)

设定好的样子

AWS - Elastic load Balance的创建使用 (下)

其余的警告通知

AWS - Elastic load Balance的创建使用 (下)

给Auto Scaling Group设定一个Tag标签,以便区分

AWS - Elastic load Balance的创建使用 (下)

最后Review一下

AWS - Elastic load Balance的创建使用 (下)

创建好的样子,所有的配置信息都可以根据需要继续修改。

AWS - Elastic load Balance的创建使用 (下)

因为我设定的范围是1-3,所以Auto Scaling Group里面至少要有一个EC2实例

收到通知,自动创建一个

AWS - Elastic load Balance的创建使用 (下)

自动创建中

AWS - Elastic load Balance的创建使用 (下)

输入新建服务器的IP,运行一下,LAMP工作正常

AWS - Elastic load Balance的创建使用 (下)

来看看ELB,已经自动包括进去了。

AWS - Elastic load Balance的创建使用 (下)

如果我们stop或者terminate一个AS里面的实例

AWS - Elastic load Balance的创建使用 (下)

他会自动创建一个新的

AWS - Elastic load Balance的创建使用 (下)

最后我们来做个负荷试验。

直接点开ELB,点击Generate load,对应的服务器会自动执行一些空操作,强行提高CPU的使用率

AWS - Elastic load Balance的创建使用 (下)

如下图

AWS - Elastic load Balance的创建使用 (下)

在cloudwatch里面可以观察到cpu的使用率急剧上升

AWS - Elastic load Balance的创建使用 (下)

超过一定的标准,会自动的创建新的实例

AWS - Elastic load Balance的创建使用 (下)

不过上面的实验不是太准确,因为CPU的负载是ELB其中一个服务器自己产生的;我们可以搭建一个新的服务器,独立于ELB的集群之外,然后通过genload.php脚本对指定的ELB发送大量请求,这样子就可以模拟一个更真实的环境,观察到因ELB的CPU负载变化而产生的改变了。

AWS - Elastic load Balance的创建使用 (下)
AWS - Elastic load Balance的创建使用 (下)

这个实验会花费比较长的时间,我就不赘述了,实验效果和前面一样,随着CPU使用率的变化,会自动增添或者减少EC2实例。

继续阅读