web-dev-qa-db-ja.com

AWS OpsWorks vs AWS Beanstalk vs AWS CloudFormation?

AWS OpsWorks対AWS BeanstalkおよびAWS CloudFormationを使用する利点と欠点は何ですか?

多数の同時Webリクエスト(毎分1000リクエストから1,000万rpmまで)を処理するように自動スケーリングできるシステムに興味があります。これには、自動スケーラブルなデータベースレイヤーも含まれます。

アプリごとに個別のインスタンスを用意する代わりに、理想的にはいくつかのハードウェアリソースを効率的に共有したいと思います。以前は、主にEC2インスタンス+ RDS + Cloudfront + S3を使用していました

スタックシステムは、いくつかの高トラフィックをホストしますRuby on Rails Herokuから移行しているアプリ、Python/Djangoアプリ、およびPHPアプリも。

前もって感謝します。

80
ipegasus

AWS OpsWorks対AWS BeanstalkおよびAWS CLoudFormationを使用する利点と欠点は何ですか?

答えは次のとおりです。

AWS OpsWorksとAWS Beanstalkは、インフラストラクチャをどのように考えるかによって、インフラストラクチャを管理する方法が異なる(と言われています)。 CloudFormationは、単にインフラストラクチャをテンプレート化する方法です。

個人的に、私はElastic Beanstalkに精通していますが、それぞれに精通しています。 Gitを介して展開できるので、私はそれを好みます。 Elastic Beanstalkが内部でCloudFormationを使用して環境を起動することは公開情報です。

私のプロジェクトでは、両方を同時に使用します。 CloudFormationを使用して、アプリに使用するカスタム構成のVPC環境、S3バケット、およびDynamoDBテーブルを構築します。次に、S3/DynamoDBリソースと通信する方法を知っているカスタムVPC内でElastic Beanstalk環境を起動します。

多数の同時Webリクエスト(毎分1000リクエストから1,000万rpmまで)を処理するように自動スケーリングできるシステムに興味があります。これには、自動スケーラブルなデータベースレイヤーも含まれます。

内部では、OpsWorksとElastic BeanstalkはEC2 + CloudWatch + Auto Scalingを使用します。これにより、話している負荷を処理できます。 RDSは、スケーラブルなSQLベースのデータベースのサポートを提供します。

アプリごとに個別のインスタンスを用意する代わりに、理想的にはいくつかのハードウェアリソースを効率的に共有したいと思います。以前は、主にEC2インスタンス+ RDS + Cloudfront + S3を使用していました

someハードウェアリソース」の意味に応じて、OpsWorksまたはElastic Beanstalk環境と一緒にいつでもスタンドアロンEC2インスタンスを起動できます。現在、Elastic Beanstalkは環境ごとに1つのwebappをサポートしています。 OpsWorksがサポートするものを思い出せません。

スタックシステムは、いくつかの高トラフィックをホストしますRuby on Rails Herokuから移行しているアプリ、Python/Djangoアプリ、およびPHPアプリも。

これらはすべてAWSによって完全にサポートされています。 OpsWorksおよびElastic Beanstalkには、開発環境の配列に対して最適化があります(Ruby、PythonおよびPHPはすべてリストにあります) 、EC2は必要なものをインストールできるrawサーバーを提供します。

64
Ryan Parman

OpsWorksはChefのようなオーケストレーションツールです。実際、Puppet、Ansible、SaltstalkなどのChefから派生しています。 Opsworksを使用して、各リソース(サーバーインスタンス、アプリケーション、ストレージ)の状態を指定することにより、ネットワークの状態を指定します。また、各リソースの状態を指定します。その状態の各属性に必要な値を指定します。たとえば、Apacheサービスを常に起動して実行し、起動時にApacheをユーザーとして、ApacheをLinuxグループとして起動したい場合があります。

