我对amazon web services相对来说比较陌生,我正试图让我的脑海里围绕着我的wordpress安装程序来进行Elastic Load Balancing的工作。 另外,我想就拟议的基础设施提供一些build议。
我最初提出的基础设施如下:
EC2我目前的EC2(t1.micro)正在运行LAMP堆栈,并configuration为运行wordpress。
我想负载平衡这与一个m1.small实例,运行t1.micro实例的克隆。
目前我对未知的情况如下:
这可能是一个非常愚蠢的问题,但我认为有些问题是不相关的,因为基础设施是引用一个数据库。
最后,有没有更好的方法来设置负载平衡的基础设施? 即我应该考虑使用Amazon S3来存储我的所有文件,并使用Cloudfront作为CDN,以确保高效运行并解决任何EBS文件复制问题。
任何帮助不胜感激。
劳埃德
无状态的Web应用程序很难。
如你所知,wordpress非常依赖写入磁盘的东西。 这是build议的基础设施
现在困难的部分。
让我们暂时忘记代码库的更新,让我们看看如何使整个事情变得无状态。 你应该做下面的事情来使这个东西横向扩展:
这照顾了设置
如何部署新的更改
您将使用您的微型实例所有未来的更改到wordpress安装。 这包括像更新wordpress,更新你的主题文件和几乎所有存储在磁盘上的东西。
您将需要创build两个脚本:
第一个将用于将更改部署到自动调节组。 它应该做到以下几点:
第二个脚本将位于自动扩展组的实例上,并由第一个脚本触发,并在第一次初始化实例时运行。 它应该做到以下几点:
每次更改系统文件时,都应该运行上面的部署脚本。 这会将更改传播到所有生产实例。
现在为生产实例创build一个基本的AMI。 它应该是非常非常相似的微型实例,但wordpress实际上不应该被安装。 您将使用启动时传递到ec2实例的userdata来运行上面的第二个脚本,以便从微型实例下载最新版本的代码库。
最后一件事…如果您正在运行任何forms的电子商务,您将需要在负载平衡器上安装SSL证书。 看看这里的指南: http : //www.nczonline.net/blog/2012/08/15/setting-up-ssl-on-an-amazon-elastic-load-balancer/