Accueil

Nos publications

Blog

Maîtriser ses dépenses AWS : un retour d’expérience de l’AWS Summit 2025

Header AWS 3

Sommaire

  1. Budgets et anomalies : les premiers gardiens de vos finances
  2. Mieux voir pour mieux gérer : analyser ses coûts
  3. Kubernetes + Spot : duo gagnant pour le compute
  4. Le bon dimensionnement, une science (presque) exacte
  5. Graviton : performant et économique
  6. DynamoDB : bien choisir son mode de capacité
  7. Coûts réseau : les mauvaises surprises
  8. Optimisations cachées : API, logs, stockage
  9. Anticiper les coûts d’un nouveau projet
  10. Une culture FinOps à construire

Le cloud, c’est la promesse de la flexibilité, de la scalabilité, et d’une innovation plus rapide. Mais soyons honnêtes : sans un bon contrôle, la facture peut vite grimper.

Lors du AWS Summit Paris 2025, une des conférences a justement abordé un sujet sensible mais essentiel : la maîtrise des coûts sur AWS. Outils, retours d’expérience, erreurs à ne pas reproduire… Chez osoft, nous avons eu la chance d’y assister, et ce qu’on a entendu faisait clairement écho à ce que l’on retrouve dans nos missions FinOps chez nos clients. On a donc décidé de vous résumer ici, les optimisations efficaces, les leviers actionnables, et les approches que l’on trouve utiles pour reprendre le contrôle sur ses dépenses AWS sans freiner l’innovation.


Budgets et anomalies : les premiers gardiens de vos finances

Détection d'anomalie de coût Cost explorer
Détection d’anomalie de coût sur Step Functions via Cost Explorer.

Dans toute démarche FinOps, la première étape incontournable consiste à mettre en place des garde-fous efficaces pour protéger votre budget et garder le contrôle sur vos dépenses. C’est un principe largement partagé et qui a été illustré par le retour d’expérience des intervenants lors de cette conférence. Afin de concrétiser cette approche, les équipes ont misé sur des solutions AWS très efficaces pour instaurer une première couche de surveillance budgétaire.

AWS Budgets

Cet outil vous permet de surveiller en temps réel les coûts générés par vos ressources. Vous pouvez:

  • Réagir rapidement dès qu’un seuil critique est atteint, vous permettant d’anticiper et de gérer au mieux vos dépenses.
  • Définir clairement des seuils d’alerte sur vos dépenses, mensuellement ou par projet.
  • Créer des rapports programmés afin d’avoir un suivi régulier et précis.

AWS Cost Anomaly Detection

Boosté par l’intelligence artificielle et le machine learning, cet outil vous aide à:

  • Identifier rapidement et réduire les factures imprévues grâce à des alertes automatiques.
  • Configurer facilement un abonnement d’alerte pour être immédiatement informé dès qu’une anomalie est détectée.
  • Recevoir instantanément des notifications, facilitant ainsi une réaction rapide pour corriger les éventuelles dérives de coût.

Prenons l’exemple concret présenté lors de la conférence pour illustrer l’efficacité de ces outils : une hausse brutale de 808 % des coûts associés à AWS Step Functions a été repérée en seulement quelques heures. Grâce à une alerte rapide de Cost Anomaly Detection, une intervention immédiate des équipes a pu être mise en place, ce qui leur a permis de faire une économie substantielle. Sans cette vigilance automatisée, les conséquences financières auraient pu être bien plus importantes, générant du stress inutile aux équipes et potentiellement de lourdes conséquences économiques pour le projet.

Détection d'anomalie de coût Cost explorer sans garde-fous
Anomalie de coût sur Step Functions via Cost Explorer, sans garde-fous.

En mettant en place ces deux outils de surveillance, vous établissez un filet de sécurité financier, garantissant à vos projets une maîtrise optimale de leurs coûts et une tranquillité d’esprit indispensable pour vous concentrer pleinement sur vos objectifs business.

