0

次のことを行うアプリケーションを作成する必要があります。

  1. メッセージング システムを介して要求を受け入れる (完了)
  2. リクエストを処理し、ジョブに必要なスクリプトとインスタンスのタイプを決定します ( Done )
  3. EC2 インスタンスを起動する
  4. カスタム スクリプトをアップロードします (おそらく github から、または S3 バケットの可能性があります)。
  5. 指定された引数でスクリプトを起動します。

問題は、ステップ 3、4、5 を実行する最も効率的な方法は何ですか? 誤解しないでください。現在、このすべてを実行するスクリプトで同じことを行っています。

  • インスタンスを起動し、
  • user_data を使用して必要な依存関係をダウンロードします
  • インスタンスに SSH 接続してスクリプトを起動するよりも

私の質問は本当に: この種の作業を処理する唯一のオプションですか? またはこれを行う簡単な方法があるかもしれませんか?私は OpsWork を見ていましたが、これが私にとって正しいことかどうかわかりません。手順 3 と 4 はそれで実行できることはわかっていますが、残りはどうですか? :

  • 指定された引数でスクリプトを起動します
  • リクエストが入ったときに OpsWork をトリガーしてインスタンスを起動する

ちなみにAWSのサービスとの通信にはPython、botoを使っています。

4

2 に答える 2

2

すでに AWS を使用しているため、これは Amazon Simple Workflow Service ( http://aws.amazon.com/swf/ )の完璧な使用例のように思えます。

サービスの説明から:

Amazon SWF は、カスタム コーディングされたワークフロー ソリューションとプロセス自動化ソフトウェアの複雑さを、完全に管理されたウェブ サービスに置き換えます。これにより、開発者はプロセス自動化のインフラストラクチャの配管を管理する必要がなくなり、アプリケーションの独自の機能にエネルギーを集中できます。

タスク ワークフローを定義し、作業者がワークフロー内のタスクを処理できるようにします。

botoSWF の「レベル 1」サポート (低レベル API) があります: http://boto.readthedocs.org/en/2.6.0/ref/swf.html

于 2013-07-17T01:41:59.770 に答える
1

ナイフブートストラップを使用できます。これは、それを行う 1 つの方法です。AWS SDK を使用してそのほとんどを実行できます

  1. インスタンスを起動する
  2. パブリック IP を追加します (VPC にない場合)
  3. インスタンスがオンラインに戻るまで待ちます
  4. ナイフブートストラップを使用してスクリプトを提供し、シェフクライアントをセットアップし、システムを更新します
  5. 次に、シェフのクックブックを使用してマシンをセットアップします
于 2013-07-17T05:02:29.820 に答える