2011-10-07 162 views
4

我正在尋找最佳方式將控制檯應用程序和可能的Windows服務應用程序部署到AWS。我讀過的關於CloudFormation的一切聽起來都像是要走的路,但我看到的所有例子都是針對Web應用程序的。有誰知道是否有可能將CloudFormation用於非web應用程序?如果是這樣,是否知道一個示例模板,顯示它是如何完成的?AWS部署非web應用程序

回答

1

爲什麼不使用Windows Server EC2 intance? CloudFormation只是一種管理雲資源的方式,但您仍然在使用良好的EC2實例(這是可用的資源之一)。

在單個實例中,您可以部署控制檯應用程序和Windows服務。

更新:您可以使用THIS文章的信息從當前帳戶中的資源生成CloudFormation模板。這樣你可以手動設置它,然後生成模板。

希望這有助於

+0

我想這是我的問題,我見過的所有例子都是向EC2推送一個asp.net應用程序,但沒有人說推送一個控制檯應用程序。那麼基於你的迴應,我是否可以正確地思考,我可以以某種方式配置CloudFormation來推送一個控制檯應用程序? –

+0

@ChrisDellinger - 我實際上是說除非你想組織複雜的部署,否則你不需要CloudFormation。如果它只是一個實例,我認爲使用CloudFormation是過量的,但如果你真的想,我想你可以,但是我以前沒有做過。我會用一種方法更新我的答案...... – AJC

1

是的,你可以使用CloudFormation對於任何類型的應用程序。您可以創建基於任何AMI的實例(如果您使用Linux實例,請使用cloud-init在啓動時安裝並運行軟件)。

在預安裝軟件的情況下創建自己的AMI並使用CloudFormation啓動基於該AMI的實例也很容易。

沒有什麼特別的Web應用程序特定於CloudFormation;它只是描述一組AWS資源的一種方式。

2

我最近有一個類似的問題。其實我試圖安裝一個包含多個子包和一個runCommand的包裝MSDeploy包來安裝它們。

我發現AWSDeploy會失敗,除非傳遞給CloudFormation的MSDeploy包本身就是一個iisApp包。經過調查發現,這是因爲AWSDeploy使用-setParam:「IIS Web Application Name」=「在config中設置的值」執行MSDeploy腳本,這就是它失敗的原因。

要避免此錯誤併成功安裝AWSDeploy和CloudFormation的非網站,只需將參數文件打包到包含此參數的MSDeploy軟件包中即可。

下面是一個示例文件。

<parameters> 
    <parameter name="IIS Web Application Name" defaultValue="Default Web Site/" tags="isIisApp" /> 
</parameters> 

然後,您可以創建一個帶有manifest或contentPath的MSDeploy包,如下傳遞該文件。

msdeploy -verb:sync -source:contentPath=C:\ConsoleApp\ -dest:package=deploy.zip -declareParamFile=parameters.xml 

然後,您可以成功地將此與CloudFormation模板配合使用。如果不運行站點,請不要忘記禁用該實例的運行狀況監視。