Cloud Intelligence™Cloud Intelligence™

Cloud Intelligence™

Propagation des tags ECS : résoudre l'énigme

By Ciara-CloudJun 3, 20245 min read

Cette page est également disponible en English, Deutsch, Español, Italiano, 日本語 et Português.

Récemment, l'un de nos clients s'est heurté à un problème : les tags de ressources qu'il avait attribués à son service Amazon Elastic Container Service (ECS) n'étaient pas transmis aux tâches ECS. Or, ces tags lui étaient indispensables pour suivre et gérer les coûts d'un projet précis.

Sur AWS, les Cost Allocation Tags sont incontournables pour le suivi des coûts. Il en existe deux types : les tags générés par AWS, appliqués automatiquement aux ressources, et les tags personnalisés, que vous créez et appliquez vous-même. Ces derniers offrent une grande souplesse pour organiser vos ressources.

Dans cet article, j'analyse la cause profonde de ce problème et explique pourquoi les tags personnalisés se comportent différemment des tags managés ECS. Je vous indique également comment contourner cette difficulté afin de préserver l'efficacité de votre stratégie d'allocation des coûts.

Je vous montre par ailleurs comment nous avons amélioré le suivi des coûts du client grâce aux outils FinOps performants proposés par DoiT.

Le problème — le tagging des ressources ECS

Pour mieux gérer vos ressources Amazon ECS, vous pouvez attacher vos propres métadonnées à chaque ressource via des tags. Chaque tag se compose d'une clé et d'une valeur facultative.

Notre client avait créé un cluster ECS et l'avait associé à un service. Ce service était configuré avec le tag personnalisé WebProject:CostTracking.

Tag personnalisé du service ECS

Nous avons toutefois constaté un problème : le tag du service n'était pas transmis aux tâches qu'il lançait. Dans la console ECS, il apparaissait clairement que les tâches lancées par le service ne recevaient que les tags managés ECS, et non les tags personnalisés du service.

Lorsque vous utilisez les tags managés ECS, ECS applique automatiquement les informations du cluster à toutes les nouvelles tâches lancées.

Tâche ECS sans tag personnalisé

Avec la commande describe-services de l'AWS CLI, nous avons confirmé que les tags du service n'étaient pas propagés.

$ aws ecs describe-services — services nginx-service — cluster web-cluster — region us-east-1 — query 'services[*].propagateTags' — output text

En examinant les logs CloudTrail relatifs à l'événement CreateService, nous avons pu constater que le paramètre permettant de propager les tags du service vers les tâches n'était pas défini.

Log CloudTrail montrant que le tag du service n'est pas propagé

Lorsque vous appelez l'API CreateService, vous spécifiez des paramètres tels que la définition de la tâche, le nombre souhaité de tâches, le nom du service, et éventuellement des informations sur le load balancing, le service discovery, etc.

Le paramètre --propagate-tags indique s'il faut propager les tags depuis la définition de la tâche ou depuis le service vers la tâche. Si aucune valeur n'est spécifiée, les tags ne sont pas propagés. La valeur par défaut est NONE. Les tags ne peuvent être propagés à la tâche qu'au moment de sa création.

D'après le log CloudTrail, on voit qu'à la création du service ECS, la valeur par défaut n'a pas été modifiée. Résultat : lorsque le service a créé les tâches, ses tags ne leur ont pas été transmis.

Par défaut, lorsque vous créez un service ECS depuis la console, les tags du service ne sont pas propagés à la tâche.

Par défaut, un service ECS ne propage pas ses tags

Lors de la configuration du service, si vous souhaitez que les tags du service soient également appliqués aux tâches, vous devez sélectionner cette option dans le menu déroulant. Plus précisément, il s'agit de l'option de propagation des tags depuis le service.

Option de tagging lors de la création du service

Comment résoudre le problème

Pour propager les tags personnalisés du service vers les tâches, un nouveau déploiement est nécessaire. Mais cette opération doit être effectuée depuis l'AWS CLI, et non depuis la console AWS.

En effet, la commande CLI UpdateService permet de spécifier le paramètre — propagate-tags. Ce paramètre n'est pas disponible dans la console AWS, d'où la nécessité de passer par la CLI.

La commande suivante a été utilisée pour mettre à jour le service et forcer un nouveau déploiement, afin que les tags soient propagés du service vers les tâches.

$ aws ecs update-service — cluster <CLUSTER_NAME> — service <SERVICE_NAME> — force-new-deployment — propagate-tags SERVICE

En vérifiant le log CloudTrail relatif à l'événement UpdateService, nous avons constaté que le paramètre propagateTags était désormais défini sur SERVICE.

Log CloudTrail montrant la mise à jour du service pour propager le tag aux tâches

On peut également le confirmer en exécutant la commande CLI describe-services sur le service.

En inspectant la nouvelle tâche déployée, on voit que les tags managés ECS et les tags personnalisés ont bien tous été propagés.

Tâches ECS avec tags managés ECS et tags personnalisés.

Les outils FinOps de DoiT

Une fois le problème de tagging résolu, nous nous sommes attelés à améliorer le suivi des coûts du client. Dans un monde aujourd'hui centré sur le cloud, gérer et optimiser ses opérations cloud peut s'avérer complexe. C'est là que DoiT intervient, avec une suite d'outils FinOps précieux conçus pour rationaliser et améliorer vos processus de gestion du cloud.

Reports

L'une de nos fonctionnalités phares est Reports dans DoiT Cloud Analytics, un outil puissant qui offre une visualisation claire de vos dépenses cloud.

Ce rapport filtre les coûts AWS par ressources ECS en s'appuyant sur le tag personnalisé WebProject:CostTracking, pour un suivi précis et fiable des coûts.

Ce niveau de détail offre à nos clients une compréhension plus fine de leurs dépenses cloud, et leur permet ainsi de prendre des décisions éclairées et d'optimiser efficacement leurs opérations cloud.

Alertes

Chez DoiT, nous mesurons l'importance d'une gestion proactive des coûts dans les opérations cloud. C'est pourquoi nous avons aidé ce client à mettre en place des alertes de facturation pour suivre de près ses dépenses ECS.

Nous avons créé une alerte depuis la console DoiT pour surveiller les dépenses ECS quotidiennes. La condition définie : dès que les dépenses ECS dépassent 5 € par jour, le client est notifié par e-mail.

Les alertes sont conçues pour notifier le client par e-mail dès que ses dépenses ECS quotidiennes atteignent un seuil prédéfini.

Notification par e-mail déclenchée par l'alerte

Le client peut ainsi suivre efficacement ses coûts cloud et réagir rapidement si la tendance s'écarte de ses prévisions.

Ce n'est qu'une des nombreuses manières dont nous accompagnons nos clients pour optimiser leurs opérations cloud et tirer le meilleur parti de leurs investissements.

Pour en savoir plus sur la façon dont DoiT peut vous aider à gérer vos ressources cloud, ou pour découvrir nos produits et services FinOps, n'hésitez pas à nous contacter.