Piloter son infrastructure plus intelligemment et efficacement
Application à un projet interne : Locxia
Dans le cadre de Locxia, notre plateforme de données géospatiales sur-mesure, nous proposons à nos clients l’accès à 500+ indicateurs sur l’ensemble de la France métropolitaine : bâtiments (surfaces, matériaux, consommations, besoins en rénovation), végétation, piscines, risques, météorologie, fiscalité, pollution, connaissance du territoire, etc.. L’infrastructure qui soutient ce projet doit notamment répondre à plusieurs exigences :
- Une capacité de stockage significative
(volume variable en couche d’atterrissage + 2 To en couche de travail + 1 To en couche d’exposition ≈ 3.5 To)
- Ponctuellement, une capacité de traitement élevée
(dans le cas de l’intégration d’un nouveau jeu de données, d’un calcul d’indicateurs agrégés, calculs géomatiques (analyse géographique), etc.)
Chez Ntico, notre objectif est de maîtriser une infrastructure dynamique qui répond à ces exigences tout en optimisant le coût de revient et en réduisant le gaspillage.
- AWS IAM
Nous avons défini 2 rôles (un en lecture et un en écriture) sur les ressources taggées ‘locxia’. Le rôle d’écriture nous permet, via AWS CLI / Terraform, de créer une instance RDS en choisissant la taille allouée pour le stockage, la classe d’instance, le moteur de base de données, etc..
- AWS CloudWatch associé à Grafana :
Nous offre une visibilité en temps réel via le rôle de lecture sur les métriques (et les coûts !) des ressources taggées ‘locxia’. La commande correspondante est get-metric-data (permet de récupérer des données de métriques plus détaillées et flexibles que get-metric-statistics), mais il est également possible d’utiliser le mode stream vers S3. Cette combinaison nous permet de surveiller la performance du système (charge de travail du CPU, espace de stockage libre, utilisation du SWAP, opérations de lecture / d’écriture par seconde), tout en maîtrisant nos coûts et en évitant l’exploitation inutile de ressources.
- Un orchestrateur nous permet d’orchestrer l’ensemble de ces processus :
Il se charge notamment de :
- transférer les métriques CloudWatch vers la base de données à un rythme spécifique défini en paramètre pour consommation par Grafana
- créer / modifier / supprimer les instances selon les paramètres stockés dans la base
- collecter les métriques définies par service et par tâche (le rythme de surveillance d’un bucket S3 au repos n’est pas forcément le même que celui d’un EC2 en plein travail)
- transférer les données entre les différents services (de base à base, depuis l’extérieur vers S3, etc..)
Pour conclure : en intégrant de manière cohérente Terraform, Grafana, AWS IAM et AWS CloudWatch, nous assurons à Locxia une infrastructure automatisée, sécurisée, surveillée en temps réel et flexible. Cette approche permet à Locxia de répondre efficacement aux exigences de traitement et de stockage de données géospatiales, tout en optimisant les coûts associés et en évitant le gâchis de ressource.