我想知道使用AWS OpsWorks与AWS Beanstalk和AWS CloudFormation的优缺点是什么?
我感兴趣的是一个可以自动伸缩的系统,它可以处理任意数量的并发web请求(从每分钟1000个请求到1000万rpm),包括一个可以自动伸缩的数据库层。
理想情况下,我希望有效地共享一些硬件资源,而不是为每个应用程序提供单独的实例。在过去,我主要使用EC2实例RDS Cloudtop S3
堆栈系统将托管一些我们正在从Heroku迁移的高流量ruby on rails应用程序,还有一些python/django应用程序和一些PHP应用程序。
提前感谢。
AWS Beanstalk:它可以在AWS云中部署和管理应用程序,而不用担心使用弹性Beanstalk运行web应用程序的基础设施。无需担心EC2或其他安装。
AWS OpsWorks AWS OpsWorks只不过是一个应用程序管理服务,它使新的DevOps用户能够轻松建模
OpsWorks是一个像Chef一样的编曲工具——事实上,它源自Chef-Puppet、Ansible或Saltstape。通过指定每个资源(服务器实例、应用程序、存储)所处的状态,可以使用Opsworks指定网络所处的状态。通过为每个状态的属性指定所需的值,可以指定每个资源所处的状态。例如,您可能希望Apache服务始终处于启动和运行状态,并在启动时以Apache作为用户,以Apache作为Linux组。
CloudFormation是一个json模板(**),它指定了您要部署的资源的状态,即您要在us-east-1中部署一个AWS EC2 micro t2实例作为VPC 192.168的一部分。1.0/24. 对于EC2实例,您可以通过EC2资源的用户数据部分中的自定义bash脚本指定应该在该资源上运行的内容。云形成只是一个模板。仅当您通过AWS管理控制台为CloudFormation运行模板,或运行AWS cli命令为CloudFormation(即AWS CloudFormation)运行模板时,该模板才会作为一个运行资源得到充实。。。
你可以上传特别是Ruby/Rails,node.js或Python/django或Python/Flask应用程序。如果您正在运行Scala、Haskell或其他任何东西,请为其创建Docker映像,并将该Docker映像上传到弹性豆茎(*)。
您可以通过运行aws cli for CloudFormation将应用程序上载到Elastic Beanstalk,也可以创建Opsworks将应用程序上载到Elastic Beanstalk的方法。您还可以通过Opsworks为Cloudformation运行aws cli。
(*)事实上,AWS在Ruby应用程序示例上的留档很差,以至于我失去了耐心,将示例应用程序嵌入到Docker图像中,并将Docker图像上传到弹性豆茎中。
(**)截至2016年9月,云形成还支持YAML模板。
我想知道使用AWS OpsWorks vs AWS Beanstrok和AWS CLoud形成的优点和缺点是什么?
答案是:视情况而定。
据我所知,AWS OpsWorks和AWS Beanstalk管理基础设施的方式完全不同,具体取决于您对基础设施的看法。CloudFormation只是一种模板化基础架构的方法。
就我个人而言,我更熟悉弹性豆茎,但每个都有自己的特点。我更喜欢它,因为它可以通过Git进行部署。据公开信息,Elastic Beanstalk在引擎盖下使用云形成来启动其环境。
对于我的项目,我同时使用这两种方法。我使用CloudFormation构建了一个自定义配置的VPC环境、S3存储桶和用于我的应用程序的DynamoDB表。然后,我在定制VPC内部启动了一个弹性Beanstalk环境,它知道如何与S3/DynamoDB资源对话。
我感兴趣的是一个可以自动伸缩的系统,它可以处理任意数量的并发web请求(从每分钟1000个请求到1000万rpm),包括一个可以自动伸缩的数据库层。
在引擎盖下,OpsWorks和Elastic Beanstalk使用EC2 CloudWatch Auto Scaling,它能够处理您正在谈论的负载。RDS支持可扩展的基于SQL的数据库。
理想情况下,我希望有效地共享一些硬件资源,而不是为每个应用程序提供单独的实例。在过去,我主要使用EC2实例RDS Cloudtop S3
根据您所说的“一些硬件资源”,您始终可以在OpsWorks或Elastic Beanstalk环境旁边启动独立的EC2实例。目前,Elastic Beanstalk支持每个环境一个webapp。我不记得OpsWorks支持什么。
堆栈系统将托管一些我们正在从Heroku迁移的高流量ruby on rails应用程序,还有一些python/django应用程序和一些PHP应用程序。
所有这些都是由AWS完全支持的。OpsWorks和弹性豆茎已经针对一系列开发环境进行了优化(Ruby、Python和PHP都在列表中),而EC2提供了原始服务器,您可以在其中安装任何您想要的东西。