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 del volume di storage dell'istanza di database, eseguendo il backup dell'intera istanza DB, non solo dei singoli database. Con AmazonRDS, puoi stabilire una finestra di backup per 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 dei dati durante una finestra di backup definita al momento della creazione dell'istanza DB. Puoi configurare un periodo di conservazione fino a 35 giorni per il backup automatico. Amazon carica RDS inoltre i log delle transazioni per le istanze DB su Amazon S3 ogni 5 minuti. Amazon RDS utilizza i tuoi backup giornalieri insieme ai log delle transazioni del database per ripristinare l'istanza DB. Puoi ripristinare l'istanza in qualsiasi momento durante il periodo di conservazione, fino a LatestRestorableTime (in genere, gli ultimi cinque minuti).

    Per conoscere l'orario di ripristino più recente per le tue istanze DB, usa la DescribeDBInstances API chiamata. Oppure consulta la scheda Descrizione per il database sulla RDS console Amazon.

    Quando avvii unPITR, i log delle transazioni vengono combinati con il backup giornaliero più appropriato per ripristinare l'istanza DB all'ora richiesta.

  • Le istantanee DB sono backup avviati dall'utente che puoi utilizzare per ripristinare l'istanza DB in uno stato noto con la frequenza desiderata. È quindi possibile ripristinare tale stato in qualsiasi momento. Puoi utilizzare la RDS console Amazon o la CreateDBSnapshot API chiamata per creare snapshot DB. Queste istantanee vengono conservate fino a quando non utilizzi la console o la DeleteDBSnapshot API chiamata per eliminarle esplicitamente.

Entrambe queste opzioni di backup sono supportate per Amazon RDS in AWS Backup, che fornisce anche altre funzionalità. Prendi in considerazione l'idea di AWS Backup impostare un piano di backup standard per i tuoi RDS database Amazon e utilizza le opzioni di backup delle istanze avviate dall'utente quando i tuoi 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 RDS DB sul relativo disco locale. In alcuni casi, è possibile utilizzare le funzioni di backup e ripristino native utilizzando le utilità client. Ad esempio, puoi utilizzare il comando mysqldump con un database Amazon RDS My per esportare un SQL database sul tuo computer client locale. In alcuni casi, Amazon offre RDS anche opzioni aumentate per eseguire un backup e un ripristino nativi di un database. Ad esempio, Amazon RDS fornisce procedure archiviate per esportare e importare backup di RDS database di database SQL Server.

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

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

Quando si ripristina un database utilizzando PITR o uno snapshot dell'istanza RDS DB, viene creata una nuova istanza DB con un nuovo endpoint. In questo modo, è possibile creare più istanze DB da uno specifico snapshot o point-in-time del database. Quando si ripristina un'istanza DB per sostituire un'istanza RDS DB attiva, sono necessarie considerazioni particolari. RDS Ad esempio, è necessario determinare in che modo reindirizzare i client di 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 l'ora di ripristino dei dati e il tempo di ripristino quando la nuova istanza inizia a ricevere le scritture.

È possibile creare un DNS CNAME record separato che punti all'endpoint dell'istanza DB e fare in modo che i client utilizzino questo DNS nome. Quindi puoi aggiornare l'endpoint CNAME to point a un nuovo endpoint ripristinato senza dover aggiornare i client del database.

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

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

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

Scrivete le vostre applicazioni in modo da gestire senza problemi gli errori di connessione al database, con nuovi tentativi utilizzando il backoff esponenziale. Ciò consente all'applicazione di eseguire il ripristino quando una connessione al database diventa non disponibile durante un ripristino senza causare un arresto anomalo imprevisto dell'applicazione.

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