Aller au contenu

Cloner des bases Aurora pour le staging : comment les clones rapides fonctionnent vraiment

Les clones rapides Aurora créent une copie complète d'une base de production en minutes grâce au stockage copy-on-write. Comment le clonage fonctionne, ce qu'il coûte, le runbook CLI, et où les clones cessent d'être le bon outil.

Un clone rapide Aurora vous donne une copie inscriptible d’une base de production en minutes, que la base fasse 10 Go ou 10 To, parce qu’aucune donnée n’est réellement copiée à la création. Le clone partage le volume de stockage de la source et seules les pages qui divergent sont dupliquées — vous payez le calcul du clone et les pages modifiées, pas une deuxième copie complète. Pour les environnements de staging, les répétitions de migration et les tests de charge sur des données réelles, il bat les restaurations de snapshot en vitesse comme en coût.

Ce qui se passe

Aurora sépare le calcul d’une couche de stockage distribuée et partagée. Le clonage exploite ça : un clone est un nouveau cluster dont le volume pointe initialement vers les mêmes pages de stockage que la source, protégées par copy-on-write. Quand un des deux côtés modifie une page après le moment du clonage, cette page est écrite comme nouvelle copie pour celui qui écrit; les pages inchangées restent partagées pour toujours. Trois conséquences en découlent :

  • Le temps de création est en minutes et à peu près indépendant de la taille — pas de copie en vrac, juste des métadonnées.
  • Le coût de stockage démarre près de zéro et croît avec la divergence. Un clone utilisé pour du staging surtout en lecture reste peu coûteux pendant des semaines; un clone qui réécrit la moitié de la base converge vers le coût d’une copie complète.
  • Les deux côtés sont pleinement indépendants après la création. Les écritures sur le clone ne touchent jamais les données de production, et les écritures de production n’apparaissent jamais dans le clone — un clone est un moment figé, pas un réplica.

Les limites qui comptent : les clones vivent dans la même région que la source (un VPC différent est correct); le clonage inter-comptes fonctionne via le partage AWS RAM; et il y a une limite au nombre de clones accrochés au même volume source — jusqu’à 15, les clones de clones comptant dans la chaîne. Un cluster cloné n’a aussi aucune instance par défaut : tant que vous n’y ajoutez pas une instance DB, il n’y a rien à quoi se connecter, ce qui déroute tout le monde la première fois. La mécanique complète est dans la documentation Aurora sur https://docs.aws.amazon.com/rds/.

Une chose qu’un clone n’est pas : une sauvegarde. Il partage l’infrastructure de stockage physique avec la source et vit dans la même région, donc il ne vous protège de rien de ce dont une vraie stratégie PITR et snapshots vous protège.

Quoi vérifier en premier

  • Moteur et région — Aurora MySQL ou Aurora PostgreSQL, cible du clone dans la même région.
  • Nombre de clones sur la source — si les équipes ont cloné librement, vous êtes peut-être près de la limite de chaîne.
  • Clé KMS — les clones de clusters chiffrés restent chiffrés; les clones inter-comptes exigent le partage d’accès à la clé.
  • Budget de classe d’instance — le stockage du clone est peu coûteux, mais ses instances DB se facturent comme n’importe quelle autre dès la première minute.
  • Sensibilité des données — un clone, c’est des données de production; les règles d’accès du staging doivent égaler la production tant que vous ne les avez pas masquées.

Comment vérifier

Créez un clone de l’état courant :

aws rds restore-db-cluster-to-point-in-time \
  --source-db-cluster-identifier prod-aurora \
  --db-cluster-identifier staging-clone-2026-07-04 \
  --restore-type copy-on-write \
  --use-latest-restorable-time \
  --vpc-security-group-ids sg-0staging123 \
  --db-subnet-group-name staging-db-subnets

aws rds create-db-instance \
  --db-cluster-identifier staging-clone-2026-07-04 \
  --db-instance-identifier staging-clone-2026-07-04-1 \
  --db-instance-class db.r6g.large \
  --engine aurora-postgresql

