2011-10-07 145 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模板配合使用。如果不运行站点,请不要忘记禁用该实例的运行状况监视。