xpeditis2.0/docs/deployment/CLOUD_COST_COMPARISON.md
2026-03-26 18:08:28 +01:00

549 lines
29 KiB
Markdown
Raw Blame History

This file contains invisible Unicode characters

This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# Comparatif Cloud — Coûts de Production Xpeditis 2.0
## Aide à la décision : AWS vs GCP vs Azure vs Hetzner vs OVHcloud vs DigitalOcean vs Scaleway
> Analyse réalisée le 23 mars 2026 — prix on-demand vérifiés sur les sites officiels
> Scénarios : 100 / 1 000 / 10 000 utilisateurs sur Kubernetes
> MinIO → stockage objet S3-compatible de chaque fournisseur
> ⚠️ **Hetzner augmente ses prix de ~35% le 1er avril 2026** — prix actuels ET futurs indiqués
---
## Table des matières
1. [Ce que l'app exige comme infrastructure](#1-ce-que-lapp-exige-comme-infrastructure)
2. [Vue d'ensemble des fournisseurs](#2-vue-densemble-des-fournisseurs)
3. [Tableau comparatif — 100 utilisateurs](#3-tableau-comparatif--100-utilisateurs)
4. [Tableau comparatif — 1 000 utilisateurs](#4-tableau-comparatif--1-000-utilisateurs)
5. [Tableau comparatif — 10 000 utilisateurs](#5-tableau-comparatif--10-000-utilisateurs)
6. [Récapitulatif global](#6-récapitulatif-global)
7. [Analyse détaillée par fournisseur](#7-analyse-détaillée-par-fournisseur)
8. [Option hybride recommandée](#8-option-hybride-recommandée)
9. [Matrice de décision](#9-matrice-de-décision)
10. [Recommandation finale](#10-recommandation-finale)
---
## 1. Ce que l'app exige comme infrastructure
Avant de comparer, voici ce que Xpeditis consomme réellement (issu de l'analyse du code) :
| Composant | Besoin réel | Impact coût |
|---|---|---|
| **Kubernetes** | 215 pods NestJS + 18 pods Next.js | Control plane + nodes |
| **PostgreSQL 15** | 18 tables, audit_logs volumineuses, pg_trgm | Instance avec au moins 4 GB RAM en prod |
| **Redis 7** | Cache rate quotes TTL 15 min + pub/sub WebSocket | Au moins 1 GB, réplication si multi-pods |
| **Stockage objet (S3)** | PDFs booking, docs carrier (max 10 MB), exports | ~10 GB/100 users → ~1 TB/10 000 users |
| **Load Balancer** | WebSocket sticky sessions obligatoires | 1 LB avec support WS |
| **Email** | 10 types d'emails, PDFs en pièce jointe | SES ou SMTP tiers |
| **Secrets** | JWT, DB passwords, 5 API keys carriers | Secrets Manager ou équivalent |
| **Appels externes** | 5 carriers APIs à chaque rate search (circuit breaker 5s) | Trafic sortant → coût NAT/egress |
| **DNS + TLS** | Route 53 ou équivalent + cert-manager | ~$1-3/mois |
**Spécificité critique :** Le SDK AWS S3 v3 est déjà utilisé dans le code avec support d'endpoint personnalisé → **zéro modification de code** pour utiliser n'importe quel stockage S3-compatible (Hetzner Object Storage, DO Spaces, OVH, Scaleway).
---
## 2. Vue d'ensemble des fournisseurs
| Fournisseur | Kubernetes | DB Managée | RGPD EU | Egress gratuit | Self-managed DB | Difficulté ops |
|---|---|---|---|---|---|---|
| **Hetzner** 🇩🇪 | k3s free / HKE free | ❌ (tiers: Neon, Railway) | ✅ Allemagne/Finlande | Non ($0.045/GB) | ✅ DIY | ⭐⭐⭐ Élevée |
| **OVHcloud** 🇫🇷 | MKS gratuit (CP) | ✅ Partiel (limité) | ✅ France | ✅ **Oui** | ✅ DIY sur VM | ⭐⭐ Moyenne |
| **DigitalOcean** 🇺🇸 | DOKS gratuit (CP) | ✅ PG + Redis | ❌ US (AMS dispo) | Non ($0.01/GB) | Optionnel | ⭐ Faible |
| **Scaleway** 🇫🇷 | Kapsule gratuit (CP) | ✅ PostgreSQL | ✅ Paris | ✅ Inclus | Optionnel | ⭐ Faible |
| **GCP** 🌐 | GKE Autopilot/Standard | ✅ Cloud SQL | ✅ europe-west1 | Non ($0.12/GB) | Optionnel | ⭐ Faible |
| **AWS** 🌐 | EKS ($73/mois CP) | ✅ RDS + ElastiCache | ✅ eu-west-3 Paris | Non ($0.09/GB) | Optionnel | ⭐ Faible |
| **Azure** 🌐 | AKS gratuit (CP) | ✅ Flexible Server | ✅ westeurope | Non ($0.087/GB) | Optionnel | ⭐ Faible |
| **Vultr** 🇺🇸 | VKE ($10/mois CP) | ✅ Partiel | ❌ US | Non | Optionnel | ⭐ Faible |
---
## 3. Tableau comparatif — 100 utilisateurs
**Hypothèses :** 1020 utilisateurs simultanés, ~50 bookings/mois, 500 rate searches/jour, 5 GB stockage, 500 emails/mois
### Configuration retenue
- 2 worker nodes (backend NestJS × 2 pods + frontend Next.js × 1 pod)
- PostgreSQL 2 vCPU / 4-8 GB
- Redis 0.5-1 GB
- Stockage objet 20 GB
- 1 Load Balancer
| Fournisseur | Compute | DB | Redis | Stockage | LB/Réseau | **Total/mois** |
|---|---|---|---|---|---|---|
| **Hetzner** *(k3s self-managed)* | 2× CX32: **€13.60** | CX22 self-host: **€3.79** | Shared: **€0** | Object Storage: **€4.99** | LB11: **€5.39** | **🥇 ~€28 (~$30)** |
| **Hetzner** *(post 1 avril)* | 2× CX32: **€18.38** | CX22: **€5.11** | Shared: **€0** | **€4.99** | LB11: **€7.49** | **~€36 (~$39)** |
| **DigitalOcean** *(DOKS)* | 2× s-2vcpu-4gb: **$48** | PG Basic 2 GB: **$30** | Redis 1 GB: **$15** | Spaces: **$5** | LB: **$12** | **~$110** |
| **OVHcloud** *(MKS)* | 2× B2-7: **€48** | B2-7 self-host: **€24** | Shared pod: **€0** | OBJ 20 GB: **€0.22** | LB: **€15** | **~€87 (~$94)** |
| **Scaleway** *(Kapsule)* | 2× DEV1-L: **€61** | DB-DEV-S self-host: **€14** | DEV1-S: **€7** | OBJ 20 GB: **€0.20** | LB: **€9.99** | **~€92 (~$100)** |
| **GCP** *(GKE Autopilot)* | Autopilot pods: **~$60** | Cloud SQL db-f1-small: **$26** | Memorystore 1 GB: **$39** | GCS 20 GB: **$0.40** | LB: **$18** | **~$143** |
| **Vultr** *(VKE)* | 2× 2vCPU/4GB: **$40** | PG managed ~$30: **$30** | Redis: **$15** | Block: **$5** | VKE CP: **$10** | **~$100** |
| **AWS** *(EKS, eu-west-3)* | 2× t3.medium: **$69** | db.t4g.medium: **$60** | cache.t4g.micro: **$12** | S3 20 GB: **$0.46** | EKS: **$73** + ALB: **$22** + NAT: **$34** | **~$270** |
| **Azure** *(AKS)* | 2× D2s_v3: **$140** | PG B1ms flex: **$12**\* | Redis C0: **$14** | Blob 20 GB: **$0.36** | AKS: **$0** + LB: **$18** | **~$185** |
| **GCP** *(GKE Standard)* | GKE CP: **$72** + 2× e2-std-2: **$97** | Cloud SQL: **$100** | Memorystore: **$39** | GCS: **$0.40** | LB: **$18** | **~$327** |
> \* Azure B1ms est très limité (1 vCPU), insuffisant pour une production sérieuse. Compte tenu des vraies instances : ~$165+
**⚠️ AWS à 100 users :** Le control plane EKS ($73) + NAT Gateway ($34) représentent ~40% de la facture — cher pour si peu d'utilisateurs.
---
## 4. Tableau comparatif — 1 000 utilisateurs
**Hypothèses :** 100300 simultanés, ~500 bookings/mois, 5 000 searches/jour, 200 GB stockage, 15 000 emails/mois, PostgreSQL Multi-AZ ou HA
### Configuration retenue
- 34 worker nodes avec HPA
- PostgreSQL 4 vCPU / 8-16 GB **avec HA/réplication**
- Redis 1-2 GB répliqué (pub/sub WebSocket multi-pods)
- Stockage objet 200 GB
- 1 Load Balancer
| Fournisseur | Compute | DB (HA) | Redis | Stockage | LB/Réseau | **Total/mois** |
|---|---|---|---|---|---|---|
| **Hetzner** *(k3s self-managed)* | 1×CX22 CP + 3×CX42: **€60.60** | CX32 PG + 100 GB vol: **€11.20** | CX22 Redis: **€3.79** | Object Storage: **€4.99** | LB21: **€16.40** | **🥇 ~€97 (~$105)** |
| **Hetzner** *(post 1 avril)* | **€81.69** | **€15.12** | **€5.11** | **€4.99** | **€22.14** | **~€129 (~$140)** |
| **OVHcloud** *(MKS + self-hosted)* | 3× B2-15: **€138** | B2-15 PG primary + B2-7 replica: **€70** | B2-7 Redis: **€24** | OBJ 200 GB: **€2.20** | LB: **€15** | **~€249 (~$270)** |
| **DigitalOcean** *(DOKS + managed)* | 3× s-4vcpu-8gb: **$144** | PG 4 GB HA: **$120** | Redis 2 GB: **$30** | Spaces 200 GB: **$10** | LB: **$12** | **~$316** |
| **Scaleway** *(Kapsule + managed)* | 3× PLAY2-MICRO: **€118** | DB-PRO2-XXS managed: **€80** | PLAY2-NANO Redis: **€20** | OBJ 200 GB: **€2** | LB: **€9.99** | **~€230 (~$249)** |
| **Vultr** *(VKE)* | 3× 4vCPU/8GB: **$120** | PG managed ~$60: **$60** | Redis: **$30** | Block 200 GB: **$20** | VKE CP: **$10** | **~$240** |
| **GCP** *(GKE Autopilot)* | Autopilot 8 pods: **~$200** | Cloud SQL n1-std-2 HA: **$250** | Memorystore 2 GB: **$78** | GCS: **$5** | LB: **$20** | **~$553** |
| **AWS** *(EKS, eu-west-3)* | EKS CP: **$73** + 3×t3.xlarge: **$414** | db.r6g.large Multi-AZ: **$496** | cache.r6g.large: **$150** | S3 200 GB: **$4.60** | ALB: **$38** + 2×NAT: **$73** | **~$1 249** |
| **Azure** *(AKS + managed)* | AKS CP: **$72** + 3×D4s_v3: **$420** | PG D2ds_v6 HA: **$327** | Redis C2 Standard: **$109** | Blob: **$4** | LB: **$25** | **~$957** |
| **GCP** *(GKE Standard)* | GKE CP: **$72** + 3×e2-std-4: **$292** | Cloud SQL n1-std-4 HA: **$460** | Memorystore 2 GB: **$78** | GCS: **$5** | LB: **$20** + NAT: **$20** | **~$947** |
---
## 5. Tableau comparatif — 10 000 utilisateurs
**Hypothèses :** 1 0003 000 simultanés, ~5 000 bookings/mois, 50 000 searches/jour, 1-2 TB stockage, 150 000 emails/mois
### Configuration retenue
- 68 worker nodes avec autoscaling
- PostgreSQL 8 vCPU / 32 GB HA + read replica
- Redis cluster/réplication (WebSocket + cache massif)
- Stockage objet 1 TB avec lifecycle policies
- 2 Load Balancers
| Fournisseur | Compute | DB (HA + replica) | Redis | Stockage | LB/Réseau | **Total/mois** |
|---|---|---|---|---|---|---|
| **Hetzner** *(k3s self-managed)* | 3×CX22 CP + 6×CX52: **€227** | CCX23 PG+replica CX32: **€35** + 500 GB vol: **€22** | CX42 Redis: **€16.40** | Object Storage + extra: **€15** | LB31: **€29** | **🥇 ~€344 (~$373)** |
| **Hetzner** *(post 1 avril)* | **€306** | **€47 + €29** | **€21.49** | **€15** | **€39** | **~€458 (~$496)** |
| **OVHcloud** *(MKS + self-hosted)* | 5× B2-30: **€470** | B2-30 PG + B2-15 replica: **€140** | B2-15 Redis: **€46** | OBJ 1 TB: **€11** | 2× LB: **€30** | **~€697 (~$756)** |
| **DigitalOcean** *(DOKS + managed)* | 6× g-4vcpu-16gb: **$720** | PG 8 GB HA: **$240** | Redis 4 GB HA: **$60** | Spaces + CDN: **$40** | 2× LB: **$24** | **~$1 084** |
| **Scaleway** *(Kapsule + managed)* | 5× GP1-S: **€683** | DB-PRO2-S managed (8 vCPU): **€320** | PLAY2-MICRO Redis: **€39** | OBJ 1 TB: **€10** | 2× LB: **€20** | **~€1 072 (~$1 163)** |
| **Vultr** *(VKE)* | 6× 4vCPU/16GB HP: **$528** | PG managed large ~$120: **$120** | Redis cluster: **$60** | Block: **$50** | VKE CP: **$10** | **~$768** |
| **GCP** *(GKE Autopilot)* | Autopilot 20 pods: **~$600** | Cloud SQL n1-std-8 HA: **$800** | Memorystore 5 GB: **$195** | GCS + CDN: **$30** | LB: **$50** | **~$1 675** |
| **AWS** *(EKS, eu-west-3)* | EKS CP: **$73** + 6×m6i.xlarge: **$981** | db.r6g.2xlarge Multi-AZ: **$1 518** + replica: **$700** | cache.r6g.xlarge cluster: **$1 452** | S3 + CDN: **$72** | 2×ALB: **$110** + 2×NAT: **$111** | **~$5 017** |
| **Azure** *(AKS + managed)* | AKS CP: **$72** + 6×D4s_v3: **$840** | PG D4ds_v6 HA: **$654** + replica: **$327** | Redis P1: **$394** | Blob + CDN: **$50** | 2× LB: **$40** | **~$2 377** |
| **GCP** *(GKE Standard)* | GKE CP: **$72** + 6×e2-std-4: **$583** | Cloud SQL n1-std-8 HA: **$1 600** | Memorystore 5 GB: **$195** | GCS + CDN: **$30** | LB: **$60** | **~$2 540** |
---
## 6. Récapitulatif global
### Coût mensuel all-in (production viable)
| Fournisseur | 100 users | 1 000 users | 10 000 users | RGPD EU | Ops requis |
|---|---|---|---|---|---|
| 🥇 **Hetzner (self-managed, actuel)** | **€28** | **€97** | **€344** | ✅ 🇩🇪 | ⭐⭐⭐ Élevé |
| 🥈 **Hetzner (post 1 avril)** | **€36** | **€129** | **€458** | ✅ 🇩🇪 | ⭐⭐⭐ Élevé |
| 🥉 **OVHcloud (self-hosted DB)** | **€87** | **€249** | **€697** | ✅ 🇫🇷 | ⭐⭐ Moyen |
| 4**Vultr VKE** | **$100** | **$240** | **$768** | ❌ US | ⭐ Faible |
| 5**DigitalOcean DOKS** | **$110** | **$316** | **$1 084** | ❌ US\* | ⭐ Faible |
| 6**Scaleway Kapsule** | **€92** | **€230** | **€1 072** | ✅ 🇫🇷 | ⭐ Faible |
| 7**GCP GKE Autopilot** | **$143** | **$553** | **$1 675** | ✅ Belgium | ⭐ Faible |
| 8**Azure AKS** | **$185** | **$957** | **$2 377** | ✅ Netherlands | ⭐ Faible |
| 9**GCP GKE Standard** | **$327** | **$947** | **$2 540** | ✅ Belgium | ⭐ Faible |
| 🔟 **AWS EKS** | **$270** | **$1 249** | **$5 017** | ✅ 🇫🇷 Paris | ⭐ Faible |
> \* DigitalOcean propose une région Amsterdam (AMS3) pour la conformité RGPD européenne.
### Rapport qualité/prix — Score global
```
Hetzner post-1er avril ████████████████████ 1x (référence)
OVHcloud ████████████░░░░░░░░ 3x vs Hetzner
Vultr ████████████░░░░░░░░ 3x
DigitalOcean ████████░░░░░░░░░░░░ 3.5x
Scaleway ████████░░░░░░░░░░░░ 3.5x
GCP Autopilot ████░░░░░░░░░░░░░░░░ 5x
Azure ███░░░░░░░░░░░░░░░░░ 6x
GCP Standard ██░░░░░░░░░░░░░░░░░░ 7x
AWS EKS █░░░░░░░░░░░░░░░░░░░ 13x (à 10 000 users)
```
---
## 7. Analyse détaillée par fournisseur
### 🟢 Hetzner Cloud — Le moins cher de loin
**Avantages :**
- Prix **5 à 15× inférieurs** à AWS/GCP pour des ressources équivalentes
- Serveurs ARM64 Ampere (CAX-series) : encore moins chers et performants pour des workloads Node.js
- Object Storage S3-compatible inclus dès €4.99/mois (1 TB) — **remplace MinIO directement**
- Kubernetes gratuit (HKE control plane free ou k3s self-managed)
- Data centers en Allemagne et Finlande → RGPD natif
- Trafic entrant gratuit, sortant €0.045/GB (bien moins qu'AWS)
- [hetzner-k3s](https://github.com/vitobotta/hetzner-k3s) : cluster Kubernetes en 5 minutes avec 1 commande
- **⚠️ Hausse de prix ~35% le 1er avril 2026** — même après, Hetzner reste 410× moins cher qu'AWS
**Inconvénients :**
- **Pas de base de données managée native** → il faut soit self-hoster, soit utiliser un service tiers
- Pas de managed Redis natif
- Support limité (pas de support 24/7 téléphonique enterprise)
- PostgreSQL self-hosted = vous gérez les backups, les mises à jour, la HA
- Moins de services managés (pas d'équivalent IAM, Secrets Manager, WAF natifs)
**Options pour la base de données sur Hetzner :**
| Solution | Prix | Trade-off |
|---|---|---|
| Self-hosted PG sur CX32 | €6.80-9.19/mois | Vous gérez tout |
| **Neon.tech** (serverless PG) | $0-19/mois (free tier généreux) | Parfait pour dev, pas pour 10 000 users |
| **Railway.app** (managed PG) | $5/mois + usage | Simple, backups auto |
| **Supabase** (managed PG) | $25/mois (Pro) | PostgreSQL + Auth + Storage |
| **Ubicloud PG sur Hetzner** | ~$10-50/mois | Managed, tourne sur Hetzner |
**Verdict Hetzner :** Idéal si vous avez les compétences ops pour gérer PostgreSQL et Redis. Le ROI est massif. Recommandé dès la phase MVP.
---
### 🟡 OVHcloud — Le meilleur compromis européen
**Avantages :**
- **Entreprise française**, RGPD natif, données en France
- **Zéro frais d'egress** — si votre app génère beaucoup de trafic sortant (carrier APIs, PDFs), c'est une économie réelle
- MKS Managed Kubernetes control plane **gratuit**
- Pricing prévisible sans surprises sur la facture
- Object Storage S3-compatible à €0.011/GB (moins cher que AWS S3)
- **Bonne alternative à AWS pour les clients qui exigent la souveraineté française**
**Inconvénients :**
- Interfaces et UX moins polies qu'AWS/DO
- CloudDB (DB managée) est limitée en ressources et fonctionnalités
- Support parfois lent selon les retours communauté
- Moins de services managés (Redis non managé natif)
- Pas de CDN aussi performant que CloudFront
**Verdict OVHcloud :** Excellent choix si la souveraineté des données en France est un critère client ou réglementaire. L'absence d'egress est un vrai avantage sur les gros volumes.
---
### 🟡 DigitalOcean — Le plus simple à utiliser
**Avantages :**
- Interface la plus simple et intuitive du marché
- **Managed PostgreSQL + Redis de qualité** à prix raisonnable
- DOKS (Kubernetes) avec control plane **gratuit**
- DO Spaces : S3-compatible, €5/mois inclut 250 GB + 1 TB egress — **parfait pour Xpeditis**
- Excellente documentation, nombreux tutoriels
- Support réactif
- Load Balancer $12/mois sans surprise
**Inconvénients :**
- Siège aux USA (mais région Amsterdam disponible pour RGPD)
- Prix compute assez élevés vs Hetzner (×3-4)
- Pas de Reserved Instances / économies long terme
- Redis pricing identique à PostgreSQL (peut sembler cher pour un cache)
**Verdict DigitalOcean :** Le meilleur choix si vous voulez **minimiser le temps d'opération** et que vous avez un budget correct. Pricing transparent, aucune surprise sur la facture (contrairement à AWS).
---
### 🟡 Scaleway — L'alternative française moderne
**Avantages :**
- **Entreprise française** (Iliad group), data centers à Paris
- RGPD natif, conformité HDS disponible (santé)
- Kapsule Kubernetes control plane **gratuit**
- Instances ARM64 disponibles (très économiques)
- Object Storage S3-compatible avec egress inclus
- API moderne, bonne DX
**Inconvénients :**
- **Managed databases chères** (€80/mois pour 2 vCPU / 8 GB)
- Moins mature qu'AWS/GCP pour les fonctionnalités avancées
- Catalogue de services plus limité
- Moins de régions disponibles
**Verdict Scaleway :** Intéressant si vous restez en self-hosted pour la DB ou si le contexte légal exige France. Les managed databases sont trop chères pour un early-stage.
---
### 🔴 AWS EKS — Le plus puissant, le plus cher
**Avantages :**
- Écosystème le plus complet (IAM, KMS, Secrets Manager, WAF, CloudFront, SES...)
- SLA enterprise, support 24/7, certifications (ISO 27001, SOC2, HDS France)
- RDS Multi-AZ battle-tested, ElastiCache Redis géré en perfection
- CloudFront CDN mondial
- Région Paris (eu-west-3) pour conformité RGPD française
- Idéal si vous intégrez avec d'autres services AWS (Maersk utilise AWS, par exemple)
**Inconvénients :**
- **EKS control plane $73/mois fixe** — cher pour 100 users
- **NAT Gateway $33/mois par AZ** + $0.045/GB traitement → coût caché significatif
- **Facturation complexe** : les surprises de facture AWS sont légendaires
- RDS Multi-AZ double le coût de la DB
- ElastiCache explose à 10 000 users ($1 452/mois pour Redis cluster)
- Pas compétitif sur le pure coût compute
**Verdict AWS :** Justifié uniquement si vous avez des clients enterprise qui l'exigent contractuellement, ou si vous êtes déjà profondément intégré dans l'écosystème AWS. Pour un SaaS maritime en croissance, le surcoût n'est pas justifiable avant 10 000+ users.
---
### 🔶 GCP — Meilleur rapport qualité/prix parmi les hyperscalers
**Avantages :**
- **GKE Autopilot** : pas de gestion des nodes, facturation à la pod (potentiellement économique pour charges variables)
- Réseau performant, BigQuery pour analytics
- Cloud SQL plus simple à configurer qu'AWS RDS
- Sustained Use Discounts automatiques (pas besoin de Reserved Instances)
**Inconvénients :**
- Cloud SQL coûteux en HA (doublement)
- Memorystore Redis pricing identique à ElastiCache
- Egress coûteux ($0.12/GB vs $0.09 AWS)
- Interface moins intuitive qu'AWS/Azure
**Verdict GCP :** Alternative intéressante à AWS avec Autopilot pour les charges variables. Mais Cloud SQL HA reste cher. Pas compétitif face à DO/Hetzner.
---
### 🔶 Azure — Le moins intéressant pour ce projet
**Avantages :**
- AKS control plane gratuit
- Bien intégré si déjà client Microsoft
- PostgreSQL Flexible Server correct
**Inconvénients :**
- Worker nodes (VM) les plus chers des hyperscalers
- Azure Cache for Redis pricing élevé (P1 = $394/mois)
- Pricing complexe et souvent plus élevé qu'AWS à périmètre équivalent
- Moins de services maritimes/logistiques spécifiques
**Verdict Azure :** Aucun avantage notable pour Xpeditis. AWS est plus mature pour ce type de projet si vous allez sur un hyperscaler.
---
## 8. Option hybride recommandée
La meilleure stratégie coût/risque pour Xpeditis est une **approche hybride** : compute sur Hetzner (ou OVH), services critiques sur des managed services spécialisés.
```
┌─────────────────────────────────────────────────────┐
│ Xpeditis — Architecture Hybride │
│ │
│ ┌─────────────────────────────────────────────┐ │
│ │ Hetzner Cloud (compute + réseau) │ │
│ │ │ │
│ │ k3s cluster │ │
│ │ ├── NestJS pods (2-15 replicas) │ │
│ │ ├── Next.js pods (1-8 replicas) │ │
│ │ └── Traefik Ingress + cert-manager │ │
│ │ │ │
│ │ Hetzner Object Storage │ │
│ │ (S3-compatible, 0 changement de code) │ │
│ └─────────────────────────────────────────────┘ │
│ │ │
│ ┌───────────────────────────────────────────────┐ │
│ │ Services managés externes (prix fixes) │ │
│ │ │ │
│ │ Neon.tech / Railway ──► PostgreSQL managé │ │
│ │ Upstash Redis ──► Redis serverless │ │
│ │ Brevo / Postmark ──► Email SMTP │ │
│ │ Cloudflare ──► CDN + WAF (free) │ │
│ └───────────────────────────────────────────────┘ │
└─────────────────────────────────────────────────────┘
```
### Coûts de l'architecture hybride
| Service | Fournisseur | 100 users | 1 000 users | 10 000 users |
|---|---|---|---|---|
| Compute + réseau | Hetzner (post-avril) | €36 | €129 | €458 |
| PostgreSQL managé | [Neon.tech](https://neon.tech) Pro | $19 | $69 | $700 |
| Redis managé | [Upstash](https://upstash.com) | $0 (free) | $10 | $120 |
| Email | [Brevo](https://brevo.com) (ex-Sendinblue) | $0 (free 300/j) | $9 | $49 |
| CDN + WAF | [Cloudflare](https://cloudflare.com) | $0 (free) | $0 | $0-20 |
| DNS | Cloudflare | $0 | $0 | $0 |
| **TOTAL** | | **~€65 (~$70)** | **~€230 (~$250)** | **~€1 400 (~$1 520)** |
> **Avantage Neon.tech :** PostgreSQL serverless, scale automatique, branchement de DB pour dev/staging, backups automatiques. Compatible avec le TypeORM de Xpeditis sans changement.
> **Avantage Upstash Redis :** Pricing pay-per-use, pas de cluster à gérer. Parfait pour le cache rate quotes et le pub/sub WebSocket à petite/moyenne échelle.
---
## 9. Matrice de décision
Choisissez votre scenario selon vos priorités :
### Critère 1 — Budget serré (early-stage, bootstrapped)
```
Budget < €100/mois → Hetzner self-managed + Neon.tech + Upstash
```
**Recommandé :** Architecture hybride Hetzner ci-dessus.
**Risque :** Vous gérez vous-même k3s, les mises à jour de nœuds, la surveillance.
**Mitigation :** Utiliser `hetzner-k3s` (automatise 90% des ops K8s) et des managed services tiers.
---
### Critère 2 — Balance coût / sérénité (série A, 1-5 devs)
```
Budget €200-500/mois → DigitalOcean DOKS ou OVHcloud MKS
```
**DigitalOcean** si vous voulez la simplicité maximale et que les données hors-EU ne sont pas bloquantes.
**OVHcloud** si vous avez des clients qui exigent la souveraineté française des données.
---
### Critère 3 — Conformité RGPD maximale + souveraineté française
```
Données en France requises → OVHcloud (Paris) ou Scaleway (Paris) ou AWS eu-west-3 (Paris)
```
- **Budget raisonnable :** OVHcloud (€249/mois à 1 000 users vs $1 249 AWS)
- **Conformité enterprise :** AWS eu-west-3 (certifications HDS, ISO 27001 France)
---
### Critère 4 — Croissance rapide, clients enterprise (scale-up)
```
10 000+ users + SLA enterprise → AWS eu-west-3 ou GCP europe-west1
```
Justifié si :
- Clients exigent des certifications spécifiques (HDS pour santé, PCI-DSS)
- Contrats avec pénalités SLA
- Intégration avec d'autres services cloud (ex: Maersk/MSC utilisent AWS)
- Équipe ops dédiée pour gérer les coûts AWS
---
### Critère 5 — Vous voulez tout gérer vous-même (max économies)
```
VPS self-managed → Hetzner (k3s + PostgreSQL + Redis sur VM dédiées)
```
**Stack complète self-managed sur Hetzner :**
| Composant | Solution | Outil |
|---|---|---|
| Kubernetes | k3s via hetzner-k3s | [github.com/vitobotta/hetzner-k3s](https://github.com/vitobotta/hetzner-k3s) |
| PostgreSQL | Docker + pg_auto_failover ou Patroni | Ou simplement 1 VM dédiée + cron backup S3 |
| Redis | Docker single node | Replication manuelle si besoin |
| Stockage | Hetzner Object Storage | SDK déjà configuré dans Xpeditis |
| TLS | cert-manager + Let's Encrypt | Déjà dans l'écosystème k3s |
| Monitoring | Grafana + Prometheus | Stack kube-prometheus-stack |
| Emails | Brevo / Postmark SMTP | Changer SMTP_HOST dans .env |
| CDN | Cloudflare (gratuit) | Proxy devant Hetzner LB |
---
## 10. Recommandation finale
### Pour Xpeditis 2.0 — Recommandation par phase
---
#### Phase MVP / Lancement (0 → 100 users)
**→ Hetzner Cloud + services managés tiers**
```
Budget cible : €65-80/mois
```
| Composant | Solution | Coût |
|---|---|---|
| K8s cluster | 2× CX32 + k3s | €18.38 (post-avril) |
| LB | LB11 Hetzner | €7.49 |
| PostgreSQL | Neon.tech Pro | $19 |
| Redis | Upstash free tier | $0 |
| Stockage | Hetzner Object Storage | €4.99 |
| Email | Brevo free (300/j) | €0 |
| CDN + WAF | Cloudflare free | €0 |
| **TOTAL** | | **~€55/mois** |
**Pourquoi :** À ce stade, le coût doit être minimum. Le risque technique d'un PostgreSQL managé par Neon est faible et bien inférieur à se gérer soi-même.
---
#### Phase Croissance (100 → 1 000 users)
**→ OVHcloud MKS ou DigitalOcean DOKS**
```
Budget cible : €200-350/mois
```
**Si RGPD/souveraineté française critique :**
- OVHcloud MKS (3× B2-15) + PostgreSQL self-hosted sur B2-15 + Redis sur B2-7
- **~€249/mois**
**Si priorité simplicité :**
- DigitalOcean DOKS (3× s-4vcpu-8gb) + Managed PG 4 GB HA + Managed Redis
- **~$316/mois**
**Pourquoi pas Hetzner ici ?** La gestion de PostgreSQL HA (Patroni + etcd) + Redis Sentinel devient complexe quand le trafic augmente et que vous n'avez pas d'équipe ops dédiée.
---
#### Phase Scale (1 000 → 10 000 users)
**→ OVHcloud ou DigitalOcean (selon RGPD)**
```
Budget cible : €700-1 100/mois
```
| Fournisseur | Coût 10 000 users | Avantage |
|---|---|---|
| OVHcloud | ~€697 | RGPD France, 0 egress |
| DigitalOcean | ~$1 084 | Simplicité, managed DB |
| **AWS EKS** | **~$5 017** | SLA enterprise, certifications |
**→ AWS EKS uniquement si** vous avez des contrats enterprise qui l'exigent, car le surcoût (×5 à ×7 vs OVH/DO) doit être justifié par le CA client.
---
### Résumé en une phrase par option
| Option | Pour qui |
|---|---|
| **Hetzner self-managed** | Vous avez les skills ops, le budget est critique, phase MVP |
| **OVHcloud MKS** | Clients français exigeants sur RGPD, budget moyen, bonne expertise Linux |
| **DigitalOcean DOKS** | Vous voulez vous concentrer sur le code, pas l'infra, budget correct |
| **Scaleway Kapsule** | Entreprise française, conformité HDS possible, managed DB acceptable |
| **AWS EKS eu-west-3** | Clients enterprise, SLA contractuels, équipe et budget dédiés |
| **Architecture hybride** | Le meilleur ROI à toutes les étapes — **recommandé par défaut** |
---
### La recommandation optimale — Architecture hybride progressive
```
Aujourd'hui (MVP) Dans 6 mois (1 000 users) Dans 18 mois (10 000 users)
───────────────── ────────────────────────── ───────────────────────────
Hetzner k3s Migrer vers OVHcloud MKS Rester OVH ou migrer AWS
+ Neon.tech PG + PostgreSQL self-hosted HA si clients enterprise
+ Upstash Redis + Redis Sentinel AWS eu-west-3 justifié
+ Hetzner Object Storage + Hetzner Object Storage au-delà de €500K ARR
≈ €65/mois ≈ €249/mois ≈ €697-5017/mois
```
> **Note sur les migrations :** Passer de Hetzner à OVHcloud ou DigitalOcean est simple (K8s manifests identiques, changement de variables d'environnement). Passer vers AWS requiert une refactorisation partielle (EKS ingress, IAM, RDS connection strings). Planifiez cette migration si vous atteignez des clients enterprise, pas avant.
---
*Sources : hetzner.com/cloud, digitalocean.com/pricing, ovhcloud.com/fr/public-cloud/prices, scaleway.com/fr/tarifs, cloud.google.com, azure.microsoft.com, aws.amazon.com — Mars 2026*
*Tous les prix sont indicatifs on-demand. Les prix Hetzner pré-1er avril 2026 sont encore actifs au moment de la rédaction.*