Suivez la progression dans RDS > Databases — le clone apparaît comme un cluster normal; quand son statut est available et que l’instance est montée, connectez-vous avec les endpoints propres au cluster cloné. Confirmez l’indépendance en vérifiant aws rds describe-db-clusters --db-cluster-identifier staging-clone-2026-07-04 --query 'DBClusters[0].[Status,Engine,EngineVersion,StorageEncrypted]' et en écrivant une ligne jetable sur le clone — elle ne doit jamais apparaître sur la source.

La marche à suivre

  1. Clonez avec les réglages réseau de l’environnement cible. Passez les security groups et le subnet group de staging à la création — sinon vous héritez des valeurs par défaut et vous rejouez toute la valse de configuration des restaurations.
  2. Ajoutez une instance de bonne taille. Le staging a rarement besoin de la classe d’instance de production; une classe plus petite garde le clone honnête côté coût. Pour un test de charge, égalez la classe de production ou le test est de la fiction.
  3. Assainissez avant d’élargir l’accès. Masquez ou supprimez les renseignements personnels, faites tourner chaque identifiant applicatif stocké dans la base, et repointez les intégrations sortantes (webhooks, SMTP) vers des puits — un clone enverra joyeusement des courriels à de vrais clients si les lignes de configuration le lui disent.
  4. Repointez l’application de staging. Mettez à jour le secret de connexion vers l’endpoint writer du clone; ne réutilisez jamais du matériel d’identifiants de production dans les secrets de staging.
  5. Utilisez-le pour ce que les clones font de mieux. Répétition de migration avec des volumes de données réels, vérification EXPLAIN de changements d’index, reproduction d’un bogue lié à la forme des données, tests destructeurs que vous ne lanceriez jamais en production.
  6. Supprimez selon un échéancier. Le coût de divergence ne fait que croître. Étiquetez chaque clone avec un propriétaire et une date d’expiration, et laissez une tâche hebdomadaire signaler ou retirer les expirés. Re-cloner demain prend des minutes — aucune raison de garder un clone périmé en vie.

Quand c’est la mauvaise approche

Si vous avez besoin d’une copie continuellement fraîche, un clone est le mauvais choix — il vieillit dès la seconde de sa création; c’est le territoire des réplicas en lecture. Si vous êtes sur RDS plutôt qu’Aurora, le clonage n’existe pas et la restauration de snapshot est l’outil. Un staging inter-régions demande une copie de snapshot ou une conception différente du palier de données. Et pour remettre des données à une équipe analytique, exporter un snapshot vers S3 en Parquet est moins cher et plus sûr que de leur donner un clone vivant de la production.

Erreurs courantes

  • Créer le cluster clone et oublier l’instance, puis ouvrir un billet parce que le clone « n’a aucun endpoint qui accepte les connexions ».
  • Traiter le clone comme une sauvegarde ou une copie DR alors qu’il partage la région et l’infrastructure de stockage avec la source.
  • Laisser des clones tourner pendant des mois — le calcul se facture chaque jour et la divergence des pages transforme discrètement le « stockage presque gratuit » en l’équivalent d’une deuxième base.
  • Sauter l’assainissement, de sorte qu’un test de charge ou une session de débogage envoie de vrais courriels ou expose des données clients à toute l’équipe d’ingénierie.

Garder le contrôle

  • Des clones au nommage standard (staging-clone-AAAA-MM-JJ) avec étiquettes owner et expires obligatoires.
  • Une tâche planifiée qui rapporte chaque mois l’âge des clones, la classe d’instance et le stockage de divergence estimé.
  • Un seul script enveloppe pour la création de clones qui intègre SG de staging, subnet group, étape d’assainissement et étiquetage — pour que le chemin sûr soit le chemin facile.
  • Suivez le nombre de clones contre la limite par volume avant qu’une équipe qui adore cloner la découvre en plein sprint.

Les clones rapides sont une des fonctionnalités vraiment différenciées d’Aurora : des données à l’échelle de la production en minutes, à coût marginal, sans risque pour la source — tant que les clones sont traités comme jetables et assainis comme des données de production. Si personne dans votre équipe ne possède vraiment l’environnement AWS de bout en bout, c’est la racine de la plupart de ces problèmes — Stack Harbor opère des comptes AWS au quotidien sous Opérations AWS, et vous pouvez réserver une revue AWS.