Aller au contenu
Cloud high

Limites et compromis du cloud : coûts, latence, lock-in, souveraineté

16 min de lecture

Le cloud computing offre des avantages indéniables (élasticité, scalabilité, pay-as-you-go), mais il impose aussi des contraintes réelles : coûts qui explosent sans gouvernance, vendor lock-in, latence réseau incompressible, souveraineté des données, quotas et limites techniques. Ce guide vous explique les compromis à accepter et comment les anticiper avant de migrer vers le cloud.

  • Les pièges financiers du cloud (coûts cachés, egress, sur-dimensionnement)
  • Le vendor lock-in et comment le mitiger
  • Les limites techniques (latence, quotas, API rate limits)
  • Les enjeux de souveraineté et conformité (RGPD, Cloud Act)
  • Les cas où le cloud n’est pas adapté

Prérequis : Connaître les bases du cloud computing. Si besoin, commencez par Définition et promesses du cloud.

Le modèle pay-as-you-go est présenté comme un avantage (vous ne payez que ce que vous consommez), mais il peut rapidement devenir un cauchemar financier sans gouvernance stricte.

Promesse : “Plus besoin d’investir massivement, vous payez à l’usage”

Réalité : Sans contrôle, la facture cloud peut dépasser le coût d’une infrastructure on-premise classique.

Scénario :

  • Mois 1-6 : Déploiement initial, 5 serveurs → 300 €/mois
  • Mois 7 : Lancement marketing, 50 serveurs autoscalés → 3 000 €/mois
  • Mois 8 : Oubli d’arrêter environnements de test → 5 000 €/mois
  • Mois 12 : Base de données sur-dimensionnée + stockage jamais nettoyé → 8 000 €/mois

Sans optimisation : 96 000 €/an pour une infrastructure qui pourrait coûter 30 000 €/an bien gérée.

💸 Egress (sortie de données)

Le piège : Les données qui entrent dans le cloud sont gratuites, celles qui sortent sont facturées (typiquement 0,05 à 0,12 €/GB selon les fournisseurs).

Exemple :

  • Site e-commerce avec 10 TB de trafic sortant/mois
  • Coût egress : 10 000 GB × 0,09 € = 900 €/mois juste pour la bande passante

Mitigation : CDN (CloudFront, Cloudflare), compression, cache navigateur

🗄️ Stockage cumulatif

Le piège : Les snapshots, sauvegardes et logs s’accumulent indéfiniment si non nettoyés.

Exemple :

  • 100 snapshots horaires conservés pendant 1 an
  • Base de données 500 GB → 500 GB × 100 snapshots = 50 TB
  • Coût : 50 000 GB × 0,02 €/GB = 1 000 €/mois de stockage inutile

Mitigation : Lifecycle policies, rétention automatique (7 jours snapshots, 30 jours backups)

🔄 Transferts inter-région

Le piège : Copier des données entre régions coûte cher (0,02 €/GB).

Exemple :

  • Réplication continue base de données eu-west-1 → us-east-1
  • 500 GB répliqués/jour = 15 TB/mois
  • Coût : 15 000 GB × 0,02 € = 300 €/mois juste pour la réplication

Mitigation : Réplication intra-région uniquement, compression, delta sync

⚡ Instances oubliées

Le piège : Environnements de dev/test non arrêtés la nuit/week-end.

Exemple :

  • 10 serveurs dev (t3.medium) tournant 24/7
  • Coût : 10 × 0,04 €/h × 730h/mois = 292 €/mois
  • Si arrêtés 16h/jour en semaine : 97 €/mois (économie 67%)

