Le Blog Amazon Web Services

Retour d’expérience de notre partenaire TrackIT sur le balisage des ressources AWS

[Ce blog post a été rédigé par notre partenaire TrackIt.]

Le balisage des ressources sur AWS est un sujet qui ne reçoit pas l’attention qu’il mérite. Bien que cela ne semble pas être le moyen le plus direct d’économiser de l’argent ou de gérer votre compte AWS, le balisage stratégique offre aux utilisateurs AWS la visibilité nécessaire pour identifier, suivre et gérer efficacement leurs ressources sur AWS. Cela permet d’optimiser les dépenses tout en améliorant le retour sur investissement de leurs déploiements Cloud, et fournit un moyen efficace d’affecter ensuite ces dépenses aux centres de coûts appropriés. En raison de la visibilité et des informations qu’il fournit, le marquage efficace est indispensable pour les entreprises désireuses d’optimiser et de distribuer leurs coûts de cloud computing sur AWS.

Nous sommes convaincus que les entreprises qui déploient des ressources sur AWS seraient en mesure de mieux tirer parti de leurs efforts de balisage si elles disposaient dès le départ des informations, des idées et des directives appropriées. Voici donc notre point de vue complet sur le balisage AWS et la manière dont nous pensons qu’il devrait être effectué.

Que sont les balises ?

Les balises sont des métadonnées qui peuvent être attribuées aux ressources dans AWS. Chaque balise est un label composé d’une clé définie par l’utilisateur et d’une valeur facultative. Les balises fournissent aux utilisateurs des informations et un contexte sur des ressources spécifiques du cloud. Par exemple, les balises peuvent être utilisées pour identifier le propriétaire de la ressource, l’environnement dans lequel la ressource est utilisée et tout autre attribut technique ou commercial dont l’entreprise peut avoir besoin.

Pourquoi utiliser des balises sur AWS ?

Au fur et à mesure que les déploiements dans le cloud prennent de l’ampleur, les équipes sont souvent confrontées à des quantités croissantes de ressources déployées qui sont constamment en mouvement, en croissance et en évolution. Les projets peuvent être partagés entre plusieurs équipes et s’appuyer sur différentes régions et plateformes. Par conséquent, plus un déploiement en cloud est important, plus il devient difficile pour les équipes de surveiller efficacement leurs ressources. C’est là que les balises interviennent.

Les balises permettent aux entreprises de faire évoluer leurs déploiements de cloud AWS en offrant aux équipes la visibilité nécessaire pour gérer efficacement leurs ressources déployées. Les balises peuvent fournir aux équipes une visibilité sur les ressources exactes qui sont en jeu à un moment donné, sur les personnes qui les utilisent et sur l’objectif pour lequel ces ressources ont été créées. En fait, plus vous attribuez de balises de qualité à vos ressources, plus il est facile de les gérer.

Les 4 grandes catégories de balises AWS

La plupart des entreprises regroupent les balises en quatre grandes catégories :

  1. Techniques
  2. Automatisation
  3. Activités
  4. Sécurité

Balises techniques sur AWS

Il existe trois balises techniques principales – Nom, Environnement et Version – qui, si elles sont mises en œuvre correctement, peuvent aider les entreprises à se faire une idée précise des dépenses et de l’efficacité globale de leurs déploiements.

Les balises de nom sont utilisées pour identifier les ressources individuelles et sont généralement employées efficacement par la plupart des utilisateurs dans leurs efforts de gestion des ressources. Cependant, les balises d’environnement, qui sont utilisées pour aider à distinguer les infrastructures de développement, de test et de production, ne sont souvent pas utilisées de manière adéquate par la majorité des utilisateurs d’AWS. Le principal avantage de l’utilisation des balises d’environnement est qu’elles vous permettent de segmenter vos ressources en fonction de l’environnement auquel elles appartiennent (développement, production, test, etc.). Les balises d’environnement vous offrent un moyen simple d’évaluer chaque environnement indépendamment et de simplifier le processus d’identification des zones où l’utilisation des ressources n’est pas optimisée.

Les balises de version sont le troisième type de balises techniques. Bien qu’elles ne soient souvent pas aussi importantes que les balises de nom et d’environnement, les balises de version sont utiles lorsque les utilisateurs doivent faire la distinction entre différentes versions de ressources ou d’applications.

Balises d’automatisation sur AWS

Les balises d’automatisation servent d’interrupteur pour les ressources qui participent à des activités d’automatisation collectives. Les balises d’automatisation peuvent être utilisées pour participer ou non aux activités d’automatisation, ou pour identifier des versions spécifiques de ressources qui doivent être mises à jour, archivées ou supprimées. Un exemple typique qui illustre l’utilisation des balises d’automatisation est celui des organisations qui utilisent des scripts de démarrage/arrêt avec des balises d’instance AWS EC2 pour éteindre leurs environnements de développement en dehors des heures de travail afin de réduire les coûts.

