为Load Balancer(EC2)创建多个实例的正确方法

时间:2013-09-30 14:53:00

标签: wordpress amazon-web-services amazon-ec2 load-balancing

我使用EC2安装了Wordpress。我通过创建映像(AMI)创建了一个Load Balancer,然后在Load Balancer上添加了Wordpress1和Wordpress2。但我仍然遇到数据库错误,必须重新启动实例。如果我想将4个实例作为负载均衡器,那么步骤是否相同?因为我在启动AMI时看到了“实例数”选项。默认值为1.我不确定是否应该输入3或4来一次创建多个实例。

另外,如果我在Wordpress1实例上更新,那么更新是否会显示域是否会加载Wordpress2实例?

2 个答案:

答案 0 :(得分:2)

如果要启动多个实例和数据库等,则应考虑使用 AWS CloudFormation。 CloudFormation只是一个包含环境配置的大型json字符串,包括服务器,自动扩展,访问,向负载均衡器注册等。

有关详细信息,请参阅http://aws.amazon.com/en/cloudformation/

wordpress已经有一个示例模板,包括数据库和自动缩放组(example wordpress template

然而,就像数据中提到的那样,您需要对wordpress进行调整,以使其在多服务器环境中工作。

多服务器环境的“问题”是,如果您上传文件或在您的案例中升级wordpress,它只会发生在一台服务器上,可以在任何时候终止。此外,升级可能包含数据库结构的变化,然后变得复杂。

如果您正在构建云中的内容,则应始终牢记您构建的每项服务,在这种情况下,应允许前端Web服务器和数据库失败而不会中断您的服务。

另一点是,你应该避免手工做,自动化是关键。 您需要手动将服务器链接到负载均衡器的环境在服务器不断终止,重新启动和交换的云中并不十分有用。

对于您的网络服务器,您可以使用“自动缩放组”来获取此行为。 如果您正在使用自动缩放组并且服务器被终止或被视为运行状况不佳,则会自动启动新服务器并在负载均衡器被认为是健康状态时立即向其注册。

对于您的数据库,amazon为rds多AZ环境提供自动故障转移。

在云中应用升级可能会非常棘手,有不同的方法可以做到这一点。例如,使用共享NFS安装与代码库,git部署或您已经启动的方式:为每次升级创建新的AMI,然后替换服务器。有很多选择,它们都有其优点和缺点。

据我了解你的用例,云目前可能不是正确的选择。

通常在云中托管小型企业比使用单个服务器要昂贵得多。如果您在晚上需要20台服务器,而在当天剩下的时间内只需要2台或3台服务器,您只会省钱。当然还有很多要考虑的问题,但这样做会很多。

答案 1 :(得分:1)

ec2中的自动缩放是水平缩放。这意味着在您的基础架构扩展时添加实例。这与垂直缩放相比,单个实例的资源更多。

为了有效地使用它,每个实例都不能存储其他实例可能需要的数据。最常见的要求是需要在自动实例之外的自己的实例上存在的数据库。您可以使用RDS。

Wordpress还在wordpress安装中的wp-content文件夹中存储文件上传,插件和主题。默认情况下,如果您上传文件,它将存储在一个实例上,但不会存储在任何其他实例上。您可以将所有内容存储在其中一个实例共享的NFS卷上,或者您可以尝试这样的插件:http://wordpress.org/plugins/wp2cloud-wordpress-to-cloud/