2016-12-07 81 views
-1

我想建立一個解決方案,用戶將文件上傳到S3,然後使用數據庫中的lambda函數註冊它,然後開始處理它。你會推薦什麼aws服務來創建動態實例?

處理意味着我想運行一個安裝了一些自定義應用程序的EC2實例,從S3獲得該文件。對於每個文件,我想開始一個單獨的EC2實例。基本上,我需要安裝1 rpm的Centos服務器,我已經單獨創建。

什麼是推薦的aws服務來擴展這種方式?我已閱讀OpsWorks和CloudFormation的文檔,但無法真正做出決定。也許我也可以創建自定義的AMI,並使用SDK啓動EC2實例,但它似乎不是一個定期更新的簡單解決方案,我可能有幾個安裝變體。

回答

1

CloudFormation將幫助您構建您的基礎設施層(VPC,子網,EC2本身),但無法在您的機器上安裝特定軟件。對於第二項任務,您將需要OpsWorks。

無論如何,我認爲自定義AMI +用戶數據的小修改(如下載新版本的東西或啓動服務)是最好的選擇,所以你可以快速嘗試。時間沒有太大的投入。如果UserData變得太複雜,只需配置一個新的AMI版本並保持不斷髮展。

我只是好奇「每個文件一個新的實例」。處理1個文件需要多長時間?我的意思是:你會支付整整一個小時,對你來說是否符合成本效益?你有沒有考慮過使用Lambda?

祝你好運!

+0

處理單個文件取決於很多事情。我在Balabit的Shell Control Box產品上創建了一個原型。基本上,我想處理各種長度的網絡流量數據,處理的時間與保存的網絡數據(長度,使用量等)成比例。謝謝你的幫助! – Akasha

+0

@Akasha如果1個文件處理是分鐘而不是幾個小時,並且您可以處理一些延遲來啓動另一個文件,那麼創建一個事件(CloudWatch)將一條消息放入一個隊列中會更具成本效益( SQS)並重用相同的EC2實例來處理多個文件。希望能幫助到你! – jfneis

+0

爲什麼它會更具成本效益?我仍然需要總共相同的處理時間,如果我每分鐘付費,那麼我是否應該在10分鐘內運行10個盒子,還是在100分鐘內運行1個盒子都沒有關係。 – Akasha