Gestion de la rétention de logs dans AWS : règles du cycle de vie S3 et meilleures pratiques pour Terraform
L’un des moyens les plus simples pour que les coûts cloud augmentent sans être détectés est la conservation des journaux. Beaucoup d’organisations comprennent l’importance de collecter les journaux, moins encore savent comment optimiser et utiliser les données obtenues à partir des journaux, et encore moins savent combien de temps ces journaux doivent être conservés. Il est important de comprendre à quelle fréquence votre entreprise accède à ces journaux et si votre stratégie de stockage actuelle correspond toujours aux besoins de l’entreprise.
En travaillant avec un client pour revoir notre stratégie de journalisation, nous avons découvert un schéma courant : les journaux étaient conservés plus longtemps que nécessaire, les coûts de stockage continuaient d’augmenter, et il n’existait pas de politique standardisée sur le cycle de vie dans tous les environnements.
Pour y remédier, nous avons développé une politique formelle de conservation des journaux soutenue par la gestion du cycle de vie Amazon S3 et Infrastructure as Code (IaC). Le résultat fut une approche plus cohérente de la gestion des journaux, une réduction des coûts de stockage et une stratégie de rétention mieux alignée sur les exigences opérationnelles et de conformité.
Commencez par le but, pas les classes de stockage
L’une des plus grandes erreurs commises par les organisations est de commencer par la technologie plutôt que par les exigences professionnelles.
De nombreuses politiques de rétention sont basées sur des scénarios « et si » :
- Et si on avait besoin de journaux d’il y a deux ans ?
- Que se passe-t-il si une enquête nécessite des données historiques datant d’il y a 12 mois ?
- Et si quelqu’un demande des dossiers que nous n’avons plus ?
Bien que ces questions soient raisonnables, elles conduisent souvent à la conservation indéfinie de tout.
Commencez plutôt par quelques questions simples :
- Quel est le véritable but de ces journaux ?
- À quelle fréquence sont-ils consultés ?
- Lorsqu’ils sont consultés, quelle valeur commerciale apportent-ils ?
- Existe-t-il des exigences de conformité qui dictent les périodes de conservation ?
- Qui détient la décision concernant la conservation des loges ?
- Comment pouvons-nous réduire les coûts de stockage sans rien sacrifier ?
Bien que cela varie selon l’entreprise, dans de nombreux cas, les équipes découvrent que les journaux plus âgés de quelques mois sont rarement consultés et apportent une valeur opérationnelle limitée. Ils sont là pour être rassurés, et avant même de vous en rendre compte, vous avez des téraoctets et des téraoctets de coûts indésirables qui créent de l’espace et du désordre
L’objectif final doit être de conserver les journaux suffisamment longtemps pour soutenir les enquêtes, le dépannage, la conformité et l’audit, tout en évitant des coûts de stockage inutiles.
Différents environnements ont des besoins différents
Tous les environnements ne nécessitent pas la même période de rétention.
Les journaux de production soutiennent souvent les audits, la réponse aux incidents et les enquêtes de sécurité. Les journaux de développement sont généralement utilisés pour le débogage à court terme et peuvent généralement être conservés pour des périodes beaucoup plus courtes.
Notre stratégie de rétention était construite autour des exigences spécifiques à l’environnement. Voici un exemple de ce à quoi cela peut ressembler.
Production
Rétention : 12 mois
Les journaux de production nécessitent la plus longue conservation car ils supportent :
- Enquêtes sur la sécurité
- Intervention en cas d’incident
- Exigences de conformité et d’audit
- Analyse opérationnelle historique
Stratégie du cycle de vie :
- Jours 0–30 : S3 Standard
- Jours 31–90 : S3 Standard-IA
- Jours 91–365 : Récupération flexible du glacier S3
- Supprimer après 12 mois
QA
Rétention : 90 jours
Les journaux QA prennent principalement en charge :
- Validation de la publication
- Analyse de régression
- Dépannage historique
Stratégie du cycle de vie :
- Jours 0–60 : S3 Standard-IA
- Supprimer après 90 jours
Développement
Rétention : 30 jours
Les journaux de développement sont principalement utilisés pour :
- Débogage d’applications
- Dépannage
- Soutien au développement
Stratégie du cycle de vie :
- Jours 0–30 : S3 Standard-IA
- Supprimer après 30 jours
En adaptant la rétention à chaque environnement, nous avons évité d’appliquer des exigences coûteuses de rétention au niveau de la production là où elles n’étaient pas nécessaires.
Choisir les bonnes classes de stockage S3
Amazon S3 propose plusieurs classes de stockage, chacune conçue pour différents modes d’accès.
La leçon clé est que la sélection des classes de stockage doit être guidée par l’utilisation réelle plutôt que par des hypothèses.
Quelques questions à considérer :
- À quelle fréquence les journaux sont-ils fréquemment consultés ?
- Y a-t-il certains troncs qui sont plus valorisés que d’autres ?
- Comment sont configurés nos buckets S3 actuels ?
- Est-ce qu’ils sont rarement consultés après le premier mois ?
- À quelle vitesse doivent-ils être récupérés ?
- Les coûts de récupération sont-ils acceptables ?
Pour notre cas d’utilisation :
S3 Standard
Utilisé pour les journaux de production nouvellement créés où l’accès immédiat est important.
S3 Standard-IA
Utilisé lorsque les journaux sont encore occasionnellement consultés, mais ne nécessitent plus l’urgence des normes.
Récupération flexible du glacier S3
Utilisé pour l’archivage à long terme où l’accès est rare, mais la récupération reste possible si nécessaire.
AWS fournit une ventilation complète des classes de stockage S3 disponibles et de leurs compromis, que vous pouvez consulter ici :
https://aws.amazon.com/s3/storage-classes/
L’infrastructure en tant que code facilite la gouvernance
Une politique de rétention n’a de valeur que si elle est appliquée de manière cohérente.
Plutôt que de configurer manuellement les règles du cycle de vie à travers les environnements, nous avons mis en œuvre nos politiques via Terraform.
Cela apportait plusieurs avantages :
- Configurations réutilisables du cycle de vie
- Modifications contrôlées par les versions
- Évaluation par les pairs via pull requests
- Déploiement cohérent à travers les environnements
- Risque réduit de dérive de configuration
Infrastructure as Code a transformé la gestion de la rétention d’un effort de configuration ponctuel en un processus opérationnel reproductible.
Protège-toi contre les erreurs
Les politiques de cycle de vie automatisent la suppression et les transitions de stockage. Cela les rend puissants, mais aussi potentiellement dangereux.
Avant d’activer les expirations et transitions automatisées :
- Activer la version par bucket S3
- Valider les règles du cycle de vie dans un environnement non productif
- Confirmer les calculs de temporisation de transition
- Comportement d’expiration des objets de test
- Vérification des flux de travail de récupération
- Assurez-vous que les seaux appropriés sont ciblés
Le versionnement offre une couche supplémentaire de protection contre les suppressions accidentelles ou les règles de cycle de vie mal configurées.
Test avant production
Nous avons établi un processus de validation simple avant le déploiement :
- Créez un seau de développement dédié.
- Archive Development Logs dans le bac.
- Appliquer les politiques proposées sur le cycle de vie.
- Validez les transitions de classes de stockage.
- Vérifiez le comportement d’expiration.
- Documentez les résultats.
- Obtenez l’approbation avant de passer à d’autres groupes de développement,
- Promouvoir vers des environnements supérieurs
Cette approche nous a permis d’identifier rapidement les problèmes de configuration tout en minimisant les risques.
La gouvernance est importante
La rétention des journaux ne devrait pas appartenir à un seul ingénieur.
Des politiques de rétention réussies nécessitent la collaboration entre :
- Équipes DevOps
- Équipes de sécurité
- Équipes de conformité
- Direction des infrastructures
Une propriété claire permet de garantir que les périodes de conservation restent alignées sur les exigences commerciales et réglementaires à mesure que les systèmes évoluent.
Dernières réflexions
La politique de conservation des journaux la plus efficace n’est pas nécessairement celle qui conserve les journaux le plus longtemps.
C’est celle qui équilibre :
- Coût
- Conformité
- Sécurité
- Visibilité opérationnelle
- Simplicité
Les organisations conservent souvent des données en raison de besoins futurs hypothétiques plutôt que de besoins réels de l’entreprise. En comprenant comment les journaux sont utilisés, en alignant les périodes de conservation avec les besoins spécifiques à l’environnement, en tirant parti des classes de stockage S3 appropriées et des transitions de stockage, et en mettant en œuvre des politiques via IaC, les équipes peuvent réduire significativement les coûts de stockage tout en maintenant la visibilité réellement nécessaire.
Surtout, rappelez-vous que chaque organisation est différente. La stratégie de cycle de vie décrite ici a bien fonctionné pour notre exemple, mais les périodes de rétention, les classes de stockage et les délais d’archivage doivent toujours être dictés par vos propres exigences opérationnelles et obligations de conformité.
Auteur
Tu as aimé ce que tu as entendu ? Vous avez des questions sur ce qui vous convient ? Nous serions ravis de discuter ! Contactez-nous