Mieux voir pour mieux gérer : analyser ses coûts

Pipeline d'exploitation CUR
Pipeline d’exploitation du Cost & Usage Report (CUR)

Pour approfondir cette démarche, les intervenants ont mis l’accent sur une visualisation claire et adaptée permettant d’aller au-delà de la simple analyse technique des coûts. Pour cela, ils ont exploité des outils clés qui facilitent l’accès et la compréhension des données financières :

  • Le Cost & Usage Report (CUR) élément central permettant d’obtenir des données précises et détaillées sur l’utilisation des ressources AWS et les coûts associés. L’exportation simplifiée de ces données facilite considérablement leur exploitation pour des analyses approfondies.
  • Afin de renforcer cette analyse et surtout de rendre les données facilement compréhensibles par les équipes métier, leur choix a été d’intégrer les informations du CUR dans Apache Superset, une plateforme open source de Business Intelligence. Cette approche a permis de créer des tableaux de bord personnalisés, croisant ainsi efficacement données techniques AWS et indicateurs métier.

L’objectif était clairement affiché : améliorer la communication sur les coûts avec les équipes métier, afin qu’elles puissent prendre des décisions éclairées grâce à une visualisation centralisée et pertinente.

Kubernetes + Spot : duo gagnant pour le compute

Un autre levier fort d’optimisation présenté lors de cette conférence, concernait la gestion du compute via Kubernetes. Dans le cas présenté, l’essentiel de la charge (environ 90 %) reposait sur des clusters Kubernetes avec des workloads de diffusion vidéo très variables selon les moments de la journée.

L’optimisation s’est appuyée sur une stratégie en plusieurs étapes, progressivement mise en place :

1. Mise en place de l’autoscaling horizontal

Indispensable pour suivre les pics du soir et les creux de la nuit. Le scaling s’effectue chaque jour, permettant de multiplier par 3 à 15 le nombre de nœuds selon la charge. Sans cet ajustement, l’infrastructure aurait été massivement surdimensionnée en permanence.

2. Basculer à 100 % sur des instances Spot pour les worker-nodes Kubernetes

Initiée progressivement, cette transition a été étalée sur plusieurs semaines. Une diversité de types d’instances EC2 a été utilisée pour maximiser la disponibilité, avec un fallback ponctuel en On-Demand si besoin.

3. Robustesse face aux interruptions Spot

Les interruptions quotidiennes ont été anticipées grâce à des termination handlers. Dès qu’une instance Spot est sur le point d’être révoquée (signal reçu 2 minutes avant), un script :

  • Lance immédiatement une nouvelle instance.
  • Éteint proprement l’application (drainage de requêtes, arrêt maîtrisé des services).

4. Temps de redémarrage optimisé

En créant des AMIs customisées, avec les composants Kubernetes et les images Docker de base déjà intégrée, les temps de boot sont passés de 5 à moins de 2 minutes. Cela garantit une résilience forte malgré la volatilité du Spot.

Résultat : une réduction de coût drastique sur la couche compute, sans compromis sur la qualité de service. L’architecture absorbe les pics de charge et se contracte pendant les périodes creuses, avec une réactivité et une stabilité maîtrisée.

Nœuds Kubernetes
Transition des nœuds Kubernetes vers 100 % d’instances Spot.

Le bon dimensionnement, une science (presque) exacte

Dans l’optimisation cloud, on pourrait croire qu’il suffit de bien choisir son type d’instance dès le départ, mais dans la réalité, le bon dimensionnement se révèle bien plus nuancé. Lors du retour d’expérience partagé par les intervenants, une méthode pragmatique et itérative s’est souvent révélée plus efficace qu’une planification trop rigide.

