2012-05-11 10 views
6

私は1日に1回、多くのメモリを必要とするスクリプトが必要です。専用のアマゾンボックスで実行したいと思います。AWSサーバでスクリプトを実行する

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

2つのオプションがあります。私はこれを行うためにEMRをハッキング考えています

  1. 。 (私のスクリプトは空のディレクトリに対するマッパです)
  2. シェフ - これは、1つの簡単なスクリプトではあまりにも多くのように思えました。
+0

どのようなLinuxディストリビューションが好きですか? –

+1

私は一般的にubuntuを選びますが、私は他人に開放しています。 – Tihom

答えて

9

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

は、#で始まる(bashのは、PerlやPython、

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

は、ここで私は、ユーザーデータスクリプトの概念が導入されました記事です:

ユーザーデータスクリプト
http://alestic.com/2009/06/ec2-user-data-scripts

あなたのユーザーデータスクリプトと

自動化EC2インスタンスのセットアップ必要なソフトウェアをインストールし、構成し、作業スクリプトをインストールし、1日に1回作業スクリプトを実行するcronジョブをセットアップできます。

強化:

インストールスクリプトは、(時間または数の下で、例えば)を実行するのに長い時間がかかることはありませんならば、あなたも24時間A単一の専用インスタンスを実行する必要はありません日。代わりに、AWSが定期的なスケジュールでインスタンスを開始できるようにする方法を使用できます。

ここで私はそれがサンプルコマンドでこのアプローチについての詳細を提供して書いた記事です:

は、一般的なアプローチが使用するオートスケーリング
http://alestic.com/2011/11/ec2-schedule-instance

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

+0

興味深い。複数のファイルをインスタンスに渡すことはできますか?3つのファイルを渡したい:A)Boostrap(必要なソフトウェアをインストールする)B)Config C)実行するスクリプト – Tihom

+0

それらを1つのスクリプトに結合する。あるいは、認証されたURLを持つS3のような安全な場所から個々のスクリプトをダウンロードして実行するユーザーデータスクリプトを渡します。 –

+1

ニースエリック。それがまさに私が必要としていたものです。 –