Coûts¶
Socle mensuel¶
| Poste | Service | Dimensionnement | Estimation |
|---|---|---|---|
| API + MCP | Container Apps | 0,5 vCPU / 1 Gio, 1 réplica permanent | ~15 € |
| Base de faits | PostgreSQL Flexible B1ms | 1 vCore burstable, 32 Gio | ~18 € |
| Documentation | Container Apps | 0,25 vCPU / 0,5 Gio, 1 réplica | ~7 € |
| Sources brutes | Blob Storage LRS | quelques Go | ~2 € |
| Image | Container Registry Basic | ~4 € | |
| Secrets | Key Vault standard | ~1 € | |
| Observabilité | Log Analytics, 30 jours | faible volume | ~4 € |
| Total | ~51 €/mois |
Très en dessous du plafond de 600 €/mois fixé pour la phase de validation.
Inférence¶
Seul poste réellement variable, et le seul qui dépende de l'usage.
| Opération | Ordre de grandeur |
|---|---|
| Onboarding d'un client (10 à 20 documents) | 1 à 3 € |
| Ajout d'un document | quelques centimes |
| Consolidation complète | moins d'un euro |
| Ré-extraction sans changement | zéro |
L'idempotence par empreinte est ce qui rend le coût courant négligeable : après l'onboarding initial, seules les nouveautés sont payées.
Les arbitrages¶
PostgreSQL plutôt qu'Azure AI Search¶
AI Search Basic coûte à lui seul ~75 €/mois pour un service qu'on utiliserait à
10 %. PostgreSQL offre le relationnel — les faits forment un graphe : un runbook
référence une stack, une convention porte une portée —, le full-text, et le jour où
les embeddings seront utiles, le vectoriel via pgvector. Un seul moteur, un quart
du prix.
Un réplica permanent plutôt que le scale-to-zero¶
Le scale-to-zero économiserait une dizaine d'euros au prix d'un démarrage à froid de plusieurs secondes à la première requête. Pour un service qu'un agent interroge en plein raisonnement, cette latence se paie en attention humaine. Mauvais échange.
B1ms burstable¶
La charge est faite de rafales courtes à l'ingestion et de requêtes très légères le reste du temps. Un tier « General Purpose » coûterait quatre fois plus pour une capacité inutilisée 99 % du temps.
Surveiller la facture¶
az consumption usage list --start-date 2026-08-01 --end-date 2026-08-31 \
--query "[?contains(instanceName,'aim')].{res:instanceName, cout:pretaxCost}" -o table
Un budget avec alerte se pose en une commande :
az consumption budget create --budget-name aim-mensuel --amount 100 \
--time-grain Monthly --category Cost \
--resource-group rg-aim-prod
Ce qui ferait grimper la facture¶
| Déclencheur | Effet | Quand s'en soucier |
|---|---|---|
| Plusieurs réplicas actifs | +15 €/réplica | Au-delà d'une dizaine d'utilisateurs simultanés |
| Embeddings | Stockage vectoriel + inférence | Au-delà d'un millier de faits par client |
| Rétention de journaux allongée | Log Analytics facture à l'ingestion | Si une exigence de conformité l'impose |
| Environnement de développement séparé | Environ le double du socle | Dès que plusieurs personnes modifient le code |
Un piège de coût évité
Les SDK Azure tracent chaque en-tête HTTP en INFO. Sur un envoi de documents,
cela représente des centaines de lignes facturées à l'ingestion par Log
Analytics, pour aucune information exploitable. Ces journaux sont mis en
sourdine explicitement.