ruby-on-rails – AWS OpsWorks与AWS Beanstalk和AWS CloudFormation?

我想知道使用AWS OpsWorks与AWS Beanstalk和AWS CloudFormation的优点和缺点是什么?

我感兴趣的系统可以自动缩放以处理任何大量的并发Web请求(从每分钟1000个请求到1000万转),包括一个可以自动扩展的数据库层。

而不是为每个应用程序单独的实例,理想情况下,我想要有效地共享一些硬件资源。在过去,我大多使用一个EC2实例RDS Cloudfront S3

堆栈系统将托管一些高流量ruby在rails应用程序,我们正在从Heroku,还有一些python / django应用程序和一些PHP应用程序迁移。

提前致谢。

最佳答案

I would like to know what are the advantages and disadvantages of using AWS OpsWorks vs AWS Beanstalk and AWS CLoudFormation?

答案是:它取决于。

AWS OpsWorks和AWS Beanstalk(我已经被告知)根据你的想法,只是不同的管理你的基础设施的方式。 CloudFormation只是一种模板化您的基础架构的方式。

就个人而言,我比较熟悉Elastic Beanstalk,而是对每个自己。我喜欢它,因为它可以通过Git进行部署。它是公开的信息,Elastic Beanstalk使用CloudFormation来启动其环境。

对于我的项目,我同时使用两者。我使用CloudFormation构建一个自定义配置的VPC环境,S3桶和DynamoDB表,我用于我的应用程序。然后我在自定义VPC内部启动一个Elastic Beanstalk环境,它知道如何对S3 / DynamoDB资源说话。

I am interested in a system that can be auto scaled to handle any high number of simultaneous web requests (From 1000 requests per minute to 10 million rpm.), including a database layer that can be auto scalable as well.

在底层,OpsWorks和Elastic Beanstalk使用EC2 CloudWatch Auto Scaling,它能够处理你正在谈论的负载。 RDS为可扩展的基于SQL的数据库提供支持。

Instead of having a separate instance for each app, Ideally I would like to share some hardware resources efficiently. In the past I have used mostly an EC2 instance + RDS + Cloudfront + S3

根据“某些硬件资源”的含义,您可以随OpsWorks或Elastic Beanstalk环境一起启动独立的EC2实例。目前,Elastic Beanstalk每个环境支持一个webapp。我不记得OpsWorks支持什么。

The stack system will host some high traffic ruby on rails apps that we are migrating from Heroku, also some python/django apps and some PHP apps as well.

所有这些都由AWS完全支持。 OpsWorks和Elastic Beanstalk针对一系列开发环境(Ruby,Python和PHP都在列表中)进行了优化,而EC2提供了原始服务器,您可以在其中安装任何您想要的东西。

转载注明原文:ruby-on-rails – AWS OpsWorks与AWS Beanstalk和AWS CloudFormation? - 代码日志