L’équipe a donc adopté une approche empirique et progressive :

  • Déployer d’abord en version “confort”, c’est-à-dire avec des instances volontairement surdimensionnées, pour garantir la stabilité initiale du service et observer la consommation réelle sur les premiers jours.
  • Analyser les données de charge en conditions réelles pendant quelques jours, en croisant CPU, mémoire, réseau et latence.
  • Affiner les ressources allouées à l’aide des recommandations générées par deux outils complémentaires :
    • Trusted Advisor, qui signale les surprovisionnements évidents.
    • Compute Optimizer, qui fournit des suggestions plus fines, basées sur les métriques historiques.

Ce processus d’ajustement post-déploiement a permis, dans plusieurs cas, de réduire significativement le coût des instances EC2. Comme évoqué lors de la session : « On laisse tourner quelques jours, on reçoit une alerte Cost Anomaly Detection, on regarde le comportement réel, puis on redimensionne. Résultat : une économie dès le quatrième jour. »

Evolution Cout EC2
Évolution du coût EC2 après un redimensionnement post-déploiement.

Cost Optimization Hub : tout centralisé

Pour centraliser cette logique d’optimisation continue, l’équipe s’est appuyé sur le Cost Optimization Hub. Ce tableau de bord unifié regroupe toutes les recommandations de Trusted Advisor et Compute Optimizer, et facilite leur mise en œuvre. Il permet notamment de prioriser les actions à fort impact et de suivre l’évolution des gains potentiels.

Dashboard optimisé
Un dashboard presque vide, car « tout a déjà été optimisé ». Une preuve que cette approche fonctionne — et qu’elle est réplicable.

Résultat : une gestion proactive des ressources, où les décisions sont prises sur la base de données concrètes plutôt que d’hypothèses. Une démarche simple à mettre en place, mais qui demande rigueur et suivi dans le temps pour en tirer tous les bénéfices.

Graviton : performant et économique

Parmi les pistes d’optimisation mises en avant lors de la conférence, l’adoption des processeurs Graviton s’est montré être une stratégie intéressante. Basés sur l’architecture ARM, ces processeurs conçus par AWS offrent un excellent compromis entre performance, efficacité énergétique et coût, ce qui en fait une alternative de plus en plus crédible face aux architectures “classiques”.

Des migrations faciles… quand c’est possible

L’équipe a démarré sur Graviton 2 avec des workloads EMR. Et très souvent, la migration s’est faite en modifiant une seule ligne dans Terraform. Mais c’est vraiment avec l’arrivée des services managés compatibles Graviton (notamment RDS) que les gains se sont révélés les plus nets :

  • En passant une base RDS d’Intel vers Graviton 3, l’économie constatée était de 15 à 20 %, malgré l’utilisation d’instances réservées.
  • La migration a été quasiment transparente, sans refactor majeur.
Migration RDS vers Graviton 3
Migration RDS vers Graviton 3 pour améliorer performance et coût.

Ce n’est pas toujours aussi simple

La compatibilité dépend fortement du stack technique :

  • Sur des environnements Linux ou des apps en Go, Java, Python, la transition est généralement fluide.
  • En revanche, pour les applications .NET ou Windows, un portage plus conséquent peut être nécessaire. Ce frein a été évoqué, même si dans ce cas précis, l’équipe n’était pas concernée.

Graviton est donc une solution à considérer dès lors que l’on peut rester dans un environnement Linux/ARM, notamment sur des services comme Lambda, EC2, ECS, ou RDS.

Conclusion : Graviton s’est imposé comme un levier de performance et de réduction de coûts très accessible, particulièrement adapté aux environnements modernes conteneurisés ou aux bases de données managées.

DynamoDB : bien choisir son mode de capacité

Classe DynamoDb
Choix de la classe de table DynamoDB selon la fréquence d’accès.

DynamoDB est une solution NoSQL entièrement managée, dont les coûts peuvent rapidement grimper si elle n’est pas utilisée avec discernement. Lors de la conférence, un retour d’expérience très complet a mis en lumière les subtilités de gestion de capacité, de stockage, et de réservation, avec un message clair : les vraies économies passent par une utilisation adaptée au contexte.

