Passer au contenu

Comment puis-je réduire la latence lorsque j'extrais des images avec Amazon ECS ?

Lecture de 3 minute(s)
0

Je souhaite réduire la latence lorsque j'extrais des images avec Amazon Elastic Container Service (Amazon ECS).

Résolution

Réduire la taille des images

Pour réduire le temps d'extraction de l'image, réduisez la taille de l'image. Pour plus d'informations sur la réduction de la taille de l’image, consultez la page Création de bonnes pratiques sur le site Web de Docker Docs.

Si vous utilisez une image de conteneur Amazon Linux 2023, il est recommandé d'utiliser une image de conteneur minimale AL2023 afin de réduire la taille de l'image.

Utiliser le point de terminaison de région AWS le plus proche

Pour réduire la latence, utilisez le point de terminaison régional le plus proche de l'emplacement où votre application est exécutée.

Si vous utilisez un registre public tel qu'Amazon Elastic Container Registry (Amazon ECR) Public ou Docker Hub, utilisez un cache d’extraction. Grâce à un cache d’extraction, vous pouvez déployer l'image dans un registre privé avec le même point de terminaison que l'application. Pour plus d'informations, consultez la section Synchroniser un registre en amont avec un registre privé Amazon ECR.

Si l'image existe déjà dans un registre privé Amazon ECR d'une autre région, utilisez la ](https://docs.aws.amazon.com/en_us/AmazonECR/latest/userguide/replication.html)réplication d'image privée[. Grâce à la réplication d'image privée, vous pouvez déployer la même image dans la région d'application.

Définir ECS_IMAGE_PULL_BEHAVIOR sur une fois

Si vous utilisez le type de lancement Amazon Elastic Compute Cloud (Amazon EC2), modifiez le paramètre ECS_IMAGE_PULL_BEHAVIOR pour configurer le comportement d'extraction d'Amazon ECS. Pour réduire le stockage de votre instance de conteneur, définissez ECS_IMAGE_PULL_BEHAVIOR sur une fois. Cette configuration utilise des images mises en cache et extrait des images à distance uniquement si l'image n'a jamais été extraite auparavant ou si elle a été supprimée par un nettoyage automatique. Pour plus d'informations sur le nettoyage des images, consultez la section Nettoyage automatique de tâches et d’images Amazon ECS.

Dans l'exemple suivant, ECS_IMAGE_PULL_BEHAVIOUR est défini sur une fois. Lorsque la tâche avec le conteneur amazonlinux:2023-minimal est démarrée pour la première fois, l'agent Amazon ECS de l'instance EC2 extrait l'image. Pour vérifier quand l'extraction de l'image a commencé et s'est terminée, vérifiez la valeur de msg et pour vérifier le temps d'extraction de l'image, consultez les sections expiré et elapsedMs :

level=info time=2024-11-11T17:02:09Z msg="Pulling image for container concurrently" container="al2023" image="amazonlinux:2023-minimal" task="taskid"
level=info time=2024-11-11T17:02:14Z msg="Finished pulling image for container" task="taskid" container="al2023" image="amazonlinux:2023-minimal" elapsed="4.6245648s" elapsedMs=4624

Lorsque la tâche avec le conteneur amazonlinux:2023-minimal est démarrée pour la deuxième fois, l'agent Amazon ECS utilise le cache mais n'extrait pas l'image. Pour vérifier si Amazon ECS a trouvé puis utilisé l'image mise en cache, vérifiez la valeur de msg :

level=info time=2024-11-11T17:07:06Z msg="Found cached image, use it directly for container" task="taskid" container="al2023" image="amazonlinux:2023-minimal"

Pour plus d'informations sur les paramètres de configuration de l'agent Amazon ECS, consultez la section Configuration de l'agent de conteneur Amazon ECS.

Informations connexes

La réplication entre régions dans Amazon ECR est arrivée

Optimisation des performances pour Amazon ECR

AWS OFFICIELA mis à jour il y a un an