有没有办法加速 AWS CodeDeploy

Jas*_*nis 22 deployment amazon-web-services

我正在使用 AWS CodeDeploy 来部署我的站点,但我注意到它的速度不是很一致;有时它非常快,但有时部署的每个步骤可能需要几分钟。当部署应该快速执行时,这是非常烦人的,以防出现错误或中断。

但是,我找不到有关 CodeDeploy 速度的任何文档,而且我似乎找不到任何逻辑,它何时慢或快。有没有办法加快速度,有没有办法知道什么需要这么长时间?

小智 36

BlockTraffic 和 AllowTraffic

只需调整目标群体的健康检查设置即可节省几分钟时间。

在此处输入图片说明 在此处输入图片说明

在此处输入图片说明 在此处输入图片说明

解释

这工作,因为BlockTrafficAllowTraffic这两个等待成功的健康检查。默认的健康检查间隔是每 30 秒检查 1 次,一次成功的健康检查需要连续 5 次 200 次响应。因此,默认情况下需要超过 2 分 30 秒。这适用于每个 EC2 实例。减少运行状况检查间隔并限制所需的成功检查次数将缩短部署时间。


cee*_*yoz 12

默认情况下,CodeDeploy 所做的很少 - 它从 S3 或 Github 获取代码,然后根据文件的说明运行您的脚本appspec.yml

如果您的部署从 S3 抓取数 GB 数据,您会发现数据传输需要一些时间(特别是在带宽有限的较小 EC2 实例上),但除此之外,部署延迟更有可能是由于您的任何原因造成的'正在您的部署脚本中执行。

CodeDeploy 部署的步骤是:

  • ApplicationStop - 你控制这个钩子
  • DownloadBundle - CodeDeploy 从 S3/Github 抓取代码
  • BeforeInstall - 你控制这个钩子
  • 安装 - CodeDeploy 将代码从临时位置复制到最终目的地
  • AfterInstall - 你控制这个钩子
  • ApplicationStart - 你控制这个钩子
  • ValidateService - 你控制这个钩子

粗体由 CodeDeploy 决定,其他由您决定。如果您在粗体中看到不同的延迟,请联系 AWS 支持,否则您可能需要调查您的钩子。


小智 6

另一个要检查的设置是目标集团的“注销延迟”。我的健康检查设置已经很低,这就是我的瓶颈。