Trois leviers principaux ont été évoqués pour adapter finement la consommation aux besoins réels des applications :

1. Mode On-demand

Idéal pour les phases de lancement ou les charges très variables, le mode On-demand vous évite d’avoir à prédire l’activité à l’avance. Vous ne payez que pour ce qui est consommé, ce qui en fait une bonne option pour :

  • Les projets en démarrage.
  • Les pics de trafic imprévisibles.
  • Les environnements de test ou de développement.

2. Mode Provisionné avec Autoscaling

Dès que les charges deviennent plus prévisibles, ou une fois que le comportement des requêtes est bien compris, passer en Provisionné avec Autoscaling permet d’optimiser davantage. Cela permet :

  • De définir des seuils planchers et plafonds de capacité.
  • D’ajuster dynamiquement la capacité allouée selon la demande.
  • De réduire les coûts en lissant les pics d’usage.

3. Classe de stockage Infrequent Access (IA)

Enfin, pour les tables peu sollicitées — historiques, logs, archives, etc. — la classe IA permet de diviser les coûts de stockage. Ce mode est particulièrement intéressant lorsque :

  • Les données doivent être conservées mais sont rarement consultées.
  • Votre coût de stockage dépasse 50% de votre coût de débit (lectures/écritures).

Exemple concret : une application en On-demand générait des coûts élevés, mais après analyse de la charge, elle a été basculée en Provisionné avec Autoscaling → résultat : coûts divisés par 3 à 4.

Capacité On Demand vs Provisionné
Capacité On-demand vs Provisionnée sur DynamoDB.

Stockage : la vraie surprise

L’autre enseignement clé : ce ne sont pas toujours les requêtes qui coûtent le plus. Dans certains cas, les coûts de stockage et de backup dépassaient ceux des lectures/écritures.

« On avait plein de vieilles données dans nos tables DynamoDB. On a fait du tri, supprimé ce qui ne servait plus, et les économies ont été immédiates. »

Et pour les données à conserver mais rarement utilisées, la classe de stockage Infrequent Access (IA) s’est imposée. Facile à activer, elle permet une baisse de coût sans compromis sur les performances.

Conclusion : DynamoDB n’est pas un “set and forget”. Avec un peu de rigueur dans les choix de capacité, de stockage, et de nettoyage, on peut facilement réduire la facture sans impacter la résilience ou les performances.

Coûts réseau : les mauvaises surprises

Dans une démarche FinOps, certains postes de dépenses passent longtemps sous le radar, jusqu’à ce qu’ils explosent. Le réseau fait justement partie de ces coûts cachés, souvent sous-estimés, mais qui peuvent peser lourd sur la facture AWS.

La bonne nouvelle : les leviers d’optimisation sont nombreux, souvent simples à mettre en œuvre.

Identifier les zones de fuite

Un exemple parlant : des VPC endpoints avaient été créés pour tous les comptes de production, sauf un, de type « sandbox », utilisé ponctuellement. Le jour où ce compte a commencé à générer du trafic, tout est passé par la NAT Gateway, avec à la clé une explosion des coûts réseau.

Réflexe à adopter : créer les VPC endpoints pour S3 ou DynamoDB, même dans les environnements secondaires. C’est à la fois plus économique et plus sécurisé.

Refonte de l’architecture pour éviter les transferts inter-AZ

L’exemple le plus marquant est sans doute celui du trafic inter-AZ : des microservices échangeaient des fichiers vidéo entre différentes zones de disponibilité, chaque fois qu’un utilisateur faisait une demande.

Résultat : des coûts de transfert inter-AZ massifs… pour chaque segment vidéo, parfois plusieurs fois par utilisateur.

La solution a été de repenser l’architecture :

  • Un utilisateur est désormais systématiquement servi dans une seule AZ.
  • Le load balancer ne bascule sur une autre zone quen cas de défaillance.
  • Les microservices communiquent en priorité dans la même zone, réduisant drastiquement les transferts facturés.
