AWS Elastic Beanstalk
开发人员指南
AWS 文档中描述的 AWS 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 Amazon AWS 入门

将应用程序部署到 AWS Elastic Beanstalk 环境

您可以使用AWS 管理控制台上传更新后的源包并将其部署到您的 AWS Elastic Beanstalk 环境,或者重新部署之前上传的版本。

将新版应用程序部署到环境通常是一个相当快的过程。新的源包将部署到实例并进行提取。然后 Web 容器或应用程序服务器将获取新版本并在必要时重新启动。在部署期间,您的应用程序仍可能有几秒对用户不可用。您可以配置环境来使用滚动部署,以便将新版本批量部署到实例,从而防止这一情况。

每项部署均由部署 ID 标识。部署 ID 从 1 开始,每次部署和更改实例配置时,部署 ID 就会逐一往上增加。如果您启用了增强型运行状况报告,则 Elastic Beanstalk 会在报告实例运行状况时,同时在运行状况控制台EB CLI 中显示部署 ID。滚动更新失败时,部署 ID 可帮助您确定环境的状态。

如果您需要确保应用程序源始终部署到新实例而不是更新现有实例,可以将环境配置为针对部署使用不可变更新。在不可变更新中,环境中将启动第二个 Auto Scaling 组,新版本与旧版本一起为流量提供服务,直至新实例通过运行状况检查。

支持的部署策略

部署策略 负载均衡环境 单实例环境 Windows Server 环境

一次部署全部

滚动

附加批次滚动部署

不可变的

配置部署

  1. 打开 Elastic Beanstalk 控制台

  2. 导航到您的环境的管理页

  3. 选择 Configuration

  4. 滚动更新和部署配置卡上,选择修改

  5. Application Deployments 部分中,选择 Deployment policy 和批设置。

  6. 选择 Apply

针对依赖于资源配置更改的部署,或者不能与旧版本一起运行的新版本的部署,您可以使用新版本启动新环境,然后为蓝/绿部署执行别名记录交换。

下表比较了部署方法。

部署方法

方法 部署失败带来的影响 部署时间 零停机时间 无 DNS 更改 回滚过程 代码部署到
一次部署全部 停机时间 手动重新部署 现有实例
滚动 单个批次服务中断;任何在故障之前成功的批次将运行新应用程序版本 手动重新部署 现有实例
附加批次滚动部署 如果第一个批次失败,则影响最小;否则类似于滚动 手动重新部署 新实例和现有实例
不可变的 最低 终止新实例 新实例
蓝/绿 最低 交换 URL 新实例

根据批次大小而变化。

如果经常部署,可以考虑使用 Elastic Beanstalk 命令行界面管理您的环境。EB CLI 随您的源代码创建存储库,可以创建源包,将其上传到 Elastic Beanstalk,并通过一个命令进行部署。

部署新应用程序版本

您可以从环境的仪表板执行部署。

将新应用程序版本部署到 Elastic Beanstalk 环境

  1. 打开 Elastic Beanstalk 控制台

  2. 导航到您的环境的管理页

  3. 选择 Upload and Deploy

  4. 选择 Browse 以便为要部署的应用程序版本选择应用程序源包。

    “上传和部署”对话框
  5. 键入唯一的版本标签来表示新应用程序版本。

  6. 选择 Deploy

重新部署先前版本

您也可以从应用程序版本页面将之前上传的应用程序版本部署到其任一环境。

将现有的应用程序版本部署到现有的环境

  1. 打开 Elastic Beanstalk 控制台

  2. 选择应用程序名称旁边的操作,然后选择查看应用程序版本

  3. 选择要部署的应用程序版本,然后单击 Deploy (部署)

  4. 选择环境,然后选择 Deploy