2012-07-19 73 views
0

我們必須開發將部署在AWS EC2上的應用程序。作爲我們每晚構建的一部分,我們希望在本地單元測試我們的代碼,然後部署到AWS實例並通過Internet運行功能測試。在經過身份驗證的HTTP代理之後開發AWS應用程序

在理想的世界中,我們只需編寫構建腳本即可使用AWS開發工具包來選擇合適的AMI,啓動實例,使用SSH登錄,設置環境,通過FTP與我們的程序進行交互。但是我們在HTTP代理的後面。由於我們無法使用SSH或FTP,因此我們考慮了三種基本選項。

1:嘗試將userData添加到我們的RunInstanceRequest中,這會導致實例設置我們的環境,並在開始時下載並運行我們的程序(可能來自AWS S3存儲桶)。在Java中,這將是這樣的:

RunInstancesRequest runInstancesRequest = new RunInstancesRequest() 
    .withInstanceType(myType) 
    .withImageId(id) 
    .withMinCount(min) 
    .withMaxCount(max) 
    .withSecurityGroupIds(mySecurityGroup) 
    .withKeyName(someKey) 
    .withUserData(myScript); //add our installation script 

RunInstancesResult runInstances = ec2.runInstances(runInstancesRequest); 

2:在虛擬機上安裝我們的節目在本地和導入整個VM使用EC2導入實例工具描述here AWS。

3:向上和向下跳轉並要求限制較少的網絡環境。

我們對(1)感到不安,因爲調試安裝過程中的任何問題都非常困難。 (2)每次部署時都涉及整個虛擬機的轉移和轉換,(3)看起來並不樂觀!

有沒有人知道這樣做的最好方法?

:d

回答

1

你爲什麼不建立自己的自定義AMI自動下載並啓動執行遠程安裝腳本?您可以編寫一個花哨的init.d腳本,或者從/etc/rc.local調用一個簡單的shell腳本(假設一個類似Redhat的disto)。這與RightScale如何執行操作非常相似。

+0

謝謝。聽起來不錯。 – Russell 2012-07-20 11:30:16

相關問題