Balises d’activités sur AWS

Une organisation typique utilisant le Cloud déploie souvent des ressources pour plusieurs centres de coûts tels que les ventes d’ingénierie, le marketing, les finances, les RH, etc. Les balises d’activités permettent aux utilisateurs d’identifier clairement qui est responsable d’une ressource spécifique, dans quel but la ressource est utilisée et le centre de coûts associé à la ressource. Ces balises fournissent aux utilisateurs d’AWS les informations essentielles dont ils ont besoin pour surveiller leurs déploiements et prendre des décisions judicieuses.

Les balises utilisées pour la répartition des coûts entrent dans cette catégorie. AWS Cost Explorer et Cost and Usage Report permettent aux utilisateurs de filtrer et de ventiler leurs coûts par balise. Une balise d’activités AWS couramment utilisée, telle que le centre de coûts, par exemple, permet aux organisations de mieux comprendre leurs coûts de Cloud AWS entre les différents centres de coûts.

Balises de sécurité sur AWS

Les balises de sécurité peuvent être exploitées par les utilisateurs d’AWS pour identifier et filtrer les ressources qui nécessitent une surveillance supplémentaire. De nombreuses organisations exécutent des applications qui contiennent des données sensibles soumises à des réglementations telles que HIPAA ou GDPR. Dans de tels cas, où la sécurité du déploiement est d’une importance capitale, les organisations devraient utiliser les balises de securité pour identifier facilement les ressources qui nécessitent une surveillance supplémentaire.

Les balises de securité peuvent également être utilisées pour autoriser ou refuser l’accès à des ressources spécifiques en utilisant des conditions dans les politiques de gestion des identités et des accès (IAM). Les politiques IAM d’AWS IAM (Identity and Access Management) permettent aux utilisateurs d’employer des conditions basées sur les balises pour réguler les autorisations en fonction de balises et de valeurs spécifiques.

Cas d’utilisation du balisage AWS

Gestion des ressources

Le balisage aide les utilisateurs d’AWS à identifier, filtrer et gérer efficacement leurs ressources. L’utilité d’un balisage stratégique et approprié devient souvent douloureusement évidente pour la plupart des organisations lorsqu’elles commencent à avoir un grand nombre de ressources sous un même compte, utilisées à des fins variées. En outre, le balisage devient très utile lorsque les organisations décident de déployer plusieurs nouvelles ressources à l’aide de processus automatisés tels que AWS CloudFormation ou Terraform.

Gestion des coûts

La gestion des coûts est sans doute le cas d’utilisation le plus important en ce qui concerne le marquage des ressources sur AWS. Les balises permettent aux utilisateurs d’AWS de filtrer facilement les groupes de ressources et de préparer des rapports de répartition des coûts ventilés en fonction des balises sélectionnées. Les utilisateurs peuvent facilement accéder aux rapports de répartition des coûts en utilisant des balises associées à des attributs techniques ou d’activités spécifiques tels que « production » ou « ventes ». Grâce à l’identification précise des coûts, les utilisateurs peuvent avoir une vision globale des coûts du cloud, identifier les ressources redondantes ou inutilisées, ainsi que les possibilités d’économies. L’outil Cost Explorer situé dans la console AWS Billing and Cost Management permet aux utilisateurs d’accéder à des rapports de facturation détaillés en fonction des balises qu’ils sélectionnent.

Automatisation

Le balisage est souvent utilisé pour l’automatisation. Les ressources qui sont regroupées à l’aide de balises uniques peuvent facilement être identifiées et utilisées dans des activités d’automatisation collectives. Exemples d’automatisation à l’aide de balises :

  • Automatiser l’arrêt des ressources de développement temporaires en fin de journée
  • Automatisation du déplacement des flux de travail d’une étape à l’autre à l’aide de balises de fichiers s3
  • Automatisation de la sauvegarde, de l’archivage et de la reprise après sinistre (DR) des données à l’aide de balises de cadencement qui définissent la fréquence de ces tâches

Contrôle d’accès

Les utilisateurs peuvent exploiter les balises pour établir des protocoles de contrôle d’accès. Les politiques AWS IAM (Identity and Access Management) permettent aux propriétaires de définir leurs propres conditions et de restreindre l’accès des utilisateurs à l’aide de balises. Exemples :

  • Utiliser les groupes marqués du Client VPN,
  • Marquage des instances EC2 pour restreindre l’accès à une ressource spécifique

