Amazon ECS 的 Fargate 容器映像上 Linux 容器的提取行為 - Amazon Elastic Container Service

本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。

Amazon ECS 的 Fargate 容器映像上 Linux 容器的提取行為

每個 Fargate 任務均執行於專屬的一次性、單租用戶執行個體上。在 Fargate 上執行 Linux 容器時,系統不會快取執行個體上的容器映像或容器映像層。因此,對於任務中定義的每個容器映像,每個 Fargate 任務皆需從容器映像登錄檔中完整提取整個映像。提取映像所需的時間與啟動 Fargate 任務所需的時間直接相關。

請考量下列事項,以最佳化映像提取時間。

容器映像就近存取

若要縮短下載容器映像所需的時間,應將資料存放位置盡可能靠近運算資源。透過網際網路或跨 提取容器映像 AWS 區域 可能會影響下載時間。建議將容器映像存放在將執行任務的同一區域中。如果將容器映像儲存於 Amazon ECR 中,可使用 VPC 介面端點進一步縮短映像提取時間。如需詳細資訊,請參閱 Amazon ECR User Guide 中的 Amazon ECR interface VPC endpoints (AWS PrivateLink)

容器映像大小縮減

容器映像的大小會直接影響下載時間。縮減容器映像的大小或容器映像層的數量,可以縮短下載映像所需的時間。輕量型基礎映像 (例如,精簡版 Amazon Linux 2023 容器映像) 的體積,可能遠小於基於傳統作業系統的基礎映像。如需有關精簡映像的詳細資訊,請參閱 Amazon Linux 2023 User Guide 中的 AL2023 Minimal container image

替代壓縮演算法

容器映像層在推送至容器映像登錄檔時,通常會經過壓縮處理。壓縮容器映像層可減少需透過網路傳輸的資料量,以及儲存在容器映像檔登錄中的資料量。當容器映像層經由容器執行時期下載至執行個體後,該層會進行解壓縮。所使用的壓縮演算法以及執行時期可用的 vCPU 數量,皆會影響容器映像解壓縮所需的時間。在 Fargate 上,您可以透過增加任務大小或採用效能更佳的 zstd 壓縮演算法來縮短解壓縮時間。如需詳細資訊,請參閱 GitHub 上的 zstd。如需如何實作 Fargate 映像的資訊,請參閱使用 zstd 壓縮容器映像縮短 AWS Fargate 啟動時間

延遲載入容器映像

對於大型容器映像 (> 250 MB),最好是延遲載入容器映像,而不是下載所有容器映像。在 Fargate 上,您可以使用 Seekable OCI (SOCI) 從容器映像登錄檔延遲載入容器映像。如需詳細資訊,請參閱 GitHub 上的 soci-snapshotter,以及使用 Seekable OCI (SOCI) 延遲載入容器映像