【发布时间】:2020-03-16 19:14:26
【问题描述】:
我正在实施 Amazon EC2 Auto Scaling 和 AWS CodeDeploy(蓝绿色部署)。我已将烘焙 AMI 分配给 Auto Scaling 组。
Auto Scaling 在没有 CodeDeploy 的情况下可以正常工作。
用于蓝绿色部署的 AWS CodeDeploy 没有问题。我已经在部署组中分配了自动伸缩组。
但是,为了测试蓝绿部署,我手动终止了其中一个实例,以便 Auto Scaling 可以再启动一个实例。但是,实例会突然启动和终止。
我看到 AWS CodeDeploy 有错误:
部署失败,因为此位置已存在指定文件:webserver/server.js
我使用的 AWS CodeDeploy 配置是 OneAtTime 和内容选项:Overwrite the content。
我只有 1 个应用程序部署组。
目前,我已通过将“自动复制 Amazon EC2 Auto Scaling 组”更改为“手动预置实例”来从 AWS CodeDeploy 中删除 Auto Scaling 组,这已停止终止实例。但是,Auto Scaling 创建的新实例没有新代码。 CodeDeploy 是否不会使用新代码更新或替换 AMI?
问题:
为什么会出现错误“部署失败,因为此位置已存在指定文件:webserver/server.js”?
通过自动伸缩创建的 EC2 实例没有最新的部署代码?
是否有更好的方法来进行蓝绿部署和自动缩放。或者上述方法有什么问题?
我已阅读 AWS CodeDeploy 教程,但遗漏了一些内容。
【问题讨论】:
-
遇到同样的问题你有什么解决办法吗?
标签: amazon-web-services autoscaling aws-code-deploy