Mitigation : Autoscaling schedule, Lambda shutdown automatique, tagging obligatoire

  • Budgets et alertes configurés dès le jour 1 (outils du fournisseur ou FinOps tiers)
  • Tagging obligatoire pour attribution par projet/équipe/environnement
  • Right-sizing automatisé (analyseurs de performance du fournisseur)
  • Reserved Instances/Savings Plans pour workloads stables (économie 40-60%)
  • Lifecycle policies pour snapshots, logs, backups (rétention max 30 jours)
  • Spot Instances pour workloads fault-tolerant (économie 70-90%)
  • Shutdown automatique environnements non-prod (soirs, week-ends)

Le vendor lock-in est la dépendance forte à un fournisseur cloud qui rend la migration vers un autre coûteuse, longue et risquée.

Les fournisseurs cloud proposent des services managés propriétaires très pratiques mais non-portables :

Service AWSÉquivalent AzureÉquivalent GCPStandard ouvert
LambdaFunctionsCloud Functions❌ Aucun
DynamoDBCosmos DBFirestore❌ Aucun
ECSACICloud RunKubernetes (portable)
RDS AuroraAzure DatabaseCloud SQL⚠️ PostgreSQL (standard, mais config propriétaire)
S3Blob StorageCloud Storage✅ API S3 (de facto standard)

Problème : Si vous utilisez Lambda + DynamoDB + Aurora, migrer vers Azure demande :

  • Réécrire les fonctions Lambda → Azure Functions (syntaxe différente)
  • Migrer DynamoDB → Cosmos DB (API différente, requêtes à adapter)
  • Reconfigurer Aurora → Azure Database (paramètres propriétaires)

Coût estimé : 6 mois à 2 ans de refonte pour une application moyenne.

Architecture portable : Utilise uniquement des standards ouverts.

Infrastructure:
- VMs classiques (IaaS) → portable (Terraform)
- Kubernetes → portable (manifests YAML standard)
- PostgreSQL standard → portable (dump SQL)
- Stockage objet S3-compatible → portable (API S3)

Migration : 1 à 3 mois (infrastructure as code + dump/restore bases)

Exemple : Application conteneurisée Kubernetes + PostgreSQL + S3

Utiliser des couches d’abstraction pour isoler les dépendances cloud.

Exemple : Au lieu d’appeler directement DynamoDB dans le code :

# ❌ Lock-in fort : appel direct DynamoDB
import boto3
dynamodb = boto3.resource('dynamodb')
table = dynamodb.Table('users')
table.put_item(Item={'id': '123', 'name': 'Alice'})
# ✅ Lock-in faible : abstraction via repository
class UserRepository:
def save(self, user):
# Implémentation DynamoDB cachée
pass
# Code métier indépendant du cloud
repo = UserRepository()
repo.save(user)

Si migration vers PostgreSQL, seule la classe UserRepository change, pas le code métier.

Privilégier les technologies portables.

Besoin❌ Propriétaire✅ Standard ouvert
OrchestrationECSKubernetes
Base SQLAurora ServerlessPostgreSQL standard
CacheElastiCacheRedis auto-hébergé
StockageGlacierS3-compatible (MinIO)
MessagingSQSRabbitMQ, Kafka

Ne pas mettre tous ses œufs dans le même panier… mais attention à la complexité.

Approche pragmatique :

  • Compute/data : Cloud principal (Outscale, OVH, ou autre)
  • Disaster Recovery : Cloud secondaire en standby (fournisseur différent)
  • DNS/CDN : Service neutre (Cloudflare, Fastly)

Le cloud est accessible via Internet. Contrairement à un datacenter local, la latence réseau est incompressible et peut impacter les performances.

TrajetDistanceLatence (aller-retour)
Paris ↔ eu-west-3 (Paris)< 50 km2-5 ms
Paris ↔ eu-west-1 (Irlande)~800 km15-25 ms
Paris ↔ us-east-1 (Virginie)~6000 km80-120 ms
Paris ↔ ap-southeast-1 (Singapour)~11000 km180-250 ms

La vitesse de la lumière est la limite : Signal théorique = 300 000 km/s. Signal réel (fibre optique) = ~200 000 km/s.

