通过延迟加载容器映像减少 Amazon Fargate 启动时间

云计算
re:Invent
0
0
## 视频 <video src="https://dev-media.amazoncloud.cn/30-LibaiGenerate/31-LiBaiRebrandingVideo/CON307-Reducing_AWS_Fargate_startup_times_by_lazy_loading_container_images-LBrebrandingWCaptionCN.mp4" class="bytemdVideo" controls="controls"></video> ## 导读 本论坛将深入探讨可寻找的 OCI (SOCI)。了解如何通过将 SOCI 索引与 Amazon Fargate 一起使用,显著减少启动 [Amazon ECS](https://aws.amazon.com/cn/ecs/?trk=cndc-detail) 任务所需的时间。聆听 SOCI 最佳实践,了解如何验证您正在为正确的工作负载使用 SOCI,并考虑不同的方法,自动为现有 OCI 容器映像创建 SOCI 索引。 ## 演讲精华 <font color = "grey">以下是小编为您整理的本次演讲的精华,共1000字,阅读时间大约是5分钟。如果您想进一步了解演讲内容或者观看演讲全文,请观看演讲完整视频或者下面的演讲原文。</font> 在2020年至2022年期间,Fargate增加了对并发任务的支持,以适应大规模的分布式工作负载。在此期间,Fargate同时执行的任务数量增长了8倍。此外,Fargate还增加了任务的大小和内存分配能力,如今可以支持高达16个vCPU和120GB内存的任务,相较于2021年的4倍提升。这使得大型[机器学习](https://aws.amazon.com/cn/machine-learning/?trk=cndc-detail)和数据处理工作得以顺利实施。 在提高任务扩展速度方面,Fargate与[Amazon EKS](https://aws.amazon.com/cn/eks/?trk=cndc-detail)进行了合作,使得2021年EKS工作负载的扩展时间缩短了16倍。这对于应对流量高峰提供了更快速的支持。然而,尽管取得了这些进步,但Fargate仍然面临一个重要问题——任务启动时间过长。为了解决这个问题,Himan深入研究了对Fargate和EC2架构的差异。当使用EC2时,客户可以控制实例并在一个节点上运行多个任务的副本,从而实现容器镜像的本地缓存。然而,由于Fargate的严格隔离原则,每个任务都需要在新的节点上单独运行,这意味着需要逐个下载容器镜像,这将导致启动时间的延长。 在没有额外成本的情况下,该功能适用于Linux任务。这不需要更改应用程序代码或任务定义。通过删除索引,将禁用懒加载功能。对于超过250MB的大型图像,此方法的效果尤为显著。然而,它并不适用于需要频繁访问文件系统的负载。当只需要启动部分图像时,这种方法的表现尤为出色。 Autodesk发现其任务启动时间缩短了50%,同时在资源利用率提高的情况下降低了成本。得益于更快的启动速度,Flywire应用程序的推出速度也得到了提升。Virtue现在能更有效地应对由启动时间改善引发的流量高峰。 总的来说,利用SOCHI和Fargate进行容器镜像懒加载可以在任务启动时间上实现40-60%的提升。这有助于客户提高应用程序性能并应对高流量需求。通过优化启动时间,亚马逊云科技的Fargate解决了一个关键问题,使客户能够成功运行更多复杂的容器化工作负载。 本次演讲全面阐述了在[无服务器](https://aws.amazon.com/cn/serverless/?trk=cndc-detail)环境如Fargate中容器启动缓慢的问题,以及为何图像拉取成为了主要的瓶颈。Ollie详细解释了容器镜像架构和启动过程,为为什么类似SOCHI的优化可以产生巨大影响提供了背景。 直接客户对SOCHI在实际生产中的应用的反馈令人受益匪浅。更快的启动时间的最终目标是帮助客户提高应用程序的响应能力和可靠性——这一点已经被客户所证实,SOCHI确实实现了这一目标。 **下面是一些演讲现场的精彩瞬间:** 通过采用懒加载容器镜像技术,Fargate的启动时间减少了60%。 ![](https://d1trpeugzwbig5.cloudfront.net/CON307-Reducing_AWS_Fargate_startup_times_by_lazy_loading_container_images/images/rebranded/CON307-Reducing_AWS_Fargate_startup_times_by_lazy_loading_container_images_0.png) 在对比了EC2和ECS Fargate架构后,演讲者强调了EC2如何通过允许本地缓存容器镜像来提高性能。 ![](https://d1trpeugzwbig5.cloudfront.net/CON307-Reducing_AWS_Fargate_startup_times_by_lazy_loading_container_images/images/rebranded/CON307-Reducing_AWS_Fargate_startup_times_by_lazy_loading_container_images_1.png) 演讲者详细解释了如何在Amazon ECR库中将容器镜像存储为压缩的tarball,以及如何定义镜像配置和清单的元数据。 ![](https://d1trpeugzwbig5.cloudfront.net/CON307-Reducing_AWS_Fargate_startup_times_by_lazy_loading_container_images/images/rebranded/CON307-Reducing_AWS_Fargate_startup_times_by_lazy_loading_container_images_2.png) 研究发现,在容器生命周期中复制数据虽然导致了76%的容器启动时间,但仅有6.4%的数据是有用的。 ![](https://d1trpeugzwbig5.cloudfront.net/CON307-Reducing_AWS_Fargate_startup_times_by_lazy_loading_container_images/images/rebranded/CON307-Reducing_AWS_Fargate_startup_times_by_lazy_loading_container_images_3.png) SOCI易于使用,无需修改应用代码或ECS任务定义即可实现Fargate集成。 ![](https://d1trpeugzwbig5.cloudfront.net/CON307-Reducing_AWS_Fargate_startup_times_by_lazy_loading_container_images/images/rebranded/CON307-Reducing_AWS_Fargate_startup_times_by_lazy_loading_container_images_4.png) 脚本生成的表格展示了原始数据,如任务ID、序列、时间戳和增量,以便分析任务启动时间。 ![](https://d1trpeugzwbig5.cloudfront.net/CON307-Reducing_AWS_Fargate_startup_times_by_lazy_loading_container_images/images/rebranded/CON307-Reducing_AWS_Fargate_startup_times_by_lazy_loading_container_images_5.png) 屏幕截图展示了亚马逊云科技领导讨论关于SOCI和Fargate资源以减少启动时间的部分内容。 ![](https://d1trpeugzwbig5.cloudfront.net/CON307-Reducing_AWS_Fargate_startup_times_by_lazy_loading_container_images/images/rebranded/CON307-Reducing_AWS_Fargate_startup_times_by_lazy_loading_container_images_6.png) ## 总结 亚马逊云科技旗下的Fargate服务提供了一种[无服务器](https://aws.amazon.com/cn/serverless/?trk=cndc-detail)容器化解决方案。然而,客户反映希望他们的任务启动过程能够更加迅速。经过分析发现,由于Fargate任务是独立运行的,因此无法共享镜像,从而导致拉取镜像所需的时间较长。为了解决这个问题,一种可行的方案是利用开源工具SOCHI(Storage Optimized Content Addressable Index for Hierarchical Images)实现懒加载功能。 SOCHI能够对镜像进行分析并构建内容索引。这个索引将与Amazon ECR(Amazon Elastic Container Registry)中的镜像一同存储。当Fargate任务启动时,如果已经存在SOCHI索引,那么只需要加载所需的镜像部分,而非预先获取完整的镜像。 SOCHI可以无缝地与现有的镜像系统配合使用,无需对代码进行任何修改。用户只需构建索引并将之推送至ECR(Amazon Elastic Container Registry)即可。一旦索引存在,Fargate将自动处理基于懒加载原则的任务启动。客户反馈显示,启动速度由此提高了40%至60%。对于超过250MB且不常访问文件系统数据的大型镜像,SOCHI的优化效果尤为明显。 总之,SOCHI和懒加载技术极大地提升了Fargate任务的启动效率。通过仅按需加载所需的镜像部分,可以在不改变代码或基础架构的前提下加快任务的启动速度。 ## 演讲原文 ## 想了解更多精彩完整内容吗?立即访问re:Invent 官网中文网站! [2023亚马逊云科技re:Invent全球大会 - 官方网站](https://webinar.amazoncloud.cn/reInvent2023/?s=8739&smid=19458 "2023亚马逊云科技re:Invent全球大会 - 官方网站") [点击此处](https://aws.amazon.com/cn/new/?trk=6dd7cc20-6afa-4abf-9359-2d6976ff9600&trk=cndc-detail "点击此处"),一键获取亚马逊云科技全球最新产品/服务资讯! [点击此处](https://www.amazonaws.cn/new/?trk=2ab098aa-0793-48b1-85e6-a9d261bd8cd4&trk=cndc-detail "点击此处"),一键获取亚马逊云科技中国区最新产品/服务资讯! ## 即刻注册亚马逊云科技账户,开启云端之旅! [【免费】亚马逊云科技“100 余种核心云服务产品免费试用”](https://aws.amazon.com/cn/campaigns/freecenter/?trk=f079813d-3a13-4a50-b67b-e31d930f36a4&sc_channel=el&trk=cndc-detail "【免费】亚马逊云科技“100 余种核心云服务产品免费试用“") [【免费】亚马逊云科技中国区“40 余种核心云服务产品免费试用”](https://www.amazonaws.cn/campaign/CloudService/?trk=2cdb6245-f491-42bc-b931-c1693fe92be1&sc_channel=el&trk=cndc-detail "【免费】亚马逊云科技中国区“40 余种核心云服务产品免费试用“")
目录
亚马逊云科技解决方案 基于行业客户应用场景及技术领域的解决方案
联系亚马逊云科技专家
亚马逊云科技解决方案
基于行业客户应用场景及技术领域的解决方案
联系专家
0
目录
关闭