Quel est le temps minimum/moyen pour AWS ECS Fargate pour démarrer et exécuter une image Docker?
Pour des raisons d'argument, les 45 Mo anapsix/Alpine-Java
image.
Je voudrais étudier l'utilisation d'ECS Fargate pour accélérer le processus de création de logiciels localement sur un ordinateur portable/PC lent, en faisant construire le logiciel sur un serveur distant plus rapide.
.
Je ne serais pas d'accord avec la réponse acceptée étant donné mon expérience avec Fargate.
J'ai lancé des milliers de conteneurs sur Fargate et j'ai même été présenté dans un blog d'architecture AWS pour notre utilisation de Fargate. https://aws.Amazon.com/blogs/architecture/building-real-time-ai-with-aws-fargate/
Les sous-réseaux privés, derrière une passerelle NAT ont pas de temps de lancement différents pour nous que les conteneurs derrière un IGW. Si vous utilisez des instances simples NAT bien sûr, votre kilométrage peut varier .
Les heures de lancement des conteneurs à Fargate sont entièrement déterminées par la taille de votre conteneur. Fargate ne met pas en cache les conteneurs, donc chaque tâche d'exécution entraîne un pulling de docker. Si vos images sont basées sur Ubuntu, vous passerez un mauvais moment.
Nous avons un mélange de conteneurs GO from scratch et de conteneurs de nœuds Alpine.
En moyenne, sur la base des métriques que nous avons agrégées à partir de milliers de lancements, les conteneurs From scratch commencent et sont en bonne santé dans le groupe cible en 10-15 secondes.
Les conteneurs alpins prennent en moyenne 30 à 40 secondes pour se lancer et devenir sains.
Quelque chose de plus long que cela et vos conteneurs sont probablement trop grands pour que Fargate ait un sens jusqu'à ce qu'ils offrent un ecr pré-mis en cache ou quelque chose de similaire.
Pour votre exemple spécifique, nous avons des conteneurs de taille similaire, si votre point d'entrée est sain rapidement (c'est-à-dire pas 60 secondes Java heure de début), votre conteneur de 45 Mo devrait se lancer et être prêt à partir dans 30 -60 secondes.
J'ai lancé plus de 100 conteneurs maintenant à Fargate et sur un VPC public, cela prend environ 4 minutes en moyenne, mais je l'ai vu aussi longtemps que 7 à 8 minutes un mauvais jour.
Si vous le lancez sur un VPC privé, le timing peut aller rapidement vers le sud. J'ai vu qu'il fallait 2 heures pour lancer un conteneur Fargate si l'instance NAT est surchargée.
Espérons qu'AWS accélérera cela au fil du temps. Il ne devrait pas me falloir plus de temps pour lancer un conteneur Fargate que pour télécharger mon image Docker sur ECR.
J'attends toujours la mise en cache dans Fargate qui est disponible dans ECS + EC2.
Néanmoins, c'est mon expérience avec les conteneurs Docker sur Fargate.
Taille du conteneur en fonction du temps de démarrage:
4000 Mo ~ 5 minutes
2400 Mo ~ 4 minutes
1000 Mo ~ 2 minutes
350 Mo ~ 50 secondes
On pourrait utiliser ECS_IMAGE_PULL_BEHAVIOUR = prefer-cached sur le type de lancement EC2 pour réduire considérablement les délais de démarrage de l'agent.