Backup e ripristino per Amazon RDS - AWS Guida prescrittiva

Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.

Backup e ripristino per Amazon RDS

Amazon RDS include funzionalità per automatizzare i backup dei database. Amazon RDS crea uno snapshot dei volumi di storage dell'istanza database, eseguendo il backup dell'intera istanza database anziché dei singoli database. Utilizzando Amazon RDS, puoi creare una finestra di backup per i backup automatici, creare istantanee di istanze di database e condividere e copiare istantanee tra regioni e account.

Amazon RDS offre due diverse opzioni per il backup e il ripristino delle istanze DB:

  • I backup automatici forniscono point-in-time il ripristino (PITR) dell'istanza DB. I backup automatici sono attivati per impostazione predefinita quando si crea una nuova istanza DB.

    Amazon RDS esegue un backup giornaliero completo dei dati durante una finestra di backup che definisci quando crei l'istanza DB. È possibile configurare un periodo di mantenimento di massimo 35 giorni per il backup automatico. Amazon RDS carica inoltre i log delle transazioni per le istanze database in Amazon S3 ogni 5 minuti. Amazon RDS utilizza i backup giornalieri insieme ai registri delle transazioni del database per ripristinare l'istanza DB. Puoi ripristinare l'istanza in qualsiasi momento durante il periodo di conservazione, fino agli ultimi cinque minutiLatestRestorableTime (in genere, gli ultimi cinque minuti).

    Per trovare l'ultima ora ripristinabile per le tue istanze DB, usa la chiamataDescribeDBInstances API. Oppure cerca il database nella scheda Descrizione sulla console Amazon RDS.

    Quando si avvia un PITR, i registri delle transazioni vengono combinati con il backup giornaliero più appropriato per ripristinare l'istanza DB all'ora richiesta.

  • Le snapshot DB di sono backup avviati dall'utente che puoi utilizzare per ripristinare la tua istanza database in uno stato noto con la frequenza che preferisci. È quindi possibile ripristinare tale stato in qualsiasi momento. Puoi usare la console Amazon RDS o la chiamataCreateDBSnapshot API per creare istantanee DB. Queste istantanee vengono conservate finché non si utilizza la console o la chiamataDeleteDBSnapshot API per eliminarle in modo esplicito.

Entrambe queste opzioni di backup sono supportate per Amazon RDS inAWS Backup, che offre anche altre funzionalità. Prendi in considerazione l'idea diAWS Backup configurare un piano di backup standard per i tuoi database Amazon RDS e di utilizzare le opzioni di backup delle istanze avviate dall'utente quando i piani di backup per un determinato database sono unici.

Amazon RDS impedisce l'accesso diretto allo storage sottostante utilizzato dall'istanza DB. Ciò impedisce inoltre di esportare direttamente il database su un'istanza DB RDS sul relativo disco locale. In alcuni casi, è possibile utilizzare le funzioni native di backup e ripristino utilizzando le utilità client. Ad esempio, puoi utilizzare il comando mysqldump con un database MySQL Amazon RDS per esportare un database sul tuo computer client locale. In alcuni casi, Amazon RDS offre anche opzioni avanzate per eseguire un backup e un ripristino nativi di un database. Ad esempio, Amazon RDS fornisce procedure archiviate per esportare e importare i backup dei database RDS dei database SQL Server.

Assicurati di testare a fondo il processo di ripristino del database e il suo impatto sui client del database come parte del tuo approccio generale di backup e ripristino.

Utilizzo dei record DNS CNAME per ridurre l'impatto sul client durante il ripristino del database

Quando si ripristina un database utilizzando PITR o un'istantanea dell'istanza DB RDS, viene creata una nuova istanza DB con un nuovo endpoint. In questo modo, è possibile creare più istanze DB da un'istantanea o da un momento specifico del database. Esistono considerazioni particolari quando si ripristina un'istanza DB RDS per sostituire un'istanza DB RDS attiva. Ad esempio, è necessario determinare in che modo reindirizzare i client del database esistenti alla nuova istanza con interruzioni e modifiche minime. È inoltre necessario garantire la continuità e la coerenza dei dati all'interno del database considerando il tempo di ripristino dei dati e il tempo di ripristino quando la nuova istanza inizia a ricevere scritture.

Puoi creare un record DNS CNAME separato che punti all'endpoint dell'istanza DB e fare in modo che i tuoi clienti utilizzino questo nome DNS. È quindi possibile aggiornare il CNAME in modo che punti a un nuovo endpoint ripristinato senza dover aggiornare i client del database.

Imposta il valore del tuo record CNAME (Time to Live) (TTL) per il tuo record CNAME su un valore elevato. Il TTL specificato determina per quanto tempo il record viene memorizzato nella cache con i resolver DNS prima che venga effettuata un'altra richiesta. È importante notare che alcuni resolver o applicazioni DNS potrebbero non rispettare il TTL e potrebbero memorizzare nella cache il record più a lungo del TTL. Per Amazon Route 53, specifichi un valore elevato (ad esempio, 172.800 secondi, o due giorni), il numero di chiamate che i resolver ricorsivi DNS devono effettuare a Route 53 per ottenere le informazioni aggiornate in questo record. Ciò riduce la latenza e riduce la fattura per il servizio Route 53. Per ulteriori informazioni, consulta Come Amazon Route 53 instrada il traffico per il tuo dominio.

Le applicazioni e i sistemi operativi client potrebbero anche memorizzare nella cache le informazioni DNS che è necessario svuotare o riavviare per avviare una nuova richiesta di risoluzione DNS e recuperare il record CNAME aggiornato.

Quando avvii un ripristino del database e sposti il traffico verso l'istanza ripristinata, verifica che tutti i tuoi client stiano scrivendo sull'istanza ripristinata anziché sull'istanza precedente. L'architettura dei dati potrebbe supportare il ripristino del database, l'aggiornamento del DNS per spostare il traffico verso l'istanza ripristinata e quindi la correzione di eventuali dati che potrebbero essere ancora scritti nell'istanza precedente. In caso contrario, puoi interrompere l'istanza esistente prima di aggiornare il record DNS CNAME. Quindi tutti gli accessi provengono dall'istanza appena ripristinata. Ciò può causare temporaneamente problemi di connessione per alcuni client del database che è possibile gestire singolarmente. Per ridurre l'impatto sul client, è possibile eseguire il ripristino del database durante una finestra di manutenzione.

Scrivi le tue applicazioni per gestire gli errori di connessione al database in modo corretto, ripetendo i tentativi utilizzando il backoff esponenziale. Ciò consente all'applicazione di ripristinarsi quando una connessione al database non è disponibile durante un ripristino senza causare un arresto imprevisto dell'applicazione.

Dopo aver completato il processo di ripristino, è possibile mantenere l'istanza precedente in uno stato di interruzione. In alternativa, puoi utilizzare le regole dei gruppi di sicurezza per limitare il traffico all'istanza precedente fino a quando non sarai sicuro che non sia più necessario. Per un approccio di smantellamento graduale, è necessario innanzitutto limitare l'accesso a un database in esecuzione da parte del gruppo di sicurezza. Alla fine, puoi interrompere l'istanza quando non è più necessaria. Infine, crea uno snapshot dell'istanza del database ed eliminala.