我們必須開發將部署在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
謝謝。聽起來不錯。 – Russell 2012-07-20 11:30:16