6

多くのメモリを必要とするスクリプトを 1 日に 1 回実行する必要があります。専用のAmazonボックスで実行したいと思います。

ボックスを作成し、必要なすべてのソフトウェア (Ruby など) をダウンロードして、スクリプトを実行する自動化された方法はありますか? スクリプトの実行後、ボックスをシャットダウンしたいと思います。

私が考えることができる2つのオプションは次のとおりです。

  1. これを行うためにEMRをハッキングすることを考えています。(私のスクリプトは、空のディレクトリに対するマッパーです)
  2. Chef - これは 1 つの単純なスクリプトには多すぎるように思えました。
4

1 に答える 1

9

公式の Ubuntu AMI、公式の Amazon Linux AMI、およびユーザーデータ スクリプトの概念をサポートするその他の AMI を使用して、起動時に新しい EC2 インスタンスをセットアップできます。

スクリプトを作成します (bash、Perl、Python、

  1. なんでも) #! で始まるもの
  2. EC2 インスタンスの実行時に、このスクリプトをユーザー データとして渡します。
  3. スクリプトは、最初の起動時に root として自動的に実行されます。

ユーザーデータスクリプトの概念を紹介した記事は次のとおりです。

ユーザーデータ スクリプトを使用して EC2 インスタンスのセットアップを自動化する
http://alestic.com/2009/06/ec2-user-data-scripts

ユーザー データ スクリプトは、必要なソフトウェアのインストール、構成、作業スクリプトのインストール、および作業スクリプトを 1 日 1 回実行する cron ジョブのセットアップを行うことができます。

強化:

インストール スクリプトの実行に時間がかからない場合 (たとえば、1 時間または数時間未満)、1 つの専用インスタンスを 1 日 24 時間実行する必要さえありません。代わりに、AWS が定期的なスケジュールでインスタンスを開始できるようにするアプローチを使用できます。

サンプル コマンドを使用してこのアプローチの詳細を提供する、私が書いた記事を次に示します。

Auto Scaling を使用して定期的なスケジュールで EC2 インスタンスを実行する
http://alestic.com/2011/11/ec2-schedule-instance

一般的なアプローチは、Auto Scaling を使用して、定期的なスケジュールでユーザーデータ スクリプトを使用してインスタンスを開始することです。ジョブは、完了するとインスタンスを終了します。重要なのは、終了したインスタンスを再起動するという Auto Scaling の通常の要求を一時停止して、次にジョブが開始されるまで実行中のインスタンスの料金を支払わないようにすることです。

于 2012-05-11T19:06:18.873 に答える