Lorsqu’une filiale de PBS a récemment affirmé qu’un fournisseur de stockage cloud les avait « ghostés » — laissant environ 50 To de données en risque —, la douleur a résonné sur les canaux Slack des équipes d’ingénierie. Si votre fournisseur de stockage cessait de répondre demain, combien d’heures vous faudrait‑il pour extraire vos jeux de données critiques ? Combien cela coûterait‑il ? Qui possède le runbook ? La plupart des équipes ne peuvent répondre qu’en se couvrant. C’est un mode de défaillance.
Vous testez vos sauvegardes. Vous vous entraînez à la réponse à incident. Mais vous n’avez probablement jamais répété la manœuvre qui compte le plus quand une relation fournisseur se dégrade : sortir vos octets — vite, intacts, et sans vous ruiner en frais de sortie. En 2026, la sortie de données est un risque de continuité d’activité, pas un cas limite.
Le problème n’est pas seulement la panne. C’est la garde des données.
« Être ghosté par un fournisseur » couvre plus que des indisponibilités. Cela inclut :
- Défaillance du plan de contrôle : le support cesse de répondre ; des changements IAM ou des blocages de facturation vous verrouillent ; les API de listing se dégradent ; les limites de taux vous brident dès que vous commencez à copier vos données vers l’extérieur.
- Incompatibilités silencieuses : « S3‑compatible » ne garantit pas les mêmes sémantiques pour vos outils. Les ETags multipart diffèrent, la pagination
ListObjectsV2peut être lente avec des préfixes très imbriqués, et la gestion des versions ou les verrous légaux peuvent bloquer suppressions et déplacements. - Bombes de coûts : une sortie à 0,02–0,09 $/Go semble anodine jusqu’au jour où vous devez déplacer des dizaines de téraoctets sous la contrainte.
Le risque n’a rien de théorique. Des archives médias, de l’imagerie médicale, des corpus d’entraînement ML, des logs, des artifacts de build, voire des dépôts clients s’empilent dans des object stores faciles à remplir et difficiles à évacuer sous pression. Vous ne vous en sortirez pas avec un tableur ; il vous faut mesurer le débit réel, vérifier l’intégrité et un exercice qui révèle les micro‑coupures avant qu’elles ne vous vident de votre sang.
Un cadre pour CTO : l’exercice trimestriel d’évacuation des données
Objectif : prouver que vous pouvez extraire un échantillon représentatif de vos données — de bout en bout — en 48 heures, avec vérification d’intégrité et une enveloppe de coûts pré‑négociée. Faites‑le chaque trimestre. Rendez‑le ennuyeux.
1) Choisir un corpus représentatif (5–10 % du total)
- Incluez des gros objets (médias 1–20 Go, checkpoints de modèles) et des petits objets (logs 1–100 Ko, vignettes). Les petits objets vous brideront au niveau listage+ouverture ; les gros exercent les pipelines multipart.
- Miroitez vos vraies sémantiques : buckets versionnés, Object Lock (conformité/gouvernance), arbres de préfixes profonds et cas tordus (clés avec espaces, unicode).
- Taille cible : 2–10 To si vous détenez 20–100 To au total. Le but est de faire ressortir des comportements, pas de répliquer la facture complète chaque trimestre.
2) Pré‑provisionner une destination que vous contrôlez
- Utilisez un second fournisseur avec de vraies dents contractuelles (par ex., Cloudflare R2, AWS S3, Azure Blob) ou faites tourner votre propre endpoint S3 (par ex., MinIO) sur un cluster éphémère avec des NICs 10/25/40 Gbps.
- Conservez des identifiants séparés et accessibles en urgence (break‑glass). Ne dépendez pas du plan de contrôle de la source pour authentifier la destination.
- Activez le chiffrement côté serveur à la destination et stockez des clés gérées par le client (BYOK) dans votre propre KMS, pas celui du fournisseur source.
3) Construire un manifeste canonique et un plan d’intégrité
- Pour chaque objet : stockez clé, taille, version‑id (si présent), last‑modified, SHA‑256. Ne vous fiez pas aux ETags multipart comme à des MD5 ; ce n’en sont pas.
- Utilisez l’export d’inventaire de votre fournisseur (par ex., S3 Inventory) comme base, puis calculez les checksums manquants via un job map ponctuel.
- Après la copie, vérifiez 100 % des objets par taille et SHA‑256, et échantillonnez 1–5 % avec une comparaison octet à octet pour une assurance supplémentaire.
4) Choisir l’outillage et le parallélisme
- rclone pour des copies inter‑fournisseurs avec checksums intégrés (
--transfers,--checkers,--s3-chunk-size,--s3-upload-concurrency). - s5cmd pour des millions de petits fichiers ; il parallélise listing/copie plus agressivement que l’AWS CLI.
- Pour le bulk au sein d’un même cloud, utilisez les outils batch natifs du fournisseur (
aws s3 cp/syncavec des flags maîtrisés) pour éviter les goulots d’étranglement Internet. - Démarrez avec 64–256 transferts concurrents, 64–128 checkers et des chunks multipart de 64–128 MiB. Mesurez, ne devinez pas.
5) Faites le calcul de bande passante avant de l’apprendre à la dure
Conversion grossière : 1 To ≈ 8 192 Gbit. Temps (heures) ≈ (To × 8 192) / débit Gbps du lien / 3 600.
- À 1 Gbps, 50 To c’est ~114 heures (~4,7 jours) si vous saturez le lien. Vous ne le ferez pas.
- À 10 Gbps, 50 To c’est ~11,4 heures en théorie ; planifiez 18–24 heures avec les surcoûts protocolaires et les bridages de l’object store.
- À 2 Gbps (uplink de bureau typique), 10 To peuvent encore prendre ~11–14 heures — si vos performances de listing et vos quotas d’API suivent.
Conseil pratique : lorsque la source et la destination vivent dans des clouds différents, tirez depuis du compute au plus près de la source (même région), puis expédiez via un interconnect dédié ou un chemin de sortie à haut débit que vous contrôlez. N’acheminez pas des centaines de To via un unique NAT dans votre siège.
6) Donnez un vrai prix à la sortie
- À 0,02–0,09 $/Go, déplacer 50 To coûte 1 000–4 500 $ rien que pour partir — avant le compute et le stockage de destination.
- Certains fournisseurs vantent « pas de frais d’egress » avec des plafonds ou des clauses de comportement. Lisez‑les. Si un exercice déclenche une revue ou un bridage, ce n’est pas une vraie liberté.
- Négociez maintenant : incluez une clause « sortie sans frais à la résiliation » et une clause « exercice trimestriel jusqu’à N To avec egress exonérée ». S’ils rechignent, chiffrez le risque explicitement dans votre modèle TCO.
7) Définir les critères de succès
- Temps jusqu’au premier octet : À quelle vitesse pouvez‑vous vous authentifier et démarrer un transfert quand le pager sonne ?
- Débit soutenu : Gbps moyen sur 2–6 heures en régime établi. En‑dessous de 30–50 % du théorique nécessite un diagnostic.
- Intégrité de bout en bout : 100 % de correspondance des tailles ; 100 % de correspondance des checksums ; zéro fichier corrompu ; un journal d’audit montrant la couverture complète.
- Coût tout compris : egress + compute + stockage de destination et éventuels frais de cross‑connect.
- Propriété du runbook : personnes nommées ; identifiants d’urgence testés ; l’astreinte inclut le devoir d’exercice.
Prévoyez la sortie avant d’en avoir besoin
Visez la portabilité S3 — mais vérifiez les recoins
- Restez au plus petit dénominateur commun : simples
PUT/GET, règles de cycle de vie réplicables, et évitez les politiques propriétaires non transposables. Là où vous devez aller vers le propriétaire, isolez‑le derrière votre propre abstraction. - Versioning et Object Lock sont de bons filets de sécurité, mais confirmez que les verrous de gouvernance/légaux ne bloquent pas les copies. En exercice, utilisez un bucket avec des contrôles identiques à la production.
- Le listing est votre goulot caché. Des buckets avec des dizaines de millions de tout petits objets rampent. Utilisez la compaction (regroupez les petits fichiers en Parquet/ORC ou en segments tar) et la partition par préfixe (
yyyy/mm/dd/...) pour borner les opérations de listing.
Gardez la maîtrise de vos clés de chiffrement
- Si vos données sont verrouillées derrière le KMS du fournisseur source, un gel de compte peut devenir un gel de données. Préférez le BYOK quand c’est possible ; a minima, maintenez du matériel de clé exportable ou double‑chiffrez les archives sensibles avant l’upload.
- Ne découvrez pas en plein exercice qu’un gel de conformité sur une clé empêche les lectures. Testez régulièrement rotation et restauration des clés.
Gardez un volume d’objets raisonnable
- Suivre 200 millions d’objets de 1 Ko est « mignon » jusqu’à ce que vos limites
ListObjectsV2dominent l’horloge. Cappez le nombre d’objets par préfixe ; imposez la compaction dans les pipelines d’ingestion ; rejetez les PR qui créent des objets par ligne sans compaction.
Désignez un « golden manifest »
- Stockez le manifeste de référence (clé, taille, checksum) en dehors du fournisseur source — par ex., dans votre dépôt ops adossé à git et dans un object store séparé — afin de pouvoir vérifier de manière indépendante.
Et les volumes blocs, bases de données et blobs SaaS ?
Volumes blocs (snapshots)
- Automatisez l’export des snapshots en images brutes (par ex., VMDK/VHD ou raw) vers un stockage objet que vous contrôlez. Testez une restauration à froid vers un hyperviseur différent une fois par trimestre.
- Mesurez le temps de restauration avec des plafonds d’IOPS réalistes. Si votre RTO dépend de crédits de burst, vous n’avez pas de RTO.
Bases de données
- Exécutez des exports logiques (par ex.,
pg_dump/mysqldump) chaque semaine pour les schémas critiques vers votre propre bucket. Conservez schémas + scripts de migration versionnés. - Répétez une importation à froid chez un autre fournisseur (managé ou auto‑hébergé). « Nous utilisons la réplication » ne remplace pas « nous avons reconstruit depuis les dumps en 90 minutes ».
Blobs intégrés dans des SaaS
- Docs produit, assets de design et logs piégés dans des SaaS (Figma, Notion, Sentry, plateformes média propriétaires) se font vite oublier. Mettez en place des exports planifiés via APIs vers votre bucket. Si un fournisseur n’a pas d’API d’export, c’est une ligne de risque, pas une note de bas de page.
Des chiffres réels du terrain
- Évacuation média de 20 To en 15 heures : déplacement d’un corpus média mixte (objets 1–8 Go) avec rclone (
--transfers 128,--s3-chunk-size 128M,--s3-upload-concurrency 32) sur un lien 10 Gbps soutenant ~3,5 Gbps après bridage API et overhead TLS. L’egress total a été d’environ 200 $ à un prix promo de 0,01 $/Go. - La taxe des petits objets, 200 M de clés : un bucket de logs avec des objets de 1–4 Ko a buté sur les limites
ListObjectsV2et le coût ouverture/fermeture côté application. Même à 10 Gbps théoriques, le débit effectif était < 200 Mbps. La compaction en Parquet horaire a réduit le compte d’objets par 1000 et transformé une semaine en heures. - L’uplink du bureau est un piège : une équipe a tenté de tirer 8 To via un VPN de bureau à 1 Gbps, saturant pendant des jours et déclenchant des resets firewall. En exécutant les copies depuis du compute dans la région de la source, la même opération s’est terminée en moins de 8 heures avec les mêmes outils.
N’oubliez pas la gouvernance : contrats et SLAs
- Sortie sans frais à la résiliation : écrivez‑le noir sur blanc. Quantifiez : « Jusqu’à X To, Y jours, Z requêtes, sans frais. »
- Quota d’exercice trimestriel : prévoyez une fenêtre de test (par ex., 5–10 To par trimestre) avec bridage levé et support en alerte.
- Matrice de compatibilité S3 : demandez une liste écrite : comportement des ETags multipart, taille de part max, QPS
ListObjectsV2, sémantique de versioning, parité Object Lock, garanties de lecture après écriture (éventuelle vs forte). - Escalade support : contractualisez une voie d’escalade nommée et un SLA de réponse pour les problèmes d’egress. S’ils ne s’engagent pas, c’est un signal.
Exécutez‑le avec une équipe follow‑the‑sun
Ces exercices sont parfaits pour un pod nearshore. Vous avez 6–8 heures de recouvrement US pour les kickoffs et handoffs, puis une progression continue pendant votre nuit. Chez DHD Tech au Brazil, nous avons staffé des exercices d’egress avec une paire tournante : un ingénieur pilote la copie/la vérification pendant les heures US, un autre alimente le pipeline en soirée, en consignant des stats de débit concrètes, les coûts, et des PRs correctives pour la compaction et l’hygiène des préfixes. Au matin, vous avez un post‑mortem propre et un manifeste au vert.
Un plan 30/60/90 que vous pouvez démarrer ce trimestre
Jours 1–30 : prouvez que vous pouvez déplacer 2–5 To
- Choisissez un bucket cible et extrayez une tranche de 5 % avec un vrai pathing, des tailles d’objets et des contrôles réalistes.
- Montez une destination (second fournisseur ou MinIO) et câblez des identifiants d’urgence.
- Générez un manifeste et des checksums ; exécutez une première copie avec rclone ou s5cmd ; consignez le débit et le coût.
- Ouvrez des tickets JIRA pour les problèmes découverts : manques de compaction, hotspots de préfixes, limites de bridage, BYOK manquant.
Jours 31–60 : supprimez les goulots
- Mettez en place la compaction pour les petits objets à venir ; rétro‑traitez les pires cas.
- Relevez les limites de QPS ou le parallélisme là où c’est sûr ; ajoutez du compute éphémère au plus près des buckets source.
- Négociez des avenants : egress sans frais à la résiliation, fenêtres d’exercice trimestrielles, attestation de compatibilité S3.
Jours 61–90 : exercice complet, visibilité direction
- Faites un exercice de 10 To de bout en bout dans une fenêtre de 48 heures.
- Publiez un tableau de bord d’une page : Gbps soutenus, heures totales, taux de réussite d’intégrité et coût par To.
- Institutionnalisez : planifiez le prochain exercice ; ajoutez les liens de runbook et l’emplacement des manifestes à votre PCA.
La bonne ingénierie, c’est prouver la réversibilité
Uploader est facile. Partir est difficile. Cette asymétrie est votre risque. Un exercice trimestriel d’egress force votre architecture, vos contrats et votre hygiène d’exploitation à prouver qu’ils fonctionnent à l’envers. Vous trouverez des noms DNS morts dans des règles de cycle de vie, des politiques IAM qui semblaient correctes jusqu’à bloquer des copies headless, des buckets avec 100 M d’objets zombies, et des clés KMS dont la politique de rotation vous aurait bridé dans un vrai incident.
Réparez‑les à votre rythme — pas à celui de votre fournisseur.
Points clés
- Si un fournisseur vous ghoste, vous avez un problème de garde, pas seulement de fiabilité. Entraînez les sorties.
- Menez un exercice trimestriel d’egress sur 5–10 % de vos données ; vérifiez le SHA‑256 et mesurez le débit et le coût réels.
- Les petits objets tuent les performances. Compactez en Parquet/ORC et partitionnez les préfixes pour borner le listing.
- BYOK ou double chiffrement pour que la garde des clés ne devienne pas la garde des données.
- Négociez la sortie sans frais à la résiliation et un quota d’exercice trimestriel dans votre contrat.
- Placez du compute au plus près de la source pour éviter les goulots de l’uplink bureau ; utilisez rclone/s5cmd avec un parallélisme agressif.
- Maintenez un golden manifest en dehors du fournisseur source ; vérifiez 100 % et faites des contrôles octet à octet par sondage.
- Staffez les exercices avec une équipe nearshore pour 6–8 heures de recouvrement et une dynamique 24 h/24 ; publiez un scorecard prêt pour la direction.