Retour aux ressources
// finops · coût

Diviser une facture AWS par deux

Sur la plupart des scale-ups que j'accompagne chez Stralya, la moitié de la facture AWS est du gaspillage pur. Voici le playbook que j'applique — dans l'ordre, du plus rentable au plus fin — sans jamais toucher à la prod.

Guide17 juil. 2026~9 min · intermédiaire
Cost ExplorerCloudWatchSavings PlansSpottagging
01

D'abord, voir où part l'argent

On ne coupe pas ce qu'on ne voit pas. Avant toute optimisation, il faut attribuer chaque dollar à un projet, un environnement, une équipe. Sans tags, Cost Explorer te montre un gros bloc opaque « EC2 : 12 000 $ » et tu es aveugle.

shellcopier
# imposer des tags = pouvoir attribuer chaque dollar a un projet
$ aws resourcegroupstaggingapi tag-resources \
--resource-arn-list arn:aws:ec2:eu-west-3:123:instance/i-0abc \
--tags Project=shop,Env=prod,Owner=julien
# ce qui n'est pas tague apparait dans "untagged" dans Cost Explorer
$ aws ce get-cost-and-usage \
--time-period Start=2026-08-01,End=2026-09-01 \
--granularity MONTHLY --metrics UnblendedCost \
--group-by Type=TAG,Key=Project
i

Active les Cost Allocation Tags dans la console de facturation, sinon tes tags n'apparaissent pas dans les rapports. C'est l'étape que tout le monde oublie.

02

Les 4 leviers, par rentabilité

Toujours dans cet ordre : on nettoie le gaspillage évident d'abord (gratuit, sans risque), on engage ensuite sur ce qui reste.

01
1 · Éteindre l’inutile

Environnements de staging qui tournent la nuit et le week-end, volumes EBS détachés, IP élastiques non utilisées. Gain immédiat, zéro risque.

02
2 · Rightsizing

Des instances surdimensionnées tournant à 5-10% de CPU. Descendre d'une taille divise la ligne par deux, sans impact perçu.

03
3 · Savings Plans

Sur la charge stable et prévisible (le socle qui tourne 24/7), un engagement 1 an paie -40% à -50% vs le on-demand.

04
4 · Spot

Pour les tâches tolérantes à l'interruption (batch, workers, CI) : jusqu'à -90%. Jamais pour la base ni le checkout.

03

Rightsizing sans deviner

Le rightsizing se fait sur des métriques, pas au feeling. On regarde le CPU et la mémoire moyens sur 30 jours : une instance à 6% de CPU depuis un mois est un candidat évident.

shellcopier
# quelles instances tournent a vide ? (CPU moyen < 10%)
$ aws cloudwatch get-metric-statistics \
--namespace AWS/EC2 --metric-name CPUUtilization \
--dimensions Name=InstanceId,Value=i-0abc \
--start-time 2026-08-01T00:00:00Z --end-time 2026-09-01T00:00:00Z \
--period 86400 --statistics Average
# t3.xlarge a 6% de CPU -> passe en t3.large : -50% sur la ligne
!

Descends d'une taille à la fois et observe 48h. Compute Optimizer d'AWS te propose des recommandations toutes prêtes — utilise-les comme point de départ, pas comme vérité absolue.

04

Le résultat, sur un cas réel

Une boutique cliente, facture mensuelle avant/après le playbook. Aucune fonctionnalité retirée, aucune dégradation de perf — juste du gaspillage supprimé et des engagements bien placés.

Avant
$11,800
– staging éteint la nuit
$9,600
– rightsizing EC2/RDS
$7,400
– Savings Plans
$5,900

De 11 800 $ à 5 900 $ par mois — exactement la moitié. Les deux premiers leviers (gratuits) ont fait le plus gros du chemin.

05

Que ça reste bas

Un budget AWS Budgets avec alerte à 80% : plus de surprise en fin de mois.
Une revue de coût mensuelle, 30 minutes, sur les 5 plus grosses lignes.
Des tags obligatoires à la création (via une policy) : le gaspillage non attribué ne revient pas.
i

Le vrai piège n'est pas la première optimisation, c'est la dérive. Les coûts cachés reviennent en silence — j'en ai fait un article à part : les 5 lignes qui plombent ta facture.

06

Savings Plans, Reserved Instances ou Spot : le bon engagement

Une fois le gaspillage nettoyé, la question devient : sur quoi s'engager, et comment ? Trois modèles coexistent et je les combine presque toujours. La règle que je répète aux équipes : engage sur ce qui est prévisible, garde le on-demand pour la respiration, et pousse le jetable sur Spot.

Savings Plans

Engagement en $/heure, pas en instance.

Compute Savings Plans : jusqu'à -66% vs on-demand, et s'applique automatiquement à EC2, Fargate et Lambda, toutes familles et régions confondues.
EC2 Instance Savings Plans : jusqu'à -72%, mais verrouillé sur une famille d'instances dans une région donnée.
C'est ce qu'AWS et moi recommandons par défaut : la flexibilité évite de se retrouver coincé si tu changes de type d'instance dans un an.
Reserved Instances

L'ancien modèle, encore utile.

Standard RI : jusqu'à -72%, mais figé sur une config précise (type, OS, tenancy).
Convertible RI : -66%, échangeable, mais l'échange est manuel.
Un vrai avantage restant : les RI EC2 zonales peuvent réserver de la capacité. Les Savings Plans, non.
i