Réduire les transferts inter-AZ
Réduction du trafic inter-AZ par regroupement des ressources.

Supprimer ce qui ne sert plus

Comme toujours, un nettoyage régulier a permis de gagner rapidement :

  • Suppression des NAT Gateway et des ELB inactifs, mais encore facturés.
  • Réduction du trafic sortant via CloudFront, qui combine performance et économies.

Ces ajustements ont permis non seulement de réduire de manière significative la facture réseau mensuelle mais également d’améliorer la performance globale. C’est un bon rappel que, dans le cloud, chaque flux aussi petit soit-il compte et que l’optimisation ne concerne pas seulement le compute ou le stockage.

Optimisations cachées : API, logs, stockage

Toutes les optimisations FinOps ne se jouent pas sur des choix d’architecture ou de type d’instance. Certaines économies, souvent ignorées, se cachent dans les petits gestes techniques du quotidien. Les intervenants de cette conférence AWS, ont mis en avant une série de bonnes pratiques “cachées”, qui, mises bout à bout, peuvent représenter un vrai levier de réduction des coûts.

Côté stockage et conteneurs : faire le ménage

Le stockage, en particulier dans les environnements conteneurisés, est un terrain fertile pour les optimisations “oubliées” :

  • Suppression automatique des images Docker inutilisées dans Amazon ECR : les images Docker s’accumulent au fil du temps, souvent sans jamais être nettoyées. En activant la rétention automatique, l’équipe a supprimé des centaines d’artefacts inutiles, réduisant immédiatement la facture sans risque pour la prod.
  • Nettoyage ciblé des logs CloudWatch : certains logs n’avaient plus de valeur après quelques jours. Leur suppression ou le passage en classe Infrequent Access a permis d’économiser jusqu’à 50 % sur l’ingestion et la conservation sans perdre d’information essentielle.

Nettoyage Images
Nettoyage automatique des images Docker inutilisées dans ECR.

Côté monitoring : ajuster le niveau de détail

Les métriques sont utiles jusqu’à ce qu’elles deviennent superflues. L’équipe utilisait Prometheus et Grafana comme observabilité principale, mais récupérait quand même beaucoup de métriques depuis CloudWatch.

Résultat : environ 80 $ par jour rien que pour des métriques non visualisées. Un audit des dashboards CloudWatch leur a permis de révéler les métriques inutilisées ou redondantes. Leur désactivation a permis :

  • De réduire la volumétrie de données collectées.
  • De limiter le nombre d’objets stockés, donc la facture associée.

Suppression des métriques CloudWatch inutilisées.

Côté API : regrouper, éviter, simplifier

Dernier levier souvent oublié : les coûts liés aux appels API.

  • Sur S3, une équipe a découvert que la majorité des coûts venaient des appels ListBucket et HeadObject. En cause : une vieille librairie validant chaque « dossier » de façon récursive, comme si S3 était un système de fichiers classique. En supprimant cette logique, et en ajoutant un peu de cache, ils ont économisé une part non négligeable de leur facture.
Réduction des appels S3 ListBucket et HeadObject inutiles.

  • Sur SQS, le passage de la suppression unitaire des messages à l’API batch a divisé les coûts par trois, simplement en regroupant les actions par lots.
Passage à l’api Batch pour la suppression des messages

Résultat : Ces ajustements discrets ont permis une réduction significative des coûts invisibles à l’œil nu, mais qui s’accumulent jour après jour. Ce type d’optimisation n’est pas toujours prioritaire, mais peu facilement faire baisser la facture sans toucher à l’architecture.

Anticiper les coûts d’un nouveau projet

Avant même d’écrire la première ligne de code, une question revient systématiquement : combien ça va coûter ? Et c’est une question qu’il faut se poser très tôt, car les choix techniques pris au démarrage ont un impact direct sur la facture… et parfois sur la pérennité du projet.

Lors de la conférence, une démonstration en live a été faite à partir d’un cas concret : concevoir une nouvelle API HTTP, avec du traitement côté Lambda et une base DynamoDB.

