Backup dei dati memorizzati su Amazon S3


16

Ho un'istanza EC2 che esegue un server Web che memorizza i file caricati dagli utenti su S3. I file vengono scritti una volta e non cambiano mai, ma vengono recuperati di tanto in tanto dagli utenti. Probabilmente accumuleremo circa 200-500 GB di dati all'anno. Vorremmo garantire che questi dati siano al sicuro, in particolare da cancellazioni accidentali e vorremmo essere in grado di ripristinare i file che sono stati eliminati indipendentemente dal motivo.

Ho letto della funzione di controllo delle versioni per i bucket S3, ma non riesco a capire se è possibile ripristinare i file senza cronologia delle modifiche. Consulta i documenti AWS qui sul controllo delle versioni:

http://docs.aws.amazon.com/AmazonS3/latest/dev/ObjectVersioning.html

In quegli esempi, non mostrano lo scenario in cui i dati vengono caricati, ma mai modificati e quindi eliminati. I file eliminati in questo scenario sono recuperabili?

Quindi, abbiamo pensato di poter semplicemente eseguire il backup dei file S3 su Glacier utilizzando la gestione del ciclo di vita degli oggetti:

http://docs.aws.amazon.com/AmazonS3/latest/dev/object-lifecycle-mgmt.html

Ma sembra che questo non funzionerà per noi, poiché l'oggetto file non viene copiato su Glacier ma spostato su Glacier (più precisamente sembra che sia un attributo oggetto che viene modificato, ma comunque ...).

Quindi sembra che non esista un modo diretto per eseguire il backup dei dati S3 e il trasferimento dei dati da S3 ai server locali potrebbe richiedere molto tempo e potrebbe comportare costi di trasferimento significativi nel tempo.

Infine, abbiamo pensato di creare un nuovo bucket ogni mese da utilizzare come backup completo mensile e di copiare i dati del bucket originale su quello nuovo il primo giorno. Quindi utilizzare qualcosa di simile alla duplicità ( http://duplicity.nongnu.org/ ) sincronizzeremmo il bucket di backup ogni notte. Alla fine del mese avremmo messo i contenuti del bucket di backup nell'archiviazione Glacier e creato un nuovo bucket di backup utilizzando una nuova copia corrente del bucket originale ... e ripetendo questo processo. Sembra che funzioni e riduca al minimo i costi di archiviazione / trasferimento, ma non sono sicuro che la duplicità consenta direttamente trasferimenti da bucket a bucket senza trasferire prima i dati al client di controllo.

Quindi, immagino che ci siano un paio di domande qui. Innanzitutto, il versioning S3 consente il recupero di file che non sono mai stati modificati? C'è un modo per "copiare" i file da S3 a Glacier che mi sono perso? La duplicità o qualsiasi altro strumento può trasferire i file tra i bucket S3 direttamente per evitare i costi di trasferimento? Infine, sono fuori strada nel mio approccio al backup dei dati S3?

Grazie in anticipo per qualsiasi approfondimento che potresti fornire!

Aggiornare

Amazon ha recentemente annunciato che il controllo delle versioni ora funziona con le regole del ciclo di vita


aws.amazon.com/blogs/aws/archive-s3-to-glacier/… + in basso c'è un bel video breve su YouTube che spiega s3 al ghiacciaio
equivalente8

Risposte:


10

Ho letto della funzione di controllo delle versioni per i bucket S3, ma non riesco a trovare se> il ripristino è possibile per i file senza cronologia delle modifiche. Consulta i documenti AWS qui su> versioning:

Ho appena provato questo. Sì, è possibile ripristinare dalla versione originale. Quando si elimina il file, viene creato un marcatore di eliminazione e si può ripristinare la versione precedente, ovvero la sola, unica, revisione.

Quindi, abbiamo pensato che potremmo semplicemente fare il backup dei file S3 su Glacier usando il ciclo di vita degli oggetti> gestione:

Ma sembra che questo non funzionerà per noi, poiché l'oggetto file non viene copiato su Glacier ma> spostato su Glacier (più precisamente sembra che sia un attributo oggetto che viene modificato, ma> comunque ...).

Glacier è davvero pensato per lo stoccaggio a lungo termine, a cui si accede molto raramente. Può anche essere molto costoso recuperare gran parte dei tuoi dati in una volta sola, poiché non è pensato per il ripristino temporizzato di molti dati (in percentuale).

Infine, abbiamo pensato di creare un nuovo bucket ogni mese da utilizzare come backup mensile completo e di copiare i dati del bucket originale su quello nuovo il giorno 1. Quindi utilizzare qualcosa di simile alla duplicità ( http: //duplicity.nongnu. org / ) sincronizziamo il bucket di backup ogni> notte.

Non farlo, puoi avere solo 100 bucket per account, quindi in 3 anni avrai preso un terzo della tua franchigia con solo backup.

Quindi, immagino che ci siano un paio di domande qui. Innanzitutto, il versioning S3 consente il ripristino di> file che non sono mai stati modificati?

C'è un modo per "copiare" i file da S3 a Glacier che mi sono perso?

Non che io sappia


Grazie Sirex, un chiarimento: intendevamo mantenere un solo bucket di backup alla volta (il mese corrente) e archiviare il backup dell'ultimo mese su Glacier, quindi eliminare le copie di Glacier su alcune politiche generali di conservazione (ogni mese per 3 mesi, quindi trimestrale per un anno). Pensi che sia possibile o esiste qualche altra limitazione AWS che impedisce questa strategia?
Fiver,

hmm, immagino sia ragionevole. Non ci ho provato con rabbia (o ghiacciaio del resto, usiamo Sydney e non era disponibile quando ci siamo guardati dentro)
Sirex,

3

non mi piace avere s3 montato, perché è lento e può bloccarsi e si comporta come una vecchia scuola nfs. meglio solo su / giù, se necessario.

http://s3tools.org/s3cmd

è facile da scrivere ... non dimenticare il tuo file ~ / .s3cfg


Wow, sembra fantastico!
Jake Gould,

@nandoP +1 Avevo pensato di usare la s3cmd e di far girare la mia
Fiver

1

Sembra che potresti aver bisogno di S3FS che sostanzialmente monta i tuoi secchi S3 come se fossero file system locali:

http://code.google.com/p/s3fs/wiki/FuseOverAmazon

Preferisco usare questa versione biforcuta poiché mantiene la stessa struttura di cartelle di ciò che viene creato nel pannello di controllo Web per Amazon S3:

https://github.com/tongwang/s3fs-c

Quindi ho alcuni script di shell in atto che fondamentalmente usano rsyncper sincronizzare i dati con le mie configurazioni locali.

In generale, trovo che S3FS funzioni meglio per leggere contenuti inseriti in bucket Amazon S3. La scrittura non è coerente. Ma ai fini del backup dei bucket S3, la forcella Tony Wang di S3FS funziona alla grande.


1
Sembra utile. Trasferisce direttamente tra i bucket, senza scaricarli sul client?
Fiver

Forse sì. Lo uso principalmente per il montaggio su un server locale e il backup sui nostri computer locali. Ma dal momento che ha la capacità di scrittura, non vorrei che usarlo come "via tra" per mescolare i dati tra i bucket. Fondamentalmente su una macchina intermedia, montare un secchio su un punto di montaggio. Quindi montare l'altro bucket come un altro punto di mount. E poi fai solo un rsync. Ma come ho detto, i tempi / le date di modifica possono essere strani con Amazon S3 poiché non è in realtà un file system. Ma esperimento.
Jake Gould
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.