You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

多AWS EC2 Linux实例Web应用批量更新及部署方案咨询

批量更新EC2实例应用的方案

通用批量更新方法(排除指定文件)

  • Ansible 批量部署
    这是运维圈常用的配置管理工具,专门解决批量服务器操作的问题:

    1. 可以用动态inventory自动拉取AWS各可用区的EC2实例清单,不用手动维护服务器列表
    2. 写Playbook定义部署逻辑,用synchronize模块同步代码时直接排除配置文件,示例:
      - name: 同步最新应用代码
        synchronize:
          src: ./local-app-build/
          dest: /var/www/app/
          exclude: config.ini
          delete: yes
      
    3. 执行Playbook就能一次性完成所有实例的代码更新,还能顺便加重启服务、校验状态的步骤。
  • Shell脚本 + AWS SSM Run Command
    不用额外装工具,靠AWS自带功能就能搞定:

    1. 确保所有EC2实例都装了SSM Agent(AWS默认给大部分AMI预装了)
    2. 写个简单的Shell脚本,拉取最新代码后用rsync排除配置文件:
      #!/bin/bash
      cd /tmp
      git clone your-repo-address.git
      rsync -av --exclude='config.ini' /tmp/your-repo/* /var/www/app/
      systemctl restart your-web-service
      
    3. 通过AWS控制台或者CLI调用SSM Run Command,按标签、可用区筛选目标实例,把脚本发过去批量执行就行。

GitHub 是否适用于生产环境?

完全可以,但要注意几个关键细节:

  • 用私有仓库存生产代码,别把敏感信息暴露出去
  • 搞清楚分支策略:比如main分支只放经过测试的生产代码,开发在dev分支做,合并到main必须走Pull Request做代码审查
  • 用**标签(Tag)**标记生产版本,比如v1.2.0,部署时拉取指定标签的代码,别直接拉最新HEAD,避免意外引入未测试的改动
  • 绝对别把数据库密码、API密钥这类敏感配置存仓库里,用环境变量或者AWS Secrets Manager来管理

AWS 原生解决方案

  • AWS CodeDeploy
    专门做自动化部署的服务,和EC2完美适配:

    1. 把应用打包传到S3,或者直接关联你的GitHub仓库
    2. 写appspec.yml配置部署规则,明确排除不需要更新的文件:
      version: 0.0
      os: linux
      files:
        - source: /
          destination: /var/www/app/
          exclude:
            - config.ini
      hooks:
        AfterInstall:
          - location: scripts/restart-service.sh
            timeout: 300
            runas: root
      
    3. 创建部署组,按标签、可用区选要更新的EC2实例,触发部署后CodeDeploy会自动批量更新,还支持滚动部署、蓝绿部署,能减少服务中断时间。
  • AWS Elastic Beanstalk
    如果你的应用适合PaaS模式,直接丢到Elastic Beanstalk就行,它会自动管EC2、负载均衡这些基础设施。更新的时候只需要上传新版本代码,平台会自动批量更所有实例,你可以配置忽略指定文件,或者用环境变量管理配置信息。

内容的提问来源于stack exchange,提问作者Roel

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.11 22:05:59