AWS n'est pas cher. AWS est imprévisible. Et l'imprévisibilité fait plus mal qu'un prix élevé mais clair. Chez Hetzner tu paies 15 €/mois et tu sais exactement ce que tu obtiens. Chez AWS tu paies 150 $/mois, puis le mois suivant tu reçois une facture de 380 $ et tu ne comprends pas pourquoi.
On a parlé dans les articles précédents de la migration vers AWS, du zero-downtime deployment et du serverless. Ils ont tous d'énormes avantages. Mais il est juste de parler aussi de l'autre côté : les coûts que tu ne vois pas dans le calculateur de prix AWS mais qui apparaissent sur ta facture.
Anatomie d'une facture AWS
Une facture AWS n'est pas un seul nombre. C'est une liste de dizaines de lignes, chacune avec sa propre métrique de facturation. EC2 est facturé à l'heure. EBS par Go stocké par mois. S3 par Go stocké PLUS par requête. Data transfer par Go transféré. ALB à l'heure PLUS par LCU. Et chaque service a des prix différents par région.
Résultat : une app simple peut générer 15–20 coûts distincts, dont peut-être 5 anticipés et le reste en « surprises ».
Top 7 des coûts cachés sur AWS
1. Data transfer — le piège principal
Les données qui entrent dans AWS sont gratuites. Les données qui sortent — non. Le trafic sortant vers internet coûte 0,09 $/Go (les premiers 100 Go/mois sont gratuits). Ça semble peu, mais pour une app qui sert des images, de la vidéo ou des API avec des payloads lourds, les coûts explosent.
Et moins évident : le data transfer entre Availability Zones coûte 0,01 $/Go dans chaque sens. EC2 dans une zone et RDS dans une autre ? Chaque requête paie un péage. ALB Multi-AZ qui route le trafic ? La moitié du trafic traverse les zones. À volume élevé, ça peut coûter des dizaines de dollars par mois sans que tu t'en rendes compte.
2. Adresses IPv4 publiques — 3,65 $/mois par IP
Depuis février 2024, AWS facture TOUTES les adresses IPv4 publiques à 0,005 $/heure (~3,65 $/mois), utilisées ou non. Avant, seules les Elastic IP non attachées coûtaient. Maintenant tu paies pour chaque IP publique : sur EC2, sur l'ALB (qui en a au moins 2), sur NAT Gateway, sur RDS si public.
Une architecture typique avec ALB + 2 EC2 + NAT Gateway + RDS a 6–7 IP publiques. Ça fait ~25 $/mois rien que pour les adresses IP. Personne ne t'a dit ça à la planification.
3. NAT Gateway — la taxe invisible
Si les instances EC2 sont dans des subnets privés (meilleure pratique de sécurité), elles ont besoin d'un NAT Gateway pour accéder à internet. NAT Gateway coûte 0,045 $/heure (32,85 $/mois) juste pour exister, PLUS 0,045 $/Go pour chaque gigaoctet traité, PLUS l'IP publique associée (3,65 $/mois).
Tu fais un npm install sur une instance ? Le trafic passe par NAT Gateway. Les instances font des health checks vers des services externes ? NAT Gateway. Tu télécharges des mises à jour de paquets ? NAT Gateway. Une architecture avec NAT Gateway dans 2 AZ coûte au minimum 70 $/mois avant d'envoyer le premier octet de données réelles.
Solution : VPC Endpoints pour les services AWS (S3, DynamoDB, ECR) — gratuits ou beaucoup moins chers que le routage via NAT Gateway.
4. Volumes EBS et snapshots
Quand tu arrêtes une instance EC2, tu ne paies plus le compute. Mais le disque EBS attaché continue à générer des coûts (0,10 $/Go/mois pour gp3). 100 Go de stockage sur une instance arrêtée, c'est 10 $/mois. Ça semble peu, mais 5 instances de dev que tu arrêtes le vendredi soir ? 50 $/mois pour des disques inutilisés.
Les snapshots EBS (backups) coûtent 0,05 $/Go/mois. Et ils sont incrémentaux, donc ne prennent pas forcément tout l'espace du volume d'origine — mais ils s'accumulent. J'ai vu des comptes avec des centaines de snapshots orphelins qui coûtaient des centaines de dollars par mois.
5. CloudWatch Logs — le prix de la surveillance
CloudWatch vient « gratuit » avec AWS, non ? Pas tout à fait. L'ingestion de logs coûte 0,50 $/Go. Le stockage des logs 0,03 $/Go/mois. Une app Node.js qui loggue les requêtes HTTP, les erreurs et les infos debug peut facilement générer 10–30 Go de logs par mois. Ça fait 5–15 $/mois rien que pour l'ingestion de logs.
Et si tu crées des custom metrics ou des dashboards : chaque custom metric coûte 0,30 $/mois (les 10 premières sont gratuites). 50 custom metrics ? 12 $/mois. Les alarmes ? 0,10 $ chacune par mois.
6. Elastic IP inutilisées et ressources orphelines
Un schéma très courant : tu crées une Elastic IP pour tester, tu la détaches de l'instance, et tu l'oublies. Une Elastic IP non attachée coûte 0,005 $/heure (3,65 $/mois). Des load balancers sans targets ? Facturés comme les actifs (minimum 18 $/mois). Les security groups, ENI et autres ressources non-compute ne coûtent pas directement, mais peuvent pointer vers des ressources compute associées que tu as oubliées.
7. RDS Extended Support
Si tu fais tourner PostgreSQL 12 sur RDS et que tu ne fais pas d'upgrade, AWS te met automatiquement sur Extended Support une fois la version en end-of-life. Ça ajoute un coût supplémentaire par vCPU par heure — et ils ne l'annoncent pas avec fanfare. Tu peux te réveiller avec ta facture RDS doublée sans rien avoir changé.
Pourquoi les prix changent (et comment le savoir)
AWS modifie les prix plus souvent qu'on ne pense. La taxe IPv4 de 2024 n'est que l'exemple le plus visible. Autres changements récents : depuis août 2025, Lambda facture aussi la phase INIT (cold start) des fonctions, avant gratuite. RDS Extended Support s'est activé automatiquement sur les anciennes versions. Le free tier a été restructuré en juillet 2025 — les nouveaux comptes reçoivent des crédits au lieu d'heures gratuites, ce qui fonctionne différemment.
Comment savoir les changements ? Surveille le blog officiel AWS, abonne-toi à l'AWS Pricing Changelog, et vérifie AWS Cost Explorer chaque mois. Mais le plus important : configure un Billing Alarm qui t'alerte quand les coûts dépassent un seuil.
Comment te protéger : les outils AWS
AWS Budgets — définis un budget mensuel (ex. 200 $) et reçois des alertes email à 50 %, 80 %, 100 % et en cas de dépassement prévu. Le premier budget est gratuit. C'est la chose la plus importante à faire sur ton compte AWS, avant tout autre service.
Cost Explorer — visualise les coûts par service, région, tag. Repère les tendances et anomalies. Disponible gratuitement dans la console.
AWS Cost Anomaly Detection — utilise le machine learning pour détecter les coûts inhabituels et t'alerter automatiquement. Gratuit et très utile.
Trusted Advisor — vérifie automatiquement les ressources idle (EC2, EBS, EIP inutilisés) et recommande des optimisations. La version de base est gratuite.
Resource tagging — taggue chaque ressource avec projet, environnement (dev/staging/prod) et owner. Puis filtre par tags dans Cost Explorer et vois exactement ce que coûte chaque projet. Sans tags, tu ne sais pas quoi optimiser.
Stratégies concrètes de réduction des coûts
Reserved Instances et Savings Plans — si tu sais que tu feras tourner RDS et EC2 au moins un an, tu économises 30–40 % avec un engagement. Les Savings Plans sont plus flexibles (s'appliquent à n'importe quel type d'instance d'une famille).
Rightsizing — la plupart des instances sont surdimensionnées. Un t3.medium à 15 % d'utilisation CPU peut être un t3.small à moitié prix. AWS Compute Optimizer recommande exactement ce qu'il faut.
Programmation automatique — les environnements dev et staging n'ont pas besoin de tourner 24/7. Un script Lambda qui arrête les environnements non-prod à 20h et les démarre à 8h économise 50 % du coût compute. Les week-ends ajoutent encore 30 %.
VPC Endpoints — pour le trafic vers S3, DynamoDB, ECR. Élimine le coût NAT Gateway pour le trafic AWS interne. Un S3 Gateway Endpoint est complètement gratuit.
Politiques de lifecycle sur S3 — déplace les données anciennes de Standard (0,023 $/Go) vers Glacier (0,004 $/Go). Les logs de plus de 30 jours n'ont probablement pas besoin d'accès instantané.
Verdict : ça vaut le coup ou pas ?
AWS n'est pas cher en soi — c'est complexe. La complexité crée des coûts inattendus pour ceux qui ne la comprennent pas. Un Hetzner CX33 à 5,49 €/mois tout compris (trafic, IP, stockage) est imbattable sur le prix pur. Mais il ne t'offre pas de failover automatique, de scalabilité élastique, de compliance ni de SLA entreprise.
La vraie différence est entre le coût visible (la facture) et le coût total de possession (TCO). Tes heures d'administration d'un VPS, le risque de downtime, le temps de setup des backups et le manque de scalabilité ont tous un prix — il n'apparaît juste pas sur une facture.
Le secret : entre dans AWS les yeux ouverts : configure des billing alarms dès le jour 1, taggue tout, révise la facture chaque mois, et ne laisse pas de ressources orphelines. L'AWS « cher » est en fait l'AWS non géré.
Publié sur teninvent.ro — TEN INVENT S.R.L. propose un audit et une optimisation des coûts AWS. Contacte-nous pour une analyse gratuite de ta facture cloud.