通过Elastic Beanstalk创建的EC2实例能否用SFTP编辑文件,环境更新会覆盖改动吗?
Elastic Beanstalk 相关问题解答
问题1:通过 SSH 修改或 SFTP 上传的文件,在 Elastic Beanstalk 环境更新时会被保留还是被清空覆盖?
- 默认场景下,所有你手动通过 SSH 修改、SFTP 上传到 EC2 实例应用部署目录下的文件,只要触发以下任意操作,都会被完全清空覆盖:
- 提交新的应用版本部署
- 环境配置变更触发实例重新部署
- 实例因健康检查异常、自动扩缩容被新实例替换
- 执行环境重建操作
- 底层逻辑是 Elastic Beanstalk 完全基于你提交的标准应用版本包进行部署,每次部署都会用版本包内容完整替换实例的部署目录,新启动的实例也只会拉取官方版本包初始化,不会同步旧实例上的手动修改内容。
- 唯一例外是你把文件存到了额外挂载的持久化存储(比如 EFS)中,这部分内容不会被部署操作覆盖。
问题2:是否仅能通过 Elastic Beanstalk 管理后台上传文件?
不是,管理后台上传只是 Elastic Beanstalk 支持的部署方式之一,还有多类合法部署渠道:
- 用 EB CLI 执行
eb deploy命令,可直接将本地代码打包上传并部署到目标环境 - 用 AWS CLI 调用
create-application-version、update-environment接口,实现命令行自动化部署 - 对接 CI/CD 工具(如 GitHub Actions、Jenkins、GitLab CI 等),提交代码到版本仓库后自动触发打包部署
额外提醒:不建议在 staging 或生产环境直接通过 SSH/SFTP 修改代码,这类修改无法纳入版本管控,一旦触发环境更新就会丢失,还可能引发多实例环境代码不一致的故障。
内容的提问来源于stack exchange,提问作者Raman Kumar
相关产品推荐
相关产品推荐

