Comportamiento de extracción de imágenes de contenedores de Linux en Fargate para Amazon ECS - Amazon Elastic Container Service

Comportamiento de extracción de imágenes de contenedores de Linux en Fargate para Amazon ECS

Cada tarea de Fargate se ejecuta en su propia instancia de un solo uso y de un solo inquilino. Cuando ejecuta contenedores de Linux en Fargate, las imágenes del contenedor o las capas de imágenes del contenedor no se almacenan en caché en la instancia. Por lo tanto, para cada imagen de contenedor definida en la tarea, es necesario extraer toda la imagen del contenedor del registro de imágenes de contenedor para cada tarea de Fargate. El tiempo que se tarda en extraer las imágenes está directamente relacionado con el tiempo que se tarda en iniciar una tarea de Fargate.

Tenga en cuenta lo siguiente para optimizar el tiempo de extracción de la imagen.

Proximidad de la imagen del contenedor

Para reducir el tiempo que se tarda en descargar las imágenes del contenedor, ubique los datos lo más cerca posible de la computación. Extraer una imagen de un contenedor a través de Internet o en Regiones de AWS puede afectar al tiempo de descarga. Le recomendamos que guarde la imagen del contenedor en la misma región en la que se ejecutará la tarea. Si almacena la imagen del contenedor en Amazon ECR, utilice un punto de conexión de interfaz de VPC para reducir aún más el tiempo de extracción de la imagen. Para obtener más información, consulte Puntos de conexión de VCP de la interfaz de Amazon ECR (AWS PrivateLink) en la Guía del usuario de Amazon ECR.

Reducción del tamaño de la imagen del contenedor

El tamaño de la imagen de un contenedor afecta directamente al tiempo de descarga. Reducir el tamaño de la imagen del contenedor o el número de capas de la imagen del contenedor puede reducir el tiempo que tarda una imagen en descargarse. Las imágenes base ligeras (como la imagen mínima del contenedor de Amazon Linux 2023) pueden ser considerablemente más pequeñas que las basadas en las imágenes base de los sistemas operativos tradicionales. Para obtener más información sobre la imagen mínima, consulte AL2023 Minimal container image en la Guía del usuario de Amazon Linux 2023.

Algoritmos de compresión alternativos

Las capas de imágenes de contenedores suelen comprimirse cuando se insertan en un registro de imágenes de contenedores. Al comprimir la capa de imágenes del contenedor, se reduce la cantidad de datos que deben transferirse a través de la red y almacenarse en el registro de imágenes de contenedores. Una vez que el tiempo de ejecución del contenedor haya descargado una capa de imágenes de contenedor en una instancia, esa capa se descomprime. El algoritmo de compresión utilizado y la cantidad de vCPU disponibles para el tiempo de ejecución afectan al tiempo que se tarda en descomprimir la imagen del contenedor. En Fargate, puede aumentar el tamaño de la tarea o aprovechar el algoritmo de compresión zstd, de mayor desempeño, para reducir el tiempo necesario para la descompresión. Para obtener más información, consulte ztsd en GitHub. Para obtener información sobre cómo implementar las imágenes para Fargate, consulte Reducing AWS Fargate Startup Times with zstd Compressed Container Images.

Carga diferida de imágenes de contenedores

En el caso de imágenes de contenedores de gran tamaño (> 250 MB), lo mejor sería cargar de forma diferida una imagen de contenedor en lugar de descargar toda la imagen del contenedor. En Fargate, puede utilizar Seekable OCI (SOCI) para cargar de forma diferida una imagen de contenedor desde un registro de imágenes de contenedores. Para obtener más información, consulte soci-snapshotter en GitHub y Carga diferida de imágenes de contenedores mediante Seekable OCI (SOCI).