Paris ↔ Singapour (11 000 km) : 11 000 / 200 000 = 55 ms minimum théorique (aller simple). En pratique : 90-125 ms aller simple (routeurs, switchs, congestion).

🌐 API REST classique

Latence acceptable : < 200 ms

Scénario : Application web appelant une API backend.

  • Paris → eu-west-3 (Paris) : 5 ms → ✅ Excellent
  • Paris → us-east-1 (Virginie) : 100 ms → ⚠️ Perceptible mais acceptable
  • Paris → ap-southeast-1 (Singapour) : 200 ms → ❌ Lent

Mitigation : CDN, cache (Redis), API Gateway régional

💹 Trading haute fréquence

Latence acceptable : < 10 ms

Scénario : Ordres boursiers en temps réel.

  • Seul datacenter on-premise à proximité de la bourse acceptable
  • Cloud public incompatible (latence trop élevée)

Mitigation : Aucune (rester on-premise ou co-location bourse)

🎮 Jeux multijoueurs

Latence acceptable : < 50 ms

Scénario : Serveurs de jeu en temps réel.

  • Solution : Déployer dans plusieurs régions proches des joueurs
  • Joueurs EU → eu-west, joueurs US → us-east, joueurs Asie → ap-southeast

Mitigation : Multi-région + matchmaking géolocalisé

📊 Analytique batch

Latence acceptable : Secondes à minutes

Scénario : Traitement batch données (ETL, rapports).

  • Latence réseau négligeable (traitement long)
  • Optimiser débit (bande passante) vs latence

Mitigation : Aucune nécessaire

  • Mesurer la latence réelle avant migration (ping, traceroute, tests de charge)
  • Choisir la région la plus proche de vos utilisateurs principaux
  • CDN pour contenus statiques (images, CSS, JS)
  • Cache distribué (Redis, Memcached) pour données fréquemment lues
  • Architecture multi-région si base utilisateurs mondiale
  • Éviter chatty protocols (trop d’appels API successifs)

Le RGPD (Règlement Général sur la Protection des Données) impose des contraintes strictes sur le stockage et le transfert de données personnelles de citoyens européens.

Obligations :

  • Données personnelles UE doivent rester dans l’UE (sauf exceptions)
  • Transferts hors UE nécessitent des garanties (clauses contractuelles, certification)
  • Droit à l’oubli, portabilité, transparence

Cloud public :

  • ✅ Régions EU disponibles (eu-west-1 Irlande, eu-west-3 Paris, eu-central-1 Francfort)
  • ⚠️ Certains services US-only (nouveautés AWS lancées d’abord aux US)
  • ❌ Support technique peut accéder aux données depuis les US (selon contrat)

Clouds souverains :

  • ✅ Outscale (France, certifié SecNumCloud ANSSI)
  • ✅ OVH (France, données garanties UE)
  • ✅ Scaleway (France, souverain)

Le Cloud Act (Clarifying Lawful Overseas Use of Data Act) est une loi américaine permettant aux autorités US d’exiger l’accès aux données stockées par des entreprises américaines, même si ces données sont physiquement en Europe.

Implications :

  • AWS, Azure, GCP sont des entreprises US → soumises au Cloud Act
  • Un juge US peut ordonner l’accès aux données stockées sur AWS eu-west-1 (Irlande)
  • L’entreprise cloud est obligée de fournir les données (même si RGPD interdit)

Conflit RGPD vs Cloud Act :

  • RGPD : Interdit transfert données UE vers US sans garanties
  • Cloud Act : Oblige les entreprises US à fournir données même stockées en UE

Solutions :

  1. Chiffrement bout-en-bout : AWS ne peut pas déchiffrer (vous gérez les clés)
  2. Cloud souverain européen : Non soumis au Cloud Act (Outscale, OVH, Scaleway)
  3. On-premise : Données ne quittent jamais vos locaux
