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

我对可以自动缩放以处理大量同时Web请求(从每分钟1000个请求到1000万rpm)的系统感兴趣,包括一个可以自动缩放的数据库层。

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

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

提前致谢。

最佳答案



答案是:这取决于。

AWS OpsWorks和AWS Beanstalk(据悉)只是管理基础架构的不同方法,具体取决于您的想法。 CloudFormation只是模板化基础架构的一种方式。

就我个人而言,我对Elastic Beanstalk更为熟悉,但每个人都有。我更喜欢它,因为它可以通过Git进行部署。 Elastic Beanstalk在后台使用CloudFormation来启动其环境是公共(public)信息。

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



在后台,OpsWorks和Elastic Beanstalk使用EC2 + CloudWatch + Auto Scaling,它能够处理您正在谈论的负载。 RDS支持基于可伸缩SQL的数据库。



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



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

关于ruby-on-rails - AWS OpsWorks与AWS Beanstalk与AWS CloudFormation?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/21310125/

10-11 22:31
查看更多