我正在尝试将生产Web服务器迁移到AWS,该服务器是基于Windows的IIS,在1个网站下定义了多个应用程序。我尝试过Elastic Beanstalk和Cloud。我更喜欢弹性beanstalk,但我会很满意任何具有自动缩放和简单部署例程的东西。
我创建了一个包含一个子应用程序的示例网站,它在本地工作正常。我尝试编辑弹性beanstalk的默认AMI,以添加额外的应用程序并部署到它。当我尝试使用新的AMI重新部署应用程序时,它无法完成部署失败并出现以下错误。
[实例:i-3f13bc11模块:AWSEBAutoScalingGroup配置: Infra-WriteRuntimeConfig,Infra-WriteApplication1, Infra-WriteApplication2,Infra-EmbeddedPreBuild,Hook-PreAppDeploy, Hook-EnactAppDeploy,Infra-EmbeddedPostBuild,Hook-PostAppDeploy] 命令在实例上失败。返回码:1输出:null。
我确实尝试使用visual studio附带的云形成模板,但它也没有工作,它失败并出现非常相似的错误消息。
答案 0 :(得分:3)
执行此操作的最佳方法是使用CloudFormation创建自动缩放组。在LaunchConfiguration类型中,您可以从S3添加文件并指示IIS安装应用程序。例如:
"WebAsSpotLaunchConfiguration" : {
"Type" : "AWS::AutoScaling::LaunchConfiguration",
"Metadata" : {
"AWS::CloudFormation::Init" : {
"config" : {
"sources" : {
"C:\\inetpub\\wwwroot" : {
"Fn::Join" : [
"/",
[
"http://s3.amazonaws.com",
{
"Ref" : "DeployS3Bucket"
},
{
"Ref" : "DeployWebS3Key"
}
]
]
}
},
"commands" : {
"1-add-app-1" : {
"command" : "C:\\Windows\\System32\\inetsrv\\appcmd add app /site.name:MySite /path:/app1 /physicalPath:C:\inetpub\mysite\app1",
"waitAfterCompletion" : "0"
},
"2-add-app-2" : {
"command" : "C:\\Windows\\System32\\inetsrv\\appcmd add app /site.name:MySite /path:/app2 /physicalPath:C:\inetpub\mysite\app2",
"waitAfterCompletion" : "0"
}
}
}
},
我意识到如果你还不知道CloudFormation,这可能需要一些时间来设置。但我认为值得投资。