docker - AWS Fargate 启动时间

标签 docker amazon-ecs aws-fargate

目前我正在研究如何在 AWS 上编排我们的容器化微服务。 ECS 的 Fargate 选项看起来很有前途,无需管理 EC2 实例。

尽管在 Fargate 中启动“任务”所需的时间非常长,即使对于简单的单容器设置也是如此。对于我们的 Docker 应用程序镜像来说,60 秒到 90 秒是典型的。我听说这可能需要更多时间,例如几分钟左右。

所以问题是:虽然 Docker 容器通常可能会在几秒钟内启动,但在 Fargate 情况下造成如此开销的确切原因是什么?

附注搜索相关问题会返回这样的选项:

  1. Docker 镜像加载/提取时间
  2. 负载均衡器的影响 - 注册、健康检查宽限期等

但即使在没有部署负载均衡器的最简单配置中,并且假设 Docker 镜像未缓存在 ECS 中,在 Fargate 中使用单个 Docker 镜像启动任务(约 60 秒)仍然比启动慢至少约 2 倍裸 EC2 实例上的相同 Docker 镜像(25 秒)

最佳答案

是的,需要更长的时间,但我们无法概括 Fargate 的启动时间。您可以通过调整一些设置来减少这个时间。

vCPU 直接影响启动时间,因此您必须记住,在裸 EC2 实例中,您可以使用完整的 vCPU,而在 Fargate 的情况下,您可能会分配其中的一部分。

由于 AWS 为您管理服务器,因此他们不必做一些重要的事情。将虚拟机分配到您的 VPC 中以下载/提取 docker 镜像、分配 IP 并运行容器可能会花费很多时间。

这是一个不错的博客,在下面的文章末尾您可以找到好的实践。

Analyzing AWS Fargate

关于docker - AWS Fargate 启动时间,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57395785/

相关文章:

mysql - 如何连接到docker-compose创建的mysql

amazon-web-services - AWS ECS : Force redeployment on new latest image in ECR

aws-fargate - 资源初始化错误 : failed to validate logger args: : signal: killed

apache - 从Dockerfile设置EnableSendfile Off

docker - 是否可以将Docker卷挂载到其他文件系统?

docker - 如何管理AWS ECS中docker镜像的版本?

amazon-web-services - 我不能在 aws fargate 中运行超过 5 个任务

laravel - 如何使用 Fargate 在 AWS ECS 上配置基于 Laravel 的应用程序?

docker - docker 是使应用程序跨平台的解决方案吗?

amazon-web-services - 如何使用cloudformation创建ecs集群?