问题描述
我想知道使用AWS OpsWorks与AWS Beanstalk和AWS CloudFormation的优缺点是什么?
I would like to know what are the advantages and disadvantages of using AWS OpsWorks vs AWS Beanstalk and AWS CloudFormation?
我对可以自动运行的系统感兴趣可以处理大量同时发生的Web请求(从每分钟1000个请求到1000万转/分钟),包括可以自动伸缩的数据库层。
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.
理想情况下,我想有效地共享一些硬件资源,而不是为每个应用程序单独设置实例。过去,我主要使用EC2实例+ RDS + Cloudfront + S3
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
堆栈系统将在我们从Heroku迁移的Rails应用程序上托管一些高流量的红宝石,还有一些python / django应用程序和一些PHP应用程序。
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和AWS Beanstalk是(据告诉)完全不同的管理您的方法基础架构,具体取决于您的想法。
AWS OpsWorks and AWS Beanstalk are (I've been told) simply different ways of managing your infrastructure, depending on how you think about it. CloudFormation is simply a way of templatizing your infrastructure.
个人而言,我对Elastic Beanstalk更为熟悉,但每个人都有自己的名字。我更喜欢它,因为它可以通过Git进行部署。公开信息显示,Elastic Beanstalk在后台使用CloudFormation来启动其环境。
Personally, I'm more familiar with Elastic Beanstalk, but to each their own. I prefer it because it can do deployments via Git. It is public information that Elastic Beanstalk uses CloudFormation under the hood to launch its environments.
对于我的项目,我将两者同时使用。我使用CloudFormation来构建用于我的应用程序的自定义配置的VPC环境,S3存储桶和DynamoDB表。然后,我在自定义VPC内部启动了一个Elastic Beanstalk环境,该环境知道如何与S3 / DynamoDB资源对话。
For my projects, I use both in tandem. I use CloudFormation to construct a custom-configured VPC environment, S3 buckets and DynamoDB tables that I use for my app. Then I launch an Elastic Beanstalk environment inside of the custom VPC which knows how to speak to the S3/DynamoDB resources.
在后台,OpsWorks和Elastic Beanstalk使用EC2 + CloudWatch + Auto Scaling,它能够处理您正在谈论的负载。 RDS支持基于可伸缩SQL的数据库。
Under the hood, OpsWorks and Elastic Beanstalk use EC2 + CloudWatch + Auto Scaling, which is capable of handling the loads you're talking about. RDS provides support for scalable SQL-based databases.
取决于您所说的 some 硬件资源,您始终可以与OpsWorks或Elastic Beanstalk环境一起启动独立的EC2实例。当前,Elastic Beanstalk每个环境支持一个webapp。我不记得OpsWorks支持什么。
Depending on what you mean by "some hardware resources", you can always launch standalone EC2 instances alongside OpsWorks or Elastic Beanstalk environments. At present, Elastic Beanstalk supports one webapp per environment. I don't recall what OpsWorks supports.
AWS完全支持所有这些功能。 OpsWorks和Elastic Beanstalk已针对一系列开发环境进行了优化(Ruby,Python和PHP都在列表中),而EC2提供了原始服务器,您可以在其中安装任何所需的软件。
All of this is fully supported by AWS. OpsWorks and Elastic Beanstalk have optimized themselves for an array of development environments (Ruby, Python and PHP are all on the list), while EC2 provides raw servers where you can install anything you'd like.
这篇关于AWS OpsWorks与AWS Beanstalk与AWS CloudFormation?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!