Le tableau de comparaison officiel d'AWS est net sur les pourcentages et la flexibilité : Compute Savings Plans and Reserved Instances. À retenir : un Savings Plan ne s'applique jamais à l'usage Spot ni à ce qui est déjà couvert par un RI.

Spot : -90%, mais uniquement sur le jetable

Spot donne accès à la capacité inutilisée d'AWS avec jusqu'à -90% vs on-demand, en échange d'une seule contrainte : l'instance peut être reprise avec deux minutes de préavis. Donc jamais la base de données ni le checkout — mais parfait pour le batch, les workers, la CI, le rendering. La clé pour survivre aux interruptions, c'est la diversité : AWS recommande d'être flexible sur au moins 10 types d'instances par workload et d'utiliser la stratégie d'allocation `price-capacity-optimized` dans un Auto Scaling group.

!

Ne fais jamais de failover Spot vers on-demand « pour compenser » : AWS le déconseille explicitement, ça peut au contraire déclencher plus d'interruptions sur tes autres instances Spot. Architecture tolérante à la panne d'abord, économies ensuite. Détails : Best practices for Amazon EC2 Spot.

Compute Savings Plan
66% off
EC2 Instance SP / Standard RI
72% off
Spot (jetable)
90% off
07

Deux gisements qu'on oublie : le stockage et l'ARM

Après le compute, deux leviers passent presque toujours sous le radar alors qu'ils sont quasi gratuits à activer : le bon storage class S3 et la migration vers Graviton.

S3 : arrêter de tout payer au tarif Standard

Sur la plupart des buckets, une grosse part des objets n'est jamais relue après quelques semaines : logs, exports, uploads clients, backups. Les laisser en S3 Standard, c'est payer le tarif le plus cher pour de la donnée dormante. S3 Intelligent-Tiering règle ça sans intervention : il déplace automatiquement un objet vers un tier moins cher après 30 jours sans accès, puis vers Archive Instant Access après 90 jours — et le remonte instantanément si on le relit.

30 jsans accès → passage automatique en Infrequent Access
90 jsans accès → Archive Instant Access, toujours en accès milliseconde
90 / 180 jtiers d'archive optionnels (async) pour le coût le plus bas
< 128 Koobjets non monitorés, restent en Frequent Access
i

Intelligent-Tiering est idéal quand les patterns d'accès sont inconnus ou changeants — c'est le cas par défaut sur une scale-up. Le mécanisme et les seuils exacts sont documentés ici : How S3 Intelligent-Tiering works. Pour des durées de vie connues (logs à supprimer à 90 jours), une lifecycle policy classique reste plus simple et plus économique.

Graviton : la même charge, en ARM, moins cher

Les instances Graviton (le processeur ARM maison d'AWS) coûtent jusqu'à 20% de moins que leurs équivalents x86, pour la même performance et jusqu'à 60% d'énergie en moins. Sur un socle qui tourne 24/7, c'est une réduction qui se cumule avec le Savings Plan par-dessus. Le coût de migration ? Souvent nul pour du code managé (RDS, ElastiCache) ou des workloads containerisées multi-arch ; parfois un rebuild pour du natif compilé.

Je commence toujours par les services managés et les workers stateless : le risque est faible et le gain immédiat. Les chiffres officiels et l'outil d'estimation sont ici : AWS Graviton.

Gouvernance : détecter la dérive avant la facture

Un budget avec alerte à 80% attrape le dépassement — mais trop tard, et seulement si tu as bien fixé le seuil. AWS Cost Anomaly Detection va plus loin : un modèle de machine learning apprend ton pattern de dépense normal (par service, compte, tag) et t'alerte quand une ligne dévie, avec l'analyse de cause racine par service, compte, région ou usage type. C'est ce qui repère une instance oubliée en test ou un bucket qui explose avant que ça ne coûte un mois entier.

i

Le service est gratuit et se configure en quelques minutes avec des monitors gérés par AWS qui suivent automatiquement les nouveaux comptes et tags. Mise en route : Getting started with AWS Cost Anomaly Detection.

08

Sources & ressources

01AWS — Compute Savings Plans and Reserved InstancesLe tableau de comparaison officiel : -66% vs -72%, flexibilité, capacité réservée.02AWS — Best practices for Amazon EC2 Spot-90% vs on-demand, diversité sur 10+ types, stratégie price-capacity-optimized.03AWS — Prepare for Spot Instance interruptionsPréavis de 2 minutes, rebalance recommendations, Auto Scaling group.04AWS — How S3 Intelligent-Tiering worksSeuils exacts (30 / 90 / 180 jours), tiers d'archive, objets < 128 Ko.05AWS — EC2 GravitonJusqu'à 20% moins cher et 60% d'énergie en moins que le x86 équivalent.06AWS — Getting started with Cost Anomaly DetectionDétection par machine learning, monitors gérés par AWS, cause racine.07AWS — Understanding and managing S3 storage classesPanorama complet des classes S3 pour choisir avant d'activer une lifecycle.

Réduire une facture AWS n'est pas un coup de génie technique, c'est de la discipline : voir, couper le gaspillage évident, engager sur le stable, et surveiller. La moitié se récupère souvent sans écrire une ligne de code.