Le projet simulé comportait :

  • API Gateway (en frontal),
  • AWS Lambda (traitement logique, en Go sur Graviton),
  • DynamoDB (mode On-demand),
  • 500 millions de requêtes / mois, avec une taille moyenne de réponse de ~17 Ko.

Résultat de l’estimation : environ 1800 $ / mois, un chiffre jugé cohérent par rapport à d’autres projets similaires. Mais surtout, une base de discussion avec les équipes produit, pour juger la viabilité du projet, le ROI attendu et ajuster les choix techniques en fonction.

Migration Step Functions : le bon choix au bon moment

Autre exemple d’optimisation en phase de run : une Step Function en mode Standard, utilisée pour synchroniser des microservices, générait une dépense de 25 $/jour à elle seule. En creusant, l’équipe s’est rendu compte qu’elle pouvait fonctionner en version Express, bien plus adaptée à sa fréquence et à son usage court.

« On a détruit la State Machine Standard, recréé une Express… et le coût a pratiquement disparu. »

> Économie immédiate, sans perte fonctionnelle. Ce cas illustre parfaitement l’intérêt de questionner ses choix initiaux à la lumière des usages réels.

Migration Step Functions Standard vers Express.

Conclusion : estimer les coûts dès la conception, c’est éviter les mauvaises surprises… mais c’est aussi un moyen d’aligner les décisions techniques avec les objectifs produit et business. Et grâce aux outils AWS comme le Pricing Calculator, Step Functions Express, ou encore Graviton, ces choix deviennent concrets, chiffrés — et surtout maîtrisés.

Une culture FinOps à construire

Au-delà des outils, des métriques ou des optimisations techniques, ce qui ressort avec force des retours d’expérience partagés, c’est que le FinOps nest pas une discipline réservée aux experts cloud ou à la finance. C’est une culture, un état d’esprit collectif, qui se construit dans le temps.

Une approche transverse

Les intervenants l’ont rappelé : ce qui fait la différence, ce n’est pas d’avoir “une personne FinOps” dans l’organisation, mais que chaque acteur prenne conscience de son rôle dans la maîtrise des coûts. Cela commence par des actions simples :

  • Former les équipes techniques à la lecture des coûts AWS, des dashboards Cost Explorer ou Budgets.
  • Intégrer des KPIs non-fonctionnels dans les projets, comme le coût par API call ou par utilisateur actif.
  • Rendre les coûts visibles, que ce soit via des dashboards partagés avec PowerBI, des revues régulières et même des alertes budgétaires.

L’idée, c’est de ne plus parler de coût en fin de projet, mais dès la phase de design.

S’appuyer sur une expertise dédiée

Pour accompagner cette transformation, certaines équipes s’appuient sur des profils ou des partenaires FinOps. Leur rôle : structurer la démarche, identifier les gains rapides, mettre en place les bonnes pratiques et fédérer les acteurs autour d’un objectif commun.

Ce n’est pas une armée de consultants. C’est un accompagnement ciblé, qui permet d’avancer plus vite sans alourdir les équipes internes.

Chez osoft, ce type de service, nous avons pu le mettre en place chez plusieurs de nos clients à travers nos prestations FinOps, avec toujours le même objectif : rendre les coûts compréhensibles, pilotables, et alignés avec les enjeux métiers.

Conclusion

Ce retour d’expérience du AWS Summit 2025 montre bien que maîtriser ses coûts dans le cloud, ce n’est pas une contrainte, c’est un avantage compétitif.

Avec les bons outils, les bons réflexes, et une vraie culture FinOps partagée entre tech, métier et finance, il est tout à fait possible de concilier innovation continue et dépenses maîtrisées.

AWS met à disposition tous les leviers techniques. Mais comme souvent, la vraie valeur vient de la façon dont on les utilise.

Vous souhaitez en savoir plus ? Contactez-nous !

Skip to content