Optimisation de l’heure de lancement des tâches Amazon ECS - Amazon Elastic Container Service

Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.

Optimisation de l’heure de lancement des tâches Amazon ECS

Afin d’accélérer le lancement de vos tâches, tenez compte des recommandations suivantes.

  • Mettre en cache les images de conteneurs et les instances binpack

    Si vous l'utilisez EC2, vous pouvez configurer le comportement d'extraction de l'agent de conteneur Amazon ECS pour ECS_IMAGE_PULL_BEHAVIOR :prefer-cached. L’image est extraite à distance s’il n’y a pas d’image mise en cache. Dans le cas contraire, l'image mise en cache sur l'instance est utilisée. Le nettoyage d’image automatique est désactivé pour le conteneur afin de garantir que l’image mise en cache ne soit pas supprimée. Cela réduit le temps d’extraction des images pour les lancements ultérieurs. L’effet de la mise en cache est encore plus important lorsque vous avez une densité de tâches élevée dans vos instances de conteneur, que vous pouvez configurer à l’aide de la stratégie de placement binpack. La mise en cache des images de conteneur est particulièrement avantageuse pour les charges de travail basées sur Windows qui comportent généralement des images de conteneur de grande taille (des dizaines GBs). Lorsque vous utilisez la stratégie de placement binpack, vous pouvez également envisager d’utiliser la jonction Elastic Network Interface (ENI) pour placer davantage de tâches en mode réseau awsvpc sur chaque instance de conteneur. La jonction ENI augmente le nombre de tâches que vous pouvez exécuter en mode awsvpc. Par exemple, une instance c5.large qui peut prendre en charge l’exécution simultanée de seulement 2 tâches peut exécuter jusqu’à 10 tâches avec la jonction ENI.

  • Choix d’un mode réseau optimal

    Bien que le mode awsvpc réseau soit idéal dans de nombreux cas, ce mode réseau peut intrinsèquement augmenter la latence de lancement des tâches, car pour chaque tâche en awsvpc mode, les flux de travail Amazon ECS doivent fournir et associer un ENI en invoquant Amazon, EC2 APIs ce qui ajoute un surcoût de plusieurs secondes au lancement de vos tâches. En revanche, l’un des principaux avantages de l’utilisation du mode réseau awsvpc est que chaque tâche possède un groupe de sécurité qui autorise ou refuse le trafic. Cela signifie que vous disposez d’une plus grande flexibilité pour contrôler les communications entre les tâches et les services à un niveau plus détaillé. Si la vitesse de déploiement est votre priorité, vous pouvez envisager d’utiliser le mode bridge pour accélérer le lancement des tâches. Pour de plus amples informations, veuillez consulter Allocation d’une interface réseau à une tâche Amazon ECS.

  • Suivez le cycle de vie de lancement de vos tâches pour identifier les opportunités d’optimisation

    Il est souvent difficile de savoir combien de temps prend le démarrage de votre application. Le lancement de votre image de conteneur, l’exécution de scripts de démarrage et d’autres configurations lors du démarrage de l’application peuvent prendre un temps surprenant. Vous pouvez utiliser le point de terminaison des métadonnées de tâche pour publier des métriques afin de suivre le temps de démarrage de l’application à partir de StartedAt dans la réponse des métadonnées du conteneur jusqu’à l’heure StartedAt de votre tâche ou service. Grâce à ces données, vous pouvez comprendre comment votre application contribue au temps de lancement total et identifier les domaines dans lesquels vous pouvez réduire les frais inutiles spécifiques à l’application et optimiser les images de vos conteneurs. Pour de plus amples informations, veuillez consulter Pratiques exemplaires en matière d’autoscaling et de gestion des capacités Amazon ECS.

  • Choisissez un type d'instance optimal (pour EC2)

    Le choix du type d’instance approprié dépend de la réserve de ressources (par exemple, UC, mémoire) que vous configurez pour votre tâche. Par conséquent, lors du dimensionnement de l’instance, vous pouvez calculer le nombre de tâches pouvant être placées sur une seule instance. Un exemple simple de tâche bien placée est l’hébergement de 4 tâches nécessitant 0,5 vCPU et 2 Go de réserves de mémoire dans une instance m5.large (prenant en charge 2 vCPU et 8 Go de mémoire). Les réserves de cette définition de tâche tirent pleinement parti des ressources de l’instance.