

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

# Amazon ECS 的 Fargate 容器映像上 Linux 容器的提取行為
<a name="fargate-pull-behavior"></a>

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

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

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

**容器映像大小縮減**  
容器映像的大小會直接影響下載時間。縮減容器映像的大小或容器映像層的數量，可以縮短下載映像所需的時間。輕量型基礎映像 (例如，精簡版 Amazon Linux 2023 容器映像) 的體積，可能遠小於基於傳統作業系統的基礎映像。如需有關精簡映像的詳細資訊，請參閱 *Amazon Linux 2023 User Guide* 中的 [AL2023 Minimal container image](https://docs.aws.amazon.com/linux/al2023/ug/minimal-container.html)。

**替代壓縮演算法**  
容器映像層在推送至容器映像登錄檔時，通常會經過壓縮處理。壓縮容器映像層可減少需透過網路傳輸的資料量，以及儲存在容器映像檔登錄中的資料量。當容器映像層經由容器執行時期下載至執行個體後，該層會進行解壓縮。所使用的壓縮演算法以及執行時期可用的 vCPU 數量，皆會影響容器映像解壓縮所需的時間。在 Fargate 上，您可以透過增加任務大小或採用效能更佳的 zstd 壓縮演算法來縮短解壓縮時間。如需詳細資訊，請參閱 GitHub 上的 [zstd](https://github.com/facebook/zstd)。如需如何實作 Fargate 映像的資訊，請參閱[使用 zstd 壓縮容器映像縮短 AWS Fargate 啟動時間](https://aws.amazon.com/blogs/containers/reducing-aws-fargate-startup-times-with-zstd-compressed-container-images/)。

**延遲載入容器映像**  
對於大型容器映像 (> 250 MB)，最好是延遲載入容器映像，而不是下載所有容器映像。在 Fargate 上，您可以使用 Seekable OCI (SOCI) 從容器映像登錄檔延遲載入容器映像。如需詳細資訊，請參閱 GitHub 上的 [soci-snapshotter](https://github.com/awslabs/soci-snapshotter)，以及[使用 Seekable OCI (SOCI) 延遲載入容器映像](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/fargate-tasks-services.html#fargate-tasks-soci-images)。