Lorsque je mets à jour mon application sur Amazon Elastic Container Service (ECS), je souhaite déployer de nouvelles tâches sans durée d’indisponibilité ni interruption des services en cours d'exécution.
Résolution
Pour lancer de nouvelles tâches sans interruption, effectuez les actions suivantes.
Configurer vos paramètres de déploiement pour utiliser un type de déploiement de mise à jour continue
Pour des déploiements sans interruption dans Amazon ECS, il est recommandé de définir le pourcentage minimal valide à 100 % et le pourcentage maximal valide à 200 %. Pour plus d'informations sur les paramètres de pourcentage minimal valide parfait et de pourcentage maximal valide, consultez la section Configuration du déploiement.
Pour configurer les paramètres de déploiement, procédez comme suit :
- Ouvrez la console Amazon ECS.
- Sélectionnez Cluster.
- Sur la page Détails des clusters, sous Services, sélectionnez le service que vous souhaitez mettre à jour. Puis, sélectionnez Mettre à jour.
- Dans Configuration du déploiement, configurez les valeurs de Nombre minimal de tâches en cours d'exécution % et de Nombre maximal de tâches en cours d'exécution %.
- Sélectionnez Mettre à jour le service.
Important : Amazon ECS gère le processus de déploiement de conteneurs, mais ne gère pas le routage du trafic. Si vous utilisez un équilibreur de charge, configurez-le pour acheminer le trafic vers vos tâches Amazon ECS. Si vous utilisez des déploiements bleu/vert avec AWS CodeDeploy, vérifiez la configuration de gestion du trafic.
Configurer le paramètre stopTimeout de l'instance de conteneur dans la définition de la tâche
Définissez le paramètre stopTimeout pour vous assurer que votre application dispose d'un temps de mémoire tampon suffisant pendant le déploiement pour exécuter les requêtes de tâche. Mettez à jour la définition de tâche Amazon ECS, puis, dans Créer une nouvelle révision de définition de tâche, sous Délais de conteneur - facultatif, configurez la valeur de Délai d’arrêt.
Configurer les paramètres du groupe cible ELB
Pour configurer les paramètres du groupe cible Elastic Load Balancing (ELB), procédez comme suit :
- Ouvrez la console Amazon EC2.
- Sélectionnez Groupes cibles, puis sélectionnez le groupe cible associé à votre service Amazon ECS.
- Choisissez l'onglet Détails du groupe. Puis, configurez le chemin de vérification de l’état, le protocole de vérification de l’état, le port de vérification de l’état, le seuil d’intégrité et le seuil de défectuosité avec vos valeurs.
- Choisissez l'onglet Attributs, puis configurez la valeur de Délai d'annulation de l'enregistrement pour répondre aux besoins de votre application.
Remarque : Il est recommandé de définir l'attribut de délai d'annulation de l'enregistrement afin qu'il double environ le temps de réponse de votre application.
- (Facultatif) Configurez des sessions permanentes pour votre équilibreur de charge afin que les sessions de requête d'application en cours se terminent avec la tâche existante.
Pour des stratégies de déploiement avancées, utilisez CodeDeploy
Utilisez CodeDeploy pour valider l'état du service Amazon ECS avant le déploiement.
Remarque : Le déplacement du trafic de déploiement bleu/vert en une seule fois peut entraîner des interruptions de service.
Configurer un drainage automatique pour les instances Spot
Activer le drainage des instances Spot pour vos instances de conteneur afin de drainer automatiquement les instances.