【问题标题】:How to speed up deployments on AWS Fargate?如何加快 AWS Fargate 上的部署?
【发布时间】:2019-01-08 03:18:13
【问题描述】:

从 EC2 集群实例迁移到 AWS Fargate 后,我意识到部署需要更长的时间。以前他们需要 1-2 分钟,现在一些部署需要 5 分钟。 This post 声称他们在 Fargate 上的部署甚至需要长达 10 分钟。

有人知道加快速度的方法吗?我找不到有关此主题的任何文档。

【问题讨论】:

  • 您如何实际衡量时间?过去我通过查看控制台中的服务事件进行了观察,但我想有更好的方法吗?
  • 我们在每次部署后都会运行一个脚本来检查 ECS 部署是否真正通过。它会测量时间,因此如果部署时间过长,它可能会使管道失败。

标签: amazon-web-services amazon-ecs aws-fargate


【解决方案1】:

通过进一步的谷歌搜索,我找到了this Reddit thread。一位 AWS 员工写道:

关于配置和启动容器的时间是 使用 Fargate 时肯定更长。我们可以减少长度 未来的配置状态,但 Fargate 在 引擎盖比您自己管理的主机上的 ECS。当你自我管理 它们已经启动并运行,甚至可能已经拥有您的 docker 镜像下载并缓存在本地,因此 ECS 能够启动 容器很快。 Fargate 并非如此。

所以缩小图像应该会有所帮助。但总的来说,我想我将不得不忍受它并希望在 AWS 方面进行优化。

【讨论】:

    【解决方案2】:

    以下是我在研究使用 ECS Fargate 缩短部署时间的选项时发现的任务细分和可能的改进:

    Fargate 部署概述

    以下是归因于部署持续时间的幕后情况的细分:

    • 预配 Fargate 工作器实例
    • 提供/附加 ENI
    • 下载 Docker 镜像
      • 在这里您有改进的机会:
        • 减小 Docker 映像的大小
        • 网络吞吐量基于对 Fargate 任务的 CPU 分配 - 如果分配更多 CPU,则获得更多网络,并且图像下载速度更快
    • 应用程序启动时间
      • 如果您的应用程序需要运行状况检查宽限期(同样受 CPU 分配影响),则成为一个因素

    如果您的任务与负载均衡器相关联,则部署还需要通过运行状况检查,并且您需要考虑:

    • 负载平衡器注销延迟
    • 通过健康检查:(健康检查间隔 * 阈值)

    如何更快地部署 Fargate 任务更新

    • 过度分配 CPU
    • 减少注销延迟
    • 将健康检查阈值设置为 2,间隔设置为 5 秒
      • 如果您的应用需要,请不要忘记考虑健康检查宽限期

    我的结果

    在我的测试过程中,我能够在 4 分钟内部署我的应用程序,该应用程序通常需要大约 8 分钟(使用 1024 CPU (1vCPU))并在 4 分钟内完成(使用 4096 CPU (4vCPU))

    免责声明

    您的任务通常需要相当少的 CPU,并且您不希望总是为过度分配 CPU 付出代价。因此,使用过度分配的资源运行您的部署,然后在使用原始 CPU 分配后立即运行另一个部署。

    可能不是您希望每次部署都使用的解决方案,但可能是修补程序部署的解决方案。

    【讨论】:

      【解决方案3】:

      根据我的经验,它们速度较慢的两个原因:

      1. awsvpc 网络模式将 ENI 附加到任务。当它必须对 Lambda 执行此操作时,如果 Lambda 在 VPC 中运行,已知会显着增加初始启动时间。

      2. Docker 镜像大小也会影响启动时间,因为通常需要将镜像下载到任何隐藏的主机才能启动任务。我用一个 200MB 的小容器和一个 2.5GB 的容器做了一些基准测试。前者确实启动得更快。

      您不能对 awsvpc 做太多事情,因为 Fargate 需要它。缩小该图像将是您的下一个最大影响。

      【讨论】:

        猜你喜欢
        • 2020-05-10
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2020-12-04
        • 2018-09-24
        • 2021-03-29
        • 2022-10-28
        • 2022-07-28
        相关资源
        最近更新 更多