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!