用于多个PHP,NoSQL(DynamoDB)Web应用程序的Amazon AWS服务

我正在开始向我公司的amazon web services(AWS)进行分析,我正在寻找一些build议,教程和/或其他任何东西来帮助我们进行新的设置。

我们主持了很多(约600)房地产网站。 我们有一大堆有代理站点的代理,但是我们也有一些独立的站点,还有一些其他的站点。 我们以前通过Codero在一个专用的服务器上托pipe,但是我们遇到了很多问题,所以我们正在过渡到我们希望更容易,更便宜的方式(input:AWS)。

我们新的RETS feed将通过RetsCloud(我们已经build立),并且将它连接到AWS DynamoDB的一个实例。

我开始陷入困境的地方是所有其他事情“应该”设置的地方。 看来,我想要做的是设置EC2运行Apache(或nginx)和PHP,然后CloudFront提供分配,S3提供图片(通过RETS有很多照片 – 这已经设置)。 呼。

我想在我的脑海中,我只是没有看到这个设置需要那么复杂,所以有一个更简单的方法来做到这一点? 或者,基本上只是如果我select使用AWS,我会被卡住这样设置。

在过渡期间,我们使用了一些共享的虚拟主机(name.com和bluehost.com),但是我们似乎只有less数几个站点被切断(I / O限制)(现在在一个帐户上有10个左右)通常“慢慢地”(据我的老板说)全天)。

任何意见是极大的赞赏。 另外,如果我正在接近这个“错误”的方式,或者如果有更好的方法(或者你只是想把我打倒在脑袋上),请告诉我!

Q1

那么有没有更简单的方法来做到这一点? 使用AWS构build您的网站有很多方法。 托pipe一个静态网站最简单的方法是使用S3。

如果你需要一个Web服务器,那么你可以运行服务器端代码(例如,你需要运行PHP),你需要使用EC2。 AWS现在没有“PHP即服务”。 最简单的设置将在您select的操作系统中启动一个EC2实例,并从那里托pipe该网站。 这不是最优化的解决scheme,不应该是您生产设置的最终目标。

Q2

EC2是为了这个目的而矫枉过正? (即是否有一个“更好”和更less的时间这样做呢?)。

如果你想运行PHP EC2并不过分。 如果有一个“PHP即服务”,这将是不那么费时,但目前不适用于AWS。

Q3

后续的问题是:如果EC2是一个体面的做法,是否通过AWS做到“正确”? (即,除了亚马逊指南,我会从哪里开始?) –

如果您有兴趣build立一个可以扩展的网站,并自动处理大量stream量,那么您需要遵循一些最佳做法。 这里是我如何设置一个堆栈来处理这样的需求的例子。

  • EC2自动configuration类似Puppet的东西作为一个Web服务器(Nginx + PHP)
  • EC2坐在自动缩放组(在启动木偶configuration机器,他们得到最新的代码)
  • ELB来处理EC2的负载平衡
  • 针对关系数据库需求的RDS
  • 上传发送到S3存储桶,以便所有EC2都可以访问它们
  • CloudFront适用于所有静态文件(js,css,imgs)

延伸

你可以进一步采取Varnish或者Memcached / elasticache设置,CloudFormation。

降低成本

您可以通过使用预留实例和/或针对您的一部分基础架构(即拥有一组核心的按需实例并使用实例实例组进行补充)来查看实例实例,从而降低成本。

更多信息

这里有一些出发点:

没有捷径吗?

有一些服务可以为你做一些繁重的工作。 这种东西仍然使用了我刚刚谈到的很多东西,AWS只是试着通过他们的控制台为你自动化。

elasticbeanstalk

http://aws.amazon.com/elasticbeanstalk/

AWS Elastic Beanstalk是您在AWS云中快速部署和pipe理应用程序的更简单方法。 您只需上传应用程序,Elastic Beanstalk将自动处理容量configuration,负载平衡,自动扩展和应用程序运行状况监视的部署详细信息。

OpsWorks

http://aws.amazon.com/opsworks/

AWS OpsWorks是一个DevOps解决scheme,用于pipe理AWS云上的任何规模或复杂性的应用程序。 AWS OpsWorks具有pipe理整个应用程序生命周期的集成体验,包括资源调配,configurationpipe理,应用程序部署,软件更新,监控和访问控制。

你的设置对我来说看起来不错,但不是太复杂。 EC2并不过分,这是在AWS中拥有Web服务器的方法。 为了最大限度地降低成本,您需要学习和实验预留,点播,竞价实例。