SecteurCertificationCloud compatible
Santé (France)HDS (Hébergeur Données de Santé)✅ AWS, Azure, Outscale, OVH
Sécurité (France)SecNumCloud✅ Outscale, OVH (partiel)
FinancePCI-DSS✅ AWS, Azure, GCP
Gouvernement USFedRAMP✅ AWS GovCloud, Azure Gov

Tous les clouds imposent des quotas (limites de ressources) et rate limits (nombre d’appels API/seconde) pour éviter l’abus.

Exemples AWS :

RessourceQuota par défautAugmentable
Instances EC220 vCPU (région)✅ Sur demande
Adresses IP élastiques5✅ Justification nécessaire
Appels API S33500 PUT/s, 5500 GET/s (préfixe)✅ Partitionnement
Lambda concurrence1000 exécutions simultanées✅ Sur demande
RDS snapshots100 (manuels)❌ Limite dure

Conséquence : Si vous lancez 100 serveurs d’un coup sans avoir demandé l’augmentation du quota, seuls 20 démarreront (quota 20 vCPU).

Mitigation :

  • Demander les augmentations de quotas avant le lancement
  • Anticiper la croissance (demander quota × 3)
  • Monitorer les limites (AWS Trusted Advisor)

Le cloud scale… mais pas infiniment instantanément.

Limites réelles :

  • Autoscaling : 1-5 minutes pour démarrer une nouvelle instance (boot + health check)
  • Base de données : Scale vertical limité (instance max ~1 TB RAM), scale horizontal complexe (sharding)
  • API Gateway : 10 000 req/s max (augmentable, mais délai 2 semaines)

Exemple : Pic de trafic × 100 en 30 secondes (lancement produit, tweet viral)

  • ❌ Autoscaling ne suivra pas (trop lent à démarrer instances)
  • ✅ Solution : Pre-warming (instances standby) ou serverless (Lambda scale instantané)

Les clouds publics tombent en panne. Rarement, mais ça arrive.

Exemples récents :

  • AWS us-east-1 (2021) : Panne 5h → Reddit, Slack, Disney+ impactés
  • Azure (2023) : Panne DNS mondiale 2h → Teams, Outlook indisponibles
  • GCP (2019) : Panne réseau 4h → YouTube, Gmail ralentis

SLA réels :

  • 99.9% = 8h 45min d’indisponibilité max/an
  • 99.99% = 52 min/an
  • 99.999% = 5 min/an (uniquement multi-région active-active)

Certains cas d’usage sont incompatibles avec le cloud public :

  • Trading haute fréquence (< 1 ms)
  • Contrôle industriel temps-réel
  • Jeux competitifs esport (< 10 ms)

Solution : On-premise ou edge computing

  • Données secret défense
  • Infrastructures critiques (OIV)
  • Pays avec interdiction cloud étranger

Solution : Cloud souverain (Outscale SecNumCloud) ou on-premise

  • Serveurs tournant 24/7 toute l’année sans variation
  • Pas de pics de trafic

Solution : Serveurs dédiés peuvent être moins chers (calcul TCO sur 3 ans)

  • Streaming vidéo 4K non-stop
  • Backup continu de pétaoctets

Solution : Egress cloud trop cher, préférer CDN ou on-premise

Le cloud computing impose des compromis à bien comprendre avant migration :

  1. Coûts : Pay-as-you-go avantageux SI bien géré (gouvernance FinOps obligatoire)
  2. Vendor lock-in : Réel mais mitigeable (abstraction, standards ouverts)
  3. Latence : Incompressible (physique), choisir région proche utilisateurs
  4. Souveraineté : RGPD + Cloud Act = choisir cloud européen si critique
  5. Limites techniques : Quotas, rate limits, indisponibilités existent

Le cloud n’est pas une solution miracle. C’est un outil puissant qui nécessite expertise, gouvernance et compromis.

Résilience et haute disponibilité

Concevez des architectures tolérantes aux pannes

Résilience, HA, DR