Come si esegue il backup di un bucket AWS S3 senza eseguire il versioning del bucket di origine [chiuso]


43

Esiste un modo per recuperare dalle eliminazioni accidentali di un bucket Amazon S3?

Abbiamo informazioni critiche nei nostri bucket e devo attenuare il rischio di eliminazioni accidentali o dannose del bucket stesso.

So che posso sincronizzare l'intero bucket localmente, ma questo non è troppo pratico se la mia dimensione del bucket è di 100 GB.

Qualche idea sulle strategie di backup?


Ecco una guida alla strategia di backup S3 che ho scritto: eladnava.com/backing-up-your-amazon-s3-buckets-to-ec2
Elad Nava

Risposte:


23

Un altro approccio è abilitare il versioning S3 sul tuo bucket. È quindi possibile ripristinare i file eliminati, ecc. Consultare la documentazione S3 per informazioni su come abilitarlo

L'uso di strumenti di terze parti come BucketExplorer rende piuttosto banale lavorare con il versioning ( anziché chiamare direttamente l'API).

Puoi anche abilitare l'eliminazione dell'autenticazione a più fattori per i bucket S3, il che rende un po 'più difficile la "cancellazione accidentale";)

Altre informazioni sull'autenticazione a più fattori Elimina
altre informazioni sull'eliminazione di oggetti


2
La domanda è raggiungere questo obiettivo senza il controllo delle versioni.
Anuruddha,

13

Puoi usare s3cmd http://s3tools.org/s3cmd

Quindi per fare il backup di un bucket chiamato mybucket

s3cmd mb s3://mybucket_backup
s3cmd --recursive cp s3://mybucket s3://mybucket_backup

3
C'è un modo più veloce per farlo? Se ci sono n chiavi nel bucket, ci sono almeno n richieste per la copia più alcune per l'elenco (e probabilmente controllando i risultati). Questo potrebbe richiedere del tempo per i secchi di grandi dimensioni.
Kariem,

1
Potresti dettagliare l'operazione di backup quando mybucket è danneggiato e devi ripristinare mybucket_backup?
Augustin Riedinger,

7

Questa non è una soluzione economica, ma se i tuoi bucket sono davvero fondamentali, ecco come farlo: avvia un'istanza Amazon EC2 e sincronizza il contenuto periodicamente.

Amazon EC2 è il loro provider di hosting di virtualizzazione. Puoi creare istanze di Linux, Windows, ecc. Ed eseguire tutto ciò che desideri. Paghi a ore e ottieni uno spazio di archiviazione abbastanza grande localmente per quel server. Ad esempio, utilizzo l'istanza di dimensioni "grandi", che viene fornita con 850 GB di spazio su disco locale.

La parte interessante è che si trova sulla stessa rete di S3 e ottieni trasferimenti illimitati tra S3 ed EC2. Uso il software Jungle Disk da $ 20 su un'istanza di Windows EC2, che mi consente di accedere ai miei bucket S3 come se fossero cartelle del disco locale. Quindi posso fare file batch programmati per copiare roba da S3 e sul mio spazio su disco EC2 locale. Puoi automatizzarlo per mantenere i backup orari se vuoi, o se vuoi giocare d'azzardo, imposta JungleDisk (o i suoi equivalenti Linux) per la sincronizzazione una volta all'ora circa. Se qualcuno elimina un file, hai almeno qualche minuto per recuperarlo da EC2. Consiglierei comunque i normali backup con script: è facile conservare alcuni giorni di backup se li comprimi su un volume da 850 GB.

Questo è davvero utile per la distribuzione dei log di SQL Server, ma posso vedere come raggiungerebbe anche il tuo obiettivo.


Suppongo che potresti usare una microistanza e aggiungere tutta l'EBS (Elastic Block Storage) di cui hai bisogno. Potrebbe essere un'opzione più economica.
Shawn Vader,

In realtà non dovresti, perché la larghezza di banda dedicata da e verso S3 dipende dalle dimensioni dell'istanza EC2. Se si desidera un grande throughput, è necessaria un'istanza grande (= $$$$). Il mio ex datore di lavoro l'ha scoperto nel modo più difficile.
John Cowan,

6

Una possibile soluzione potrebbe essere semplicemente quella di creare un "secchio di backup" e duplicare lì le tue informazioni sensibili. In teoria i tuoi dati sono più sicuri in S3 che nel tuo disco rigido.

Inoltre, non sono sicuro che le cancellazioni accidentali siano un vero problema perché dovrai eliminare accidentalmente tutte le chiavi del bucket prima di poter eliminare il bucket.


+1 poiché sarebbe abbastanza difficile eliminare "accidentalmente" tutto in un bucket e successivamente eliminare anche il bucket.

10
se stai usando uno strumento come s3cmd, non è più difficile di quanto non sia eliminare un intero albero di directory conrm -rf
jberryman

Che dire di Amazon Glacier? È un'opzione?
Tony,

6

Un'altra possibile soluzione è replicare il secchio nella zona Europa in S3. Ciò può persistere nel secchio dopo la cancellazione accidentale abbastanza a lungo da recuperare.


1
La replica di bucket è un'ottima opzione. Per un ulteriore livello di protezione, utilizzare la replica tra account per garantire che qualsiasi violazione dell'account di origine non comporti la perdita di dati.
Gareth Oakley,

6

Per modificare un po 'la risposta (eccellente) di Brent; non dovresti aver bisogno di mantenere l'istanza in esecuzione. Crea un AMI EC2 che abbassa i tuoi dati, li sincronizza su un volume EBS, scatta il volume e si spegne.

È possibile mantenere il volume in esecuzione anche da solo, ma lo snapshot dovrebbe essere sufficiente per un backup. Se la tua AMI personalizzata fa tutto questo (incluso lo spegnimento automatico dopo averlo fatto) senza interazione, lo script "backup" deve solo "ec2run -n 1 -t m1.small ami-" e sparare e dimenticare.


Mi piace l'idea che gli altri, questa sia la soluzione più ragionevole ed economica.
BMW,
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.