AWS OpsWorks与AWS Beanstalk对比AWS CloudFormation?

ipe*_*sus 82 ruby-on-rails amazon-web-services aws-cloudformation aws-opsworks amazon-elastic-beanstalk

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

我感兴趣的是一个可以自动调整以处理任何大量同时Web请求的系统(从每分钟1000个请求到1000万个rpm),包括一个可以自动扩展的数据库层.

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

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

提前致谢.

Rya*_*man 66

我想知道使用AWS OpsWorks与AWS Beanstalk和AWS CLoudFormation有什么优缺点?

答案是:这取决于.

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

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

对于我的项目,我同时使用它们.我使用CloudFormation来构建我用于我的应用程序的自定义配置的VPC环境,S3存储桶和DynamoDB表.然后,我在自定义VPC内部启动Elastic Beanstalk环境,该环境知道如何与S3/DynamoDB资源通信.

我感兴趣的是一个可以自动调整以处理任何大量同时Web请求的系统(从每分钟1000个请求到1000万个rpm),包括一个可以自动扩展的数据库层.

在引擎盖下,OpsWorks和Elastic Beanstalk使用EC2 + CloudWatch + Auto Scaling,它能够处理您正在谈论的负载.RDS为可扩展的基于SQL的数据库提供支持.

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

根据" 某些硬件资源"的含义,您始终可以在OpsWorks或Elastic Beanstalk环境中启动独立的EC2实例.目前,Elastic Beanstalk支持每个环境一个webapp.我不记得OpsWorks支持的内容.

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

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

  • OpsWorks也处理git部署,尽管方式不同.在使用CLI从repo推送ElasticBeanstalk git部署的情况下,OpsWorks使用SSH(或HTTPS,如果是公共存储库)对repo进行只读访问. (3认同)

Vie*_*van 21

OpsWorks是一个像Chef这样的编排工具 - 事实上,它来自Chef-Puppet,Ansible或Saltstalk.您可以使用Opsworks通过指定希望每个资源(服务器实例,应用程序,存储)所在的状态来指定您希望网络所处的状态.并指定希望每个资源所在的状态.为该状态的每个属性指定所需的值.例如,您可能希望Apache服务始终启动并运行,并在启动时启动,Apache作为用户,Apache作为Linux组.

CloudFormation是一个json模板(**),它指定您要部署的资源的状态,即您希望在us-east-1中部署AWS EC2微型t2实例,作为VPC 192.168.1.0/24的一部分.对于EC2实例,您可以通过EC2资源的用户数据部分中的自定义bash脚本指定应在该资源上运行的内容.CloudFormation只是一个模板.只有当您通过适用于CloudFormation的AWS管理控制台运行模板或运行用于Cloudformation的aws cli命令(即aws cloudformation)时,模板才会成为运行资源.

ElasticBeanstalk是一个PAAS-您可以上传特定的Ruby/Rails,node.js或Python/django或Python/Flask应用程序.如果你正在运行Scala,Haskell或其他任何东西,请为它创建一个Docker镜像,并将该Docker镜像上传到Elastic Beanstalk(*).

您可以通过运行适用于CloudFormation的aws cli或者为Opsworks创建配方,将应用程序上传到Elastic Beanstalk,从而将应用程序上传到Elastic Beanstalk.您还可以通过Opsworks运行用于Cloudformation的aws cli.

(*)事实上,AWS关于其Ruby应用程序示例的文档非常糟糕,以至于我失去了耐心并将示例应用程序嵌入到Docker镜像中并将Docker镜像上传到Elastic Beanstalk中.

(**)截至2016年9月,Cloudformation还支持YAML模板.


Adi*_*iii 16

CloudFormation: AWS CloudFormation是一项服务,可帮助您建模和设置Amazon Web Services资源,以便您可以花更少的时间管理这些资源,并将更多时间专注于在AWS.it使用模板中运行的应用程序.模板描述资源你想要的和他们的设置. 在此输入图像描述

Elastic Beanstalk

借助Elastic Beanstalk,您可以在AWS云中快速部署和管理应用程序,而无需担心运行这些应用程序的基础架构.在这方面,它类似于CloudFormation.事实上,它实际上使用CloudFormation模板和脚本来...

  • 创建负载均衡器和Auto Scaling组.
  • 将代码复制到S3.
  • 引导EC2实例从S3下载代码并进行部署.

OpsWorks

OpsWorks使您能够自动执行管理操作,以便自动可靠地执行这些操作.您可以受益于自动故障转移,包管理,EBS卷RAID设置以及基于规则或基于时间的自动扩展.

现在有些大局

在此输入图像描述 在此输入图像描述 在此输入图像描述


Imr*_*med 8

在Opsworks中,您可以跨堆栈共享层的"角色",以通过组合底层实例可能执行的特定作业来使用更少的资源.

层兼容性列表(只要正确设置了安全组):

HA Proxy : custom, db-master, and memcached.
MySQL :  custom, lb, memcached, monitoring-master, nodejs-app, php-app, rails-app, and web.
Java : custom, db-master, and memcached.
Node.js : custom, db-master, memcached, and monitoring-master
PHP : custom, db-master, memcached, monitoring-master, and rails-app.
Rails :  custom, db-master, memcached, monitoring-master, php-app.
Static :  custom, db-master, memcached.
Custom : custom, db-master, lb, memcached, monitoring-master, nodejs-app, php-app, rails-app, and web 
Ganglia :  custom, db-master, memcached, php-app, rails-app. 
Memcached :  custom, db-master, lb, monitoring-master, nodejs-app, php-app, rails-app, and web. 
Run Code Online (Sandbox Code Playgroud)

参考:http://docs.aws.amazon.com/opsworks/latest/userguide/layers.html


小智 7

AWS Beanstalk: 它是在AWS云中部署和管理应用程序,而不必担心使用Elastic Beanstalk运行Web应用程序的基础架构.无需担心EC2或其他安装.

AWS OpsWorks AWS OpsWorks只是一种应用程序管理服务,可让新DevOps用户轻松建模和管理整个应用程序

  • 我认为这个答案不准确。事实恰恰相反。虽然 Elastic Beanstalk 只是一个 PaaS,但对于 OpsWorks,您有责任使用适当的组件创建堆栈。“对于新的 DevOps”定义将适用于 EB 用户,而不是 OpsWorks。 (2认同)