Amazon RDS ha due meccanismi di copia che la gente confonde: i backup automatici, che RDS fa ogni giorno e che in più permettono di tornare a qualsiasi minuto degli ultimi giorni, e gli snapshot manuali, che fai tu quando vuoi e si conservano finché non li cancelli. Sono utili entrambi, ma servono a cose diverse.
E c'è una cosa che devi sapere prima di averne bisogno: in RDS ripristinare non sovrascrive mai il database attuale. Viene sempre creata un'istanza nuova, con un altro nome e un altro indirizzo. Se non lo metti in conto nel momento dello spavento, perdi mezz'ora preziosa.
Prima di iniziare: cosa significa ogni cosa
- RDS
- Il servizio di database gestiti di Amazon: tu usi il database (MySQL, PostgreSQL, ecc.) e Amazon si occupa della macchina, degli aggiornamenti e dei backup.
- Istanza
- Così AWS chiama ogni database che hai in RDS.
- Backup automatico
- Quello che RDS fa ogni giorno per conto suo e conserva per i giorni che gli indichi. Permette inoltre di tornare a qualsiasi minuto di quel periodo.
- Snapshot manuale
- Una copia che fai tu quando vuoi e che si conserva finché non la cancelli.
- Ripristinare a un punto nel tempo
- Recuperare il database così com'era a una data e ora esatte, per esempio un minuto prima di una cancellazione accidentale.
- Endpoint
- L'indirizzo attraverso cui la tua applicazione si connette al database. Ogni istanza ha il suo; quando ripristini ne esce uno nuovo.
- Gruppo di sicurezza
- Il firewall di AWS: dice da dove ci si può connettere al database. Un database ripristinato nasce con uno predefinito, che di solito blocca la tua applicazione.
- Multi-AZ
- Opzione con cui RDS mantiene una replica in un altro data center della stessa regione. I backup si fanno dalla replica e non rallentano il servizio.
- UTC
- L'ora universale di riferimento. In AWS gli orari sono espressi in UTC; in Spagna è un'ora in meno d'inverno e due d'estate.
Passo dopo passo
Controlla i backup automatici della tua istanza
Nella console di RDS, Database, clicca sul tuo e apri la scheda Manutenzione e backup. Cerca il periodo di conservazione: è per quanti giorni RDS conserva i backup automatici. Se c'è scritto 0, non ci sono backup automatici e dovresti cambiarlo oggi stesso (pulsante Modifica). Un valore tra 7 e 14 giorni copre la maggior parte dei casi; il massimo lo stabilisce AWS.
Lì accanto c'è la finestra di backup, la mezz'ora giornaliera in cui RDS fa la copia. Mettila in un orario di poca attività, in UTC.
Fai uno snapshot manuale prima di un cambiamento importante
Stai per migrare l'applicazione, cambiare la versione del motore, cancellare tabelle vecchie. Prima, uno snapshot manuale: seleziona l'istanza, Azioni, Take snapshot, e dagli un nome descrittivo con la data. In un'istanza Multi-AZ la copia viene fatta dalla replica e non tocca il servizio; in una a zona singola può esserci una breve pausa delle scritture all'inizio.
Quelli manuali non scadono: restano finché non li cancelli e si pagano per lo spazio che occupano (oltre quello che AWS include gratis, pari alla dimensione del tuo storage). Fai pulizia ogni tanto.
Ripristinare da uno snapshot
Nel menu Snapshot, seleziona quello che vuoi, Azioni, Restore snapshot. RDS ti chiede un nome nuovo per l'istanza (per esempio
tienda-restaurada-2026-10-26), la dimensione dell'istanza, la VPC e la sottorete. Controlla due cose che non vengono copiate dall'originale e vanno scelte a mano: il gruppo di sicurezza (altrimenti nascerà con quello predefinito e la tua applicazione non riuscirà a connettersi) e il gruppo di parametri, se ne usavi uno personalizzato.Clicca su Ripristina e aspetta. Ci vorranno minuti o decine di minuti a seconda della dimensione.
Ripristinare a un punto nel tempo
Se quello che è successo è "qualcuno ha eseguito un DELETE senza WHERE alle 11:42", non vuoi la copia di ieri notte: vuoi le 11:41. Per questo ci sono i backup automatici: seleziona l'istanza originale, Azioni, Restore to point in time, e scegli data e ora esatte dentro il periodo di conservazione. Il resto del modulo è uguale al passo precedente, e anche questo crea un'istanza nuova.
Verifica il database ripristinato prima di usarlo
Quando la nuova istanza è "Disponibile", copia il suo endpoint dalla scheda Connettività. Collegati con il tuo client abituale e controlla che i dati che cercavi siano lì: la tabella cancellata, l'ordine di prima delle 11:42. Fallo prima di toccare l'applicazione.
Punta l'applicazione al nuovo database
Hai due strade. Quella rapida: cambiare la stringa di connessione dell'applicazione al nuovo endpoint. Quella pulita, se l'applicazione non si può toccare: rinominare l'istanza vecchia (per esempio in
tienda-vieja) e poi rinominare quella ripristinata con il nome originale; RDS aggiorna l'endpoint quando cambia il nome, anche se ci mette qualche minuto e la cache DNS può ritardarlo. In entrambi i casi, quando tutto funziona da qualche giorno, ferma o cancella l'istanza vecchia, che fino ad allora si paga per intero.
Cosa può andare storto
L'applicazione non si connette al database ripristinato
Quasi sempre è il gruppo di sicurezza: l'istanza nuova è nata con quello predefinito. Modificala e assegnale il gruppo di sicurezza che aveva l'originale. La seconda causa più comune è l'accessibilità pubblica: se l'originale era raggiungibile dall'esterno e la nuova no, o viceversa, controlla quell'opzione.
Utente e password non funzionano
Gli snapshot conservano utenti e password così com'erano al momento della copia. Se hai cambiato la password dopo, quello ripristinato ha quella vecchia. Puoi modificare la password master dalla console senza riavviare.
Mi sono ritrovato con due database e la fattura è salita
Normale: l'originale e quello ripristinato si pagano entrambi finché esistono. È il prezzo di un ripristino sicuro. Quando hai deciso quale tenere, fai un ultimo snapshot dell'altro e cancellalo.
Il backup automatico coincide con l'ora di maggior carico
Le finestre di backup e di manutenzione sono in UTC. Se non le hai scelte tu, AWS ne ha messa una a caso. Spostale a un'ora di notte nel tuo fuso orario, convertita in UTC.
In Simplio
In Simplio i database RDS e Lightsail compaiono accanto alle tue macchine, con il pulsante di snapshot, l'elenco delle copie con la data e lo stato dell'istanza in vista, e solo per le persone a cui dai quel permesso. Se una copia che avrebbe dovuto essere fatta non c'è, ti avvisa via email prima che ti serva.
La stessa cosa, in AWS e in Simplio
| Nella console di AWS | In Simplio | |
|---|---|---|
| Copia manuale del database | Console di RDS, selezionare, Azioni, Take snapshot: 4 clic | Pulsante di snapshot sul database: 1 clic |
| Vedere quali copie ci sono | Menu Snapshot, filtrare per istanza, regione per regione | Elenco delle copie con data e dimensione nella stessa scheda, tutti gli account |
| Accorgersi se manca una copia | Niente ti avvisa | Avviso via email |