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 placementbinpack. 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 placementbinpack, vous pouvez également envisager d’utiliser la jonction Elastic Network Interface (ENI) pour placer davantage de tâches en mode réseauawsvpcsur chaque instance de conteneur. La jonction ENI augmente le nombre de tâches que vous pouvez exécuter en modeawsvpc. 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
awsvpcré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 enawsvpcmode, 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éseauawsvpcest 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 modebridgepour 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
StartedAtdans la réponse des métadonnées du conteneur jusqu’à l’heureStartedAtde 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.