AWS Fargate 启动时间

Posted

技术标签:

【中文标题】AWS Fargate 启动时间【英文标题】:AWS Fargate startup time 【发布时间】:2019-12-15 04:08:31 【问题描述】:

目前我正在研究如何在 AWS 上编排我们的 dockerised 微服务。 ECS 的 Fargate 选项看起来很有希望消除管理 EC2 实例的需要。

尽管在 Fargate 中启动一个“任务”需要很长的时间,即使是简单的单容器设置也是如此。我们的 Docker 应用程序映像通常需要 60 秒到 90 秒。我听说这可能需要更多的时间,比如几分钟左右。

所以问题是:虽然 Docker 容器通常可以在几秒钟内启动,但在 Fargate 案例中,这种开销的确切原因是什么?

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

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

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

【问题讨论】:

如果登陆此处以获取有关适用于 EKS 的 AWS Fargate 的更多信息,请对此票投票:github.com/aws/containers-roadmap/issues/649(不确定这是否也会改善 ECS) @unthought +1 投票,我看到开发者在票中添加了一些有用的细节 【参考方案1】:

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

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

由于 AWS 会为您管理服务器,因此它们几乎不需要做一些划线的事情。将 VM 分配到您的 VPC 以下载/提取 docker 映像、分配 IP 和运行容器可能需要这么多时间。

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

Analyzing AWS Fargate

【讨论】:

无法访问您链接的站点。 感谢指出,我已经更新了链接!

以上是关于AWS Fargate 启动时间的主要内容,如果未能解决你的问题,请参考以下文章

指定 aws ECS/Fargate 容器依赖项无法部署

如何在不重新启动集群的情况下使用 Fargate 在 AWS EKS 内传播 DNS 主机名(网络更改)和/或角色更改?

AWS ECS Fargate 未创建任务 AmazonECSTaskExecutionRole 错误

如何诊断 ECS Fargate 任务启动失败?

在 AWS Fargate 中链接容器

将命令行参数传递给 AWS Fargate 容器