CloudFormationは、デプロイするリソースの状態を指定するJSONテンプレート(**)です。つまり、VPC 192.168.1.0/24の一部としてus-east-1にAWS EC2 micro t2インスタンスをデプロイします。 。 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テンプレートもサポートしています。

19
Vietnhi Phuvan

CloudFormation:AWS CloudFormationは、Amazon Web Servicesリソースのモデリングとセットアップを支援するサービスであり、これらのリソースの管理に費やす時間を減らし、より多くの時間を費やすことができますAWS.itで実行されるアプリケーションに焦点を当て、テンプレートを使用します。templateは、必要なリソースとその設定を説明します。 enter image description here

Elastic Beanstalk

Elastic Beanstalkを使用すると、アプリケーションを実行するインフラストラクチャを心配することなく、AWSクラウドでアプリケーションを迅速にデプロイおよび管理できます。この点で、CloudFormationに似ています。実際、CloudFormationのテンプレートとスクリプトを使用して…

  • ロードバランサーとAuto Scalingグループを作成します。
  • コードをS3にコピーします。
  • EC2インスタンスをブートストラップして、S3からコードをダウンロードしてデプロイします。

OpsWorks

OpsWorksを使用すると、管理アクションを自動化して、自動的かつ確実に実行することができます。自動フェールオーバー、パッケージ管理、EBSボリュームRAIDセットアップ、ルールベースまたは時間ベースの自動スケーリングのメリットを享受できます。

今、いくつかの全体像

enter image description hereenter image description hereenter image description here

15
Adiii

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

8
Imran Ahmed

AWS Beanstalk: Elastic BeanstalkでWebアプリケーションを実行するインフラストラクチャを心配することなく、AWSクラウドでアプリケーションをデプロイおよび管理します。 EC2やその他のインストールについて心配する必要はありません。

AWS OpsWorks AWS OpsWorksは、新しいDevOpsユーザーがアプリケーション全体を簡単にモデリングおよび管理できるようにするアプリケーション管理サービスに他なりません

7
Yogesh Funde

AWS CloudFormation-環境を作成および更新します。

AWS Opsworks-ChefまたはPuppetで行うように、その環境内でシステムを管理します

AWS Beanstalk-作成、管理、デプロイ。

しかし、個人的には、CloudFormationとOpsWorksの両方が、それらが意味するものにフルパワーを使用することで気に入っています。

CloudFormationを使用して環境を作成し、クラウド形成スクリプトからOpsworksを呼び出してマシンを起動できます。次に、Opsworksスタックを使用して管理します。たとえば、Opsworksを使用してLinuxボックスにユーザーを追加したり、シェフレシピを使用してボックスにパッチを適用したりします。シェフレシピを書き留めて展開することもできます。それ以外の場合は、CodeDeployを使用して展開用に特別にビルドできます。

3
Gladiator

AWS OpsWorks-これはAWS管理サービスの一部です。スクリプトを使用してアプリケーションを構成するのに役立ちます。このアプリケーションの管理と操作のためのdevopsフレームワークとしてChefを使用します。サーバー、データベース、ストレージの構成に使用できるテンプレートがあります。テンプレートをカスタマイズして、他のタスクを実行することもできます。 DevOpsエンジニアは、アプリケーションの依存関係とインフラストラクチャを制御できます。

AWS Beanstalk-Javaなどの言語の環境を提供します。Node Js、Python、Ruby Go。Elastic Bean stalkは、開発者はインフラストラクチャを心配せず、インフラストラクチャを制御できません。

AWS CloudFormation-CloudFormationには、AWSリソースを順番に管理するためのサンプルテンプレートがあります。

2
Sanjeev Singh

他の多くの人が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.

また、移行プロセスにいることを考慮して、AWS LambdaおよびAWS DynamoDBソリューション(またはハイブリッドソリューション)を確認することを強くお勧めします。

両方ともautoを簡単な方法でスケーリングするために設計されており、非常に安価なソリューションになる可能性があります。

0
siomes