0

我正在尝试将生产Web服务器迁移到AWS,该服务器是基于Windows的IIS,具有在1个网站下定义的多个应用程序。我已经尝试Elastic Beanstalk和云形成。我更喜欢弹性beanstalk,但我会对任何具有自动扩展和简单部署例程的任何东西感到满意。无法创建具有多个IIS应用程序的弹性beanstalk

我创建了一个带有一个子应用程序的示例网站,它在本地工作正常。我试图编辑弹性beanstalk的默认AMI以添加额外的应用程序并将其部署到它。当我试图用新的AMI重新部署应用程序时,它失败了,结果失败,出现以下错误。

[实例:I-3f13bc11模块:AWSEBAutoScalingGroup ConfigSet: 红外线WriteRuntimeConfig,红外线WriteApplication1, 红外线WriteApplication2,红外线EmbeddedPreBuild,钩PreAppDeploy, 钩EnactAppDeploy,红外线EmbeddedPostBuild,钩PostAppDeploy] 命令在实例上失败。返回码:1输出:null。

我的确尝试使用visual studio自带的云形成模板,但它也没有工作,它失败时会出现非常类似的错误信息。

+1

自定义Windows实例后,需要运行EC2Config服务Sysprep。有关EC2Config的信息,请转至使用EC2Config服务配置Windows实例。http://docs.aws.amazon.com/elasticbeanstalk/latest/dg/using-features.customenv.html – JustEngland

回答

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

+0

我试图使用CloudFormation,但是我遇到了和我在Beanstalk上一样的问题。我没有绑定到任何一个平台,我对两者都很满意,我会试一试。 我有点不确定如何从S3存储桶部署到各个应用程序中。您能否提供一点关于如何从您的S3中添加文件并指示IIS安装应用程序的部署包。我喜欢这种方法,我只是没有任何例子。 – JustEngland

+1

@JustEngland刚刚安装了安装了IIS的ami,将这两个应用程序的所有Web文件放入一个zip文件并将文件部署到S3。云形成提取并提取zip到inetpub目录。如果你愿意,你可以做多个zip文件。如果您可以使用appcmd(或任何其他命令行工具)安装应用程序,则可以通过云形成来完成。如果/遇到问题,请给它一个机会,并提出一个新问题。 – Edwin

相关问题