
私はPuppet Enterpriseを使用してAmazon Web Servicesにサーバー/サービスのセットをデプロイすることを考えています。私が知る限り、これを行う最良の方法はクラウドフォーメーション。
私が読んだところによると、CloudFormationはサービスの設定/作成方法を定義します。一方、Puppetを使用して設定しますそしてサーバー/サービスの構成を維持します。
そこで2つの質問です:
- Puppet を使用して Elastic Beanstalk を作成できますか?
- Elastic Beanstalk を維持することは可能ですか? また、これはどのように機能しますか?
背景
私の組織では、既存の Web アプリ/サービスを公開するために Elastic Beanstalk を使用しており、このワークフローを維持するか、時間の許す限り Beanstalk から他のものに移行したいと考えています。
答え1
Puppet を使用して Elastic Beanstalk を作成できますか?
簡単に答えると、いいえです。
Elastic Beanstalk はどのように使用すればいいですか?
Elastic Beanstalk では、実際にインフラストラクチャ (または基盤となるアプリケーション テクノロジー) を管理する必要はなく、アプリケーションをアップロードする (たとえば、git を使用してコードをプッシュする) だけで、Beanstalk が自動的にデプロイします。
https://aws.amazon.com/elasticbeanstalk/詳細/
AWS Elastic Beanstalk は、Java、PHP、Python、Ruby、.NET などの一般的なアプリケーション コンテナを使用して Web アプリや Web サービスを構築するための、使いやすいアプリケーション管理サービスです。顧客がコードをアップロードすると、Elastic Beanstalk が残りの作業を自動的に行います。。
CloudFormation と Beanstalk を一緒に使用できますか?
はい。CFはAWSリソースの長いリストを管理するのに役立ちます含む豆の木。
CFドキュメントは始めるのに最適な場所ですhttp://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-template-resource-type-ref.html
CF が管理できるリソースは次のとおりです。
- AWS::ElasticBeanstalk::アプリケーション
- AWS::ElasticBeanstalk::アプリケーションバージョン
- AWS::ElasticBeanstalk::構成テンプレート
- AWS::ElasticBeanstalk::環境
その他のオプション
より高度な制御が必要な場合は、OpsWorksを検討してください。詳しくはこちらこれにより、Chef (Puppet に似た CM ツール) を介してオペレーティング システムの構成を制御できるようになります。
さらに制御を強化したい場合は、CloudFormation を直接使用して、インフラストラクチャのあらゆる側面を管理できます (その後、Puppet、Chef、Ansible などの CM ツールなどを使用して、EC2 を完全に制御して、必要に応じて管理できます)。
違い
OpsWorks と Beanstalk はアプリケーション管理サービスです。
AWS OpsWorks と AWS CloudFormation はどちらも、アプリケーションのモデリング、展開、構成、管理、および関連アクティビティをサポートするアプリケーション管理サービスです。どちらも、シンプルな Web アプリケーションから非常に複雑なアプリケーションまで、さまざまなアーキテクチャ パターンをサポートしています。AWS OpsWorks と AWS CloudFormation は、抽象化レベルと重点領域が異なります。
CFを使用すると、ほぼすべてのAWSリソースを管理できます
AWS CloudFormation は、JSON ベースのドメイン固有言語を介してほぼすべての AWS リソースをプロビジョニングおよび管理できるようにするビルディングブロックサービスです。
OpsWorksではBeanstalk以上のことが可能です
AWS OpsWorks は、Elastic Beanstalk よりも幅広いアーキテクチャパターンをサポートしています。AWS Elastic Beanstalk は、最も一般的な Web アプリケーションと Web サービス パターン、およびアプリケーション ミドルウェア向けに特に最適化されていますが、AWS OpsWorks は、単純な Web アプリケーションから非常に複雑なアプリケーションまで、幅広いアーキテクチャパターンをサポートしています。
オプションの検討
私はこれらのオプションをスケール(左から右)として見ています。左側は使いやすく、右側はより多くの制御が可能です(ただし、維持するにはより多くの労力が必要です)。
Beanstalk -> OpsWorks -> CloudFormation。