无法使用多个 IIS 应用程序创建弹性 beanstalk
Posted
技术标签:
【中文标题】无法使用多个 IIS 应用程序创建弹性 beanstalk【英文标题】:Cannot create elastic beanstalk with multiple IIS applications 【发布时间】:2014-02-10 00:27:29 【问题描述】:我正在尝试将生产 Web 服务器迁移到 AWS,该服务器是基于 Windows 的 IIS,在 1 个网站下定义了多个应用程序。我已经尝试过 Elastic Beanstalk 和 Cloud Formation。我更喜欢弹性 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 附带的 cloud-formation 模板,但它也不起作用,它失败并显示非常相似的错误消息。
【问题讨论】:
自定义windows实例后,需要运行EC2Config服务Sysprep。有关 EC2Config 的信息,请转到使用 EC2Config 服务配置 Windows 实例。docs.aws.amazon.com/elasticbeanstalk/latest/dg/… 【参考方案1】:执行此操作的最佳方法是使用 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,这可能需要一些时间来设置。但在我看来,这是值得投资的。
【讨论】:
我尝试使用 CloudFormation,但遇到了与使用 Beanstalk 相同的问题。我没有绑定到任何一个平台,我对这两个平台都很满意,我会试一试。我有点不确定您如何从 S3 存储桶部署到各个应用程序中。您能否提供一些关于如何从您那里提取部署包的见解,可以从 S3 添加您的文件并指示 IIS 安装应用程序。我喜欢这种方法,我只是没有任何例子。 @JustEngland 只需从安装了 IIS 的 ami 开始,将两个应用程序的所有 Web 文件放入一个 zip 文件,然后将文件部署到 S3。 Cloud Formation 获取 zip 并将其解压缩到 inetpub 目录。如果你愿意,你可以做多个拉链。如果您可以使用 appcmd(或任何其他命令行工具)安装您的应用程序,则可以使用云形成来完成。如果/当您遇到问题时,试一试并提出一个新问题。以上是关于无法使用多个 IIS 应用程序创建弹性 beanstalk的主要内容,如果未能解决你的问题,请参考以下文章
validate_email python库在本地机器上工作,但不在aws弹性bean上
我正在尝试使用 .ebextensions 配置在弹性 beanstalk 上安装 pdftk 服务器,但无法安装