无法使用多个IIS应用程序创建弹性beanstalk

时间:2014-01-20 17:44:09

标签: amazon-web-services elastic-beanstalk amazon-cloudformation

我正在尝试将生产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附带的云形成模板,但它也没有工作,它失败并出现非常相似的错误消息。

1 个答案:

答案 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,这可能需要一些时间来设置。但我认为值得投资。