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

相關問題