Amazon web services 如何加快AWS Fargate上的部署?
从EC2集群实例迁移到AWS Fargate之后,我意识到部署需要更长的时间。以前需要1-2分钟,现在有些设备需要5分钟。声称他们在Fargate上的部署甚至需要10分钟Amazon web services 如何加快AWS Fargate上的部署?,amazon-web-services,amazon-ecs,aws-fargate,Amazon Web Services,Amazon Ecs,Aws Fargate,从EC2集群实例迁移到AWS Fargate之后,我意识到部署需要更长的时间。以前需要1-2分钟,现在有些设备需要5分钟。声称他们在Fargate上的部署甚至需要10分钟 有人知道加快速度的方法吗?我找不到有关此主题的任何文档。根据我的经验,它们速度较慢的原因有两个: awsvpc网络模式将ENI附加到任务。当必须对Lambda执行此操作时,如果Lambda在VPC中运行,则会显著增加初始启动时间 Docker映像大小也会影响启动时间,因为要启动任务,通常需要将映像下载到任何隐藏的主机上。我已经
有人知道加快速度的方法吗?我找不到有关此主题的任何文档。根据我的经验,它们速度较慢的原因有两个:
你不能对awsvpc做太多,因为Fargate需要它。缩小这个图像将是你下一个最大的影响。通过进一步的谷歌搜索,我发现。一位AWS员工写道: 关于提供和启动容器的时间,它是 使用Fargate时,时间肯定更长。我们可以缩短这条路的长度 在未来的供应状态下,Fargate正在做更多的工作 您可以在自己的自我管理主机上安装云服务器。当你自我管理的时候 它们已经启动并运行的主机,甚至可能已经有您的 docker镜像本地下载缓存,ECS可以启动 容器很快就打开了。法尔盖特的情况并非如此
因此,缩小图像应该会有所帮助。但总的来说,我想我将不得不接受它,并希望在AWS方面进行优化 以下是我在研究使用ECS Fargate缩短部署时间的选项时发现的任务分解和可能的改进: Fargate部署概述 下面是对部署持续时间的幕后工作的分解:
- 提供Fargate worker实例
- 提供/附上ENI
- 下载Docker映像
- 在这里,您有改进的机会:
- 减小Docker图像的大小
- 网络吞吐量取决于Fargate任务的CPU分配-如果分配更多的CPU,则可以获得更多的网络,并且映像下载速度更快
- 在这里,您有改进的机会:
- 应用程序启动时间
- 如果应用程序需要运行状况检查宽限期(同样受CPU分配的影响),则会成为一个因素
- 负载平衡器注销延迟
- 通过健康检查:(健康检查间隔*阈值)
- 过度分配CPU
- 减少注销延迟
- 将运行状况检查阈值设置为2,间隔设置为5秒
- 如果你的应用程序需要健康检查宽限期,别忘了考虑它
可能不是每次部署都要使用的解决方案,但也可能是修补程序部署的解决方案。您实际如何衡量时间?过去,我在控制台中查看服务事件时大吃一惊,但我认为有更好的方法吗?我们在每次部署后都会运行一个脚本,以检查ECS部署是否已经完成。它测量时间,以便在部署时间过长时使管道失败。