67

我想知道使用AWS OpsWorks vs AWS Beanstalk和AWS CloudFormation有哪些優缺點?AWS OpsWorks vs AWS Beanstalk vs AWS CloudFormation?

我對能夠自動擴展以處理任何大量同步Web請求(從每分鐘1000個請求到1000萬rpm)的系統感興趣,包括可以自動擴展的數據庫層。

而不是每個應用程序都有一個單獨的實例,理想情況下,我想分享一些有效的硬件資源。在過去,我主要使用了一個EC2實例+ RDS + Cloudfront + S3

堆棧系統將託管我們從Heroku遷移的一些高流量ruby應用,也包括一些python/django應用和一些PHP應用好。

在此先感謝。

+1

這個問題有點題外話了#1,但可能不適合以及對ServerFault要麼...我提議一個像這樣的問題的新網站,如果你同意遵循! http://area51.stackexchange.com/proposals/82757/cloud-computing-platforms –

回答

52

我想知道使用AWS OpsWorks vs 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或彈性魔豆環境獨立EC2實例。目前,Elastic Beanstalk支持每個環境一個Web應用程序。我不記得OpsWorks支持什麼。

堆棧系統將舉辦,我們是從Heroku的遷移Rails應用,也有一些蟒蛇/ Django的應用程序的一些人流量大的紅寶石和一些PHP應用程序,以及。

所有這些都得到AWS的全面支持。對於一系列開發環境(Ruby,Python和PHP都在列表中),OpsWorks和Elastic Beanstalk擁有優化,而EC2則提供原始服務器,您可以在其中安裝任何您想要的內容。

+3

OpsWorks也可以處理git部署,儘管有所不同。在使用CLI將ElasticBeanstalk git部署從回購庫推入的情況下,OpsWorks使用SSH(或公共回購的HTTPS)對只讀存儲庫執行只讀訪問。 –

7

在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. 

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

7

AWS魔豆: 這是部署和管理應用程序在AWS雲中,而無需擔心關於使用Elastic Beanstalk運行Web應用程序的基礎架構。 無需擔心EC2或其他安裝。

AWS OpsWorks AWS OpsWorks不過是一種應用程序管理服務,很容易讓新的DevOps用戶建模&管理整個他們的應用程序

+0

我覺得這個答案是不準確的。事實是相反的。雖然Elastic Beanstalk只是一個PaaS,但使用OpsWorks,您可以使用適當的組件來創建堆棧。 '對於新的DevOps'定義將適用於EB用戶,而不是OpsWorks'。 – scaryguy

12

OpsWorks是一個業務流程的工具,像廚師 - 事實上,它來源於廚師 - Puppet,Ansible或Saltstalk。您可以使用Opsworks通過指定您希望每個資源的狀態(服務器實例,應用程序和存儲)來指定希望網絡進入的狀態,並指定您希望每個資源所處的狀態通過爲狀態的每個屬性指定所需的值來進入資源。例如,你可能希望apache服務始終運行,並且top始終以apache作爲用戶,apache作爲Linux組啓動。

CloudFormation是一個json模板(**),用於指定您想要部署的資源的狀態,即您想在us-east-1中部署AWS EC2 micro t2實例作爲VPC 192.168的一部分.1.0/24。對於EC2實例,您可以通過EC2資源的用戶數據部分中的自定義bash腳本指定應該在該資源上運行的內容。 CloudFormation只是一個模板。僅當您通過AWS管理控制檯for CloudFormation運行它時,或者運行aws cli命令for Cloudformation即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模板。

2

AWS CloudFormation - 創建和更新您的環境。

AWS Opsworks - 管理你的系統內部的環境,比如我們做廚師或木偶

AWS魔豆 - 創建,管理和部署。

但是我個人喜歡CloudFormation和OpsWorks,它們都是通過使用其全部功能來滿足他們的需求。

使用CloudFormation創建您的環境,然後您可以從雲形成腳本調用Opsworks來啓動您的機器。然後您將擁有Opsworks堆棧來管理它。例如通過使用Opsworks在Linux中添加一個用戶,或使用廚師食譜來修改你的盒子。你也可以寫下部署的廚師食譜。否則,您可以使用CodeDeploy專門構建用於部署。

0

AWS OpsWorks - 這是AWS管理服務的一部分。它有助於使用腳本配置應用程序。它使用Chef作爲此應用程序管理和操作的devops框架。 有可用於配置服務器,數據庫,存儲的模板。模板也可以被定製以執行任何其他任務。 DevOps工程師可以控制應用程序的依賴性和基礎架構。

AWS Beanstalk - 它提供Java,Node Js,Python,Ruby Go等語言的環境。 Elastic Bean stalk提供運行應用程序的資源。開發人員不必擔心基礎架構,並且他們無法控制基礎架構。

AWS CloudFormation - CloudFormation具有用於按順序管理AWS資源的樣本模板。

0

正如其他許多人評論AWS Beanstalk一樣,AWS OpsWorks和AWS Cloud Formation爲不同問題提供了不同的解決方案。

爲了與

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. 

到acomplish並考慮到你是在遷移過程中,我強烈建議你開始考慮看看AWS拉姆達& AWS DynamoDB溶液(或混合型的)。

這兩個都是專爲汽車縮放在一個簡單的方法,可能是一個非常便宜的解決方案。

6

CloudFormation: AWS CloudFormation是一項服務,可以幫助您建模和設置Amazon Web Services資源,以便您可以減少管理這些資源的時間,並將更多時間專注於在AWS中運行的應用程序。 ,模板描述了您需要的資源及其設置。 enter image description here

彈性魔豆

隨着彈性魔豆,你可以快速部署,並無需擔心運行這些應用程序的基礎架構管理的AWS雲應用。在這方面,它與CloudFormation類似。事實上,它實際上使用CloudFormation模板和腳本來...

  • 創建負載平衡器和Auto Scaling組。
  • 將代碼複製到S3。
  • 引導一個EC2實例從S3下載代碼並進行部署。

OpsWorks

OpsWorks能夠使它們自動且可靠地執行你的自動化管理操作。您可以受益於自動故障轉移,軟件包管理,EBS卷RAID設置以及基於規則或基於時間的自動縮放。

現在一些大的圖片

enter image description here enter image description here enter image description here