我有一個腳本,每天需要運行一次,需要大量內存。我想在專門的亞馬遜盒子上運行它。在AWS服務器上運行腳本
是否有一些自動化的方式來構建一個盒子,下載所有必需的軟件(如紅寶石),然後運行我的腳本。腳本運行後,我想關閉該框。
我能想到的兩個選項是:
- 我想黑客EMR做到這一點。 (我的腳本是映射到空目錄的映射器)
- 廚師 - 對於一個簡單的腳本,這看起來太多了。
我有一個腳本,每天需要運行一次,需要大量內存。我想在專門的亞馬遜盒子上運行它。在AWS服務器上運行腳本
是否有一些自動化的方式來構建一個盒子,下載所有必需的軟件(如紅寶石),然後運行我的腳本。腳本運行後,我想關閉該框。
我能想到的兩個選項是:
您可以在啓動時使用官方的Ubuntu AMI,官方的Amazon Linux AMI以及任何其他支持用戶數據腳本概念的AMI來完成一個新的EC2實例。
創建一個腳本(bash中,Perl,Python和
這裏就是我介紹了一個用戶數據腳本的概念的文章:
自動化EC2實例安裝與用戶數據的腳本
http://alestic.com/2009/06/ec2-user-data-scripts
您的用戶數據腳本可以安裝所需的軟件,進行配置,安裝工作腳本,並設置每天運行一次工作腳本的cron作業。
增強:
如果安裝腳本並不需要很長的時間來運行(例如,一個小時或幾下),那麼你甚至不必運行單個專用實例24小時天。您可以改爲使用一種讓AWS可以定期爲您啓動實例的方法。
這裏有一個文章,我寫了提供這種方法與樣本命令的詳細信息:
一個重複計劃運行的EC2實例與自動縮放
http://alestic.com/2011/11/ec2-schedule-instance
的一般方法是使用Auto Scaling可定期使用用戶數據腳本啓動實例。您的工作完成後將終止實例。他們的關鍵是暫停Auto Scaling正常的重新啓動終止實例的願望,以便您在下次開始工作時不需要爲正在運行的實例付費。
有趣。我可以將多個文件傳遞給實例嗎?我想傳遞3個文件:A)Boostrap(安裝所需的軟件)B)配置C)運行的腳本 – Tihom
將它們合併成一個腳本。或者,傳入一個用戶數據腳本,該腳本從S3等安全的地方下載並運行每個單獨的腳本,並通過身份驗證的URL。 –
不錯的Eric。這正是我需要的。 –
你更喜歡什麼Linux發行版? –
我通常選擇Ubuntu,但我對其他人開放。 – Tihom