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.
Optimisez le temps de lancement des tâches Amazon ECS
Afin d'accélérer le lancement de vos tâches, tenez compte des recommandations suivantes.
-
Cache les images du conteneur et les instances binpack
Si vous utilisez le type de EC2 lancement, 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 aucune image mise en cache. Dans le cas contraire, l'image mise en cache sur l'instance est utilisée. Le nettoyage automatique des images est désactivé pour le conteneur afin de garantir que l'image mise en cache n'est 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 debinpack
placement. 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 debinpack
placement, vous pouvez également envisager d'utiliser le trunking Elastic Network Interface (ENI) pour placer davantage de tâches en modeawsvpc
réseau sur chaque instance de conteneur. Le trunking ENI augmente le nombre de tâches que vous pouvez exécuter enawsvpc
mode. 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 le trunking ENI. -
Choisissez 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 enawsvpc
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 du modeawsvpc
réseau 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'utiliserbridge
le mode pour accélérer le lancement des tâches. Pour de plus amples informations, veuillez consulter Allouer une interface réseau pour 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 connaître le temps nécessaire au 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 des tâches pour publier des métriques permettant de suivre le temps de démarrage de l'application
ContainerStartTime
jusqu'au moment où celle-ci est prête à traiter le trafic. 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 Optimisez la ECS capacité et la disponibilité d'Amazon. -
Choisissez un type d'instance optimal (pour le type de EC2 lancement)
Le choix du type d'instance approprié dépend de la réservation de ressources (par exemple, processeur, 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éservations de mémoire dans une instance m5.large (prenant en charge 2 vCPU et 8 Go de mémoire). Les réservations de cette définition de tâche tirent pleinement parti des ressources de l'instance.