Gestion des risques de sécurité

Les balises peuvent être exploitées pour surveiller les ressources qui nécessitent une sécurité supplémentaire. Comme nous l’avons mentionné dans le paragraphe consacré aux balises de sécurité, de nombreuses organisations utilisent le cloud pour exécuter des flux de travail contenant des informations confidentielles et hautement sensibles qui doivent être protégées à tout moment. Le marquage de ces ressources sensibles offre aux utilisateurs la visibilité nécessaire pour surveiller leurs flux de travail et leurs déploiements.

Bonnes pratiques de balisage

Identifier les besoins en matière de marquage

Les balises sont utilisées à des fins diverses, souvent par plusieurs départements et parties prenantes au sein d’une organisation. Afin de déployer une stratégie de balisage unique qui fonctionne pour tout le monde au sein de l’organisation, il est primordial de réunir d’abord tous les groupes de parties prenantes afin d’identifier les besoins exacts de chaque groupe en matière de balisage.

Moins, c’est plus

Plus l’approche du balisage est simple, plus elle est facile à mettre en œuvre et à maintenir. Gardez à l’esprit que l’ajot de balises redondantes ne fera que compliquer la maintenance du processus de balisage. Commencez modestement et ne créez de nouvelles balises que si elles sont nécessaires.

Utilisation cohérente

La cohérence est essentielle. Un manque de cohérence dans le balisage peut rendre l’ensemble du processus plus compliqué et plus long. Par exemple, si un nombre important de ressources déployées n’ont pas de balises d’allocation des coûts, l’analyse des coûts qui utilise les balises d’allocation des coûts finira inévitablement par être inexacte.

Recommandations supplémentaires pour le marquage

Voici quelques recommandations et limitations supplémentaires auxquelles il faut prêter attention :

  1. Les balises AWS sont sensibles à la casse et doivent être orthographiées correctement.
  2. Chaque balise AWS doit avoir une clé inférieure à 127 caractères Unicode en UTF-8.
  3. Chaque valeur attribuée doit être inférieure à 255 caractères Unicode en UTF-8.
  4. Les balises AWS sont de simples chaînes de caractères auxquelles vous pouvez attribuer une valeur. L’attribution d’une valeur ne crée aucune signification sémantique pour les balises AWS
  5. La valeur attribuée à une balise peut être une chaîne vide mais ne peut pas être NULL.
  6. Vous êtes limité à un maximum de 50 balises pour la plupart des services.
  7. Vous ne pouvez pas utiliser « AWS » comme préfixe pour la balise car il est réservé à AWS.
  8. Les caractères acceptables pour les balises sont les lettres, les espaces et les chiffres représentables en UTF-8, ainsi que les caractères spéciaux suivants : + – = . _ : / @.
  9. Certaines ressources AWS ne peuvent être marquées qu’à l’aide d’une API ou d’une CLI.

Balises de base

Voici quelques balises de base que tous les utilisateurs d’AWS pourraient utiliser pour gérer leurs ressources plus efficacement :

  • Nom = <chaîne>
  • Environnement = <dev|stg|prod>
  • Propriétaire = <string>
  • Projet = <string>
  • Workflow = <string>
  • Date de création = <date>

Balises supplémentaires/optionnelles

Voici des balises que les utilisateurs peuvent configurer pour obtenir des informations supplémentaires.

  • Département = <string>
  • Créateur = <string>
  • Contact technique = <string>
  • Contact de facturation = <string>
  • Terraform = <yes|no>
  • Réservé = <yes|no>
  • Cryptage = <yes|no>
  • Snapshot = <yes|no>
  • Examen de la sécurité = <date>

Comment configurer vos balises

Le processus d’ajout de balises à une ressource est assez simple mais diffère légèrement selon le type de service. Voici un exemple avec une instance EC2 :

  1. Connectez-vous à la console AWS
  2. Allez sur la page du service souhaité, EC2 dans cet exemple
  3. Naviguez jusqu’à la liste des ressources, cette étape peut différer légèrement selon le type de service et peut ne pas être nécessaire.
  4. Sélectionnez la ressource pour laquelle vous souhaitez modifier les balises, puis accédez à la section ou à l’onglet Balises.
  5. À partir de là, vous pouvez ajouter, supprimer ou modifier les clés et les valeurs des balises.

L’heure est venue pour Tagbot de s’attaquer au balisage

Chez TrackIt, nous avons appris, en travaillant avec nos clients, qu’il semble y avoir un manque général de connaissances sur le balisage et sur la manière dont les entreprises doivent l’aborder pour gérer efficacement leurs ressources sur AWS. Nous avons constaté de nombreux problèmes flagrants dans la manière dont les entreprises exécutent (ou n’exécutent pas) leurs stratégies de balisage, ce qui compromet souvent leurs chances de tirer parti de l’utilité de leurs balises AWS. C’est cette situation qui nous a poussé à concevoir la solution Tagbot.

Comment Tagbot simplifie la gestion de vos balises

Lorsque vous synchronisez votre compte AWS avec Tagbot, une liste de vos ressources est automatiquement générée. Vous pouvez alors commencer à gérer toutes vos balises d’automatisation, techniques, commerciales et de sécurité directement à partir d’un tableau de bord unique.

Tableau de bord

Le tableau de bord de Tagbot fournit aux utilisateurs d’AWS une interface web, facile à utiliser, où ils peuvent gérer toutes leurs balises. Le résumé des balises permet aux entreprises d’évaluer rapidement dans quelle mesure leurs ressources ont été balisées. Les ressources sont divisées en trois catégories : totalement non balisées (rouge), partiellement balisées (jaune) et totalement balisées (vert).

Pour plus d’information sur le tableau de bord, voir la vidéo Youtube correspondante.

Suggestions par IA

L’IA de Tagbot analyse automatiquement vos ressources et vous propose des suggestions de balisage en fonction des informations sur les ressources et des balises qui ont été mises en œuvre précédemment. Une fois que vous avez sélectionné une suggestion, les ressources sont automatiquement balisées sur AWS. Voici à quoi cela ressemble : https://www.youtube.com/watch?v=mycZYL8zOkQ.

Filtrage et tri faciles des ressources

L’interface Tagbot permet aux utilisateurs de trier et de filtrer facilement leurs ressources pour chaque colonne du tableau de bord (ID, Type, Région, Propriétaire, Projet, Nom, Environnement, Date de création).

Balises techniques sur Tagbot (lien vers la vidéo) : https://youtu.be/OJo_r3KOqHg

Balises d’automatisation sur Tagbot

L’automatisation des balises nécessite généralement l’utilisation de fonctions Lambda. Voici un exemple d’outil d’automatisation : https://github.com/trackit/aws-clean-untagged-resources. Ce dépôt GiHub a été créé par l’équipe TrackIt pour aider les ingénieurs DevOps à gérer leurs ressources EC2/RDS non balisées en les arrêtant ou en les résiliant. Les utilisateurs peuvent s’appuyer sur Tagbot pour identifier les ressources non marquées dans le tableau de bord. Ils peuvent ensuite configurer l’outil pour qu’il leur envoie automatiquement une notification sur Slack les informant des ressources EC2/RDS non balisées. Une date et une heure précises pour arrêter/résilier les ressources peuvent alors être mises en place.

Balises d’activités sur Tagbot

Les entreprises peuvent facilement utiliser des balises d’activités pour filtrer les ressources en fonction des projets, des propriétaires, des centres de coûts, etc.

Vidéo d’illustration correspondante: https://youtu.be/wddGbUimvJw

Les balises de sécurité sur Tagbot

Vidéo d’illustration correspondante: https://www.youtube.com/watch?v=3hly0q5r1UM

À propos de TrackIt

TrackIt est un partenaire de conseil avancé d’Amazon Web Services spécialisé dans la gestion du cloud, le conseil et les solutions de développement de logiciels, basé à Venice, CA. TrackIt est spécialisé dans le développement de logiciels modernes, le DevOps, l’infrastructure en tant que code, le Serverless, le CI/CD et la conteneurisation, avec une expertise particulière dans les flux de travail des médias et du divertissement, les environnements de calcul à haute performance et le stockage de données.

TrackIt est spécialisé dans la conception de logiciels de pointe avec une expertise approfondie en matière de conteneurisation, d’architectures serverless et de développement de pipelines innovants. L’équipe TrackIt peut vous aider à architecturer, concevoir, construire et déployer une solution personnalisée adaptée à vos besoins exacts. En plus de fournir des services de gestion du cloud, de conseil et de développement de logiciels modernes, TrackIt propose également un outil de gestion des coûts AWS open-source qui permet aux utilisateurs d’optimiser leurs coûts et leurs ressources sur AWS.

À propos de l’auteur

Ludovic François a fondé TrackIt, une société de conseil et d’ingénierie cloud à service complet en 2014 et en est le PDG et le directeur technique. Ludovic François a plus de 17 ans d’expérience dans des start-up, des entreprises de cloud, de stockage et de M&E. Avant de fonder TrackIt, Ludovic a occupé de nombreux rôles chez Thales Airborne Systems, DataDirect Networks et Nexsan. Ludovic est passionné par l’administration système, l’automatisation, l’éducation et la voile.