pengembangan-web-mp-pd.com

Bagaimana cara mencadangkan Bucket AWS S3 tanpa memversi bucket sumber

Apakah ada cara untuk pulih dari penghapusan Amazon S3 Bucket yang tidak disengaja?

Kami memiliki informasi penting dalam keranjang kami dan saya perlu mengurangi risiko penghapusan yang tidak disengaja atau jahat dari ember itu sendiri.

Saya tahu saya dapat menyinkronkan seluruh bucket secara lokal, tetapi ini tidak terlalu praktis jika ukuran bucket saya 100GB.

Ada ide tentang strategi cadangan?

44
Nikhil Gupte

Pendekatan lain adalah mengaktifkan versi S3 pada bucket Anda. Anda kemudian dapat mengembalikan file yang dihapus dll --- Lihat dokumentasi S3 untuk cara mengaktifkan ini

Menggunakan alat pihak ketiga seperti BucketExplorer membuat bekerja dengan versi cukup sepele (vs memanggil API sendiri secara langsung).

Anda juga dapat mengaktifkan penghapusan otentikasi multi-faktor untuk keranjang S3 Anda - yang membuat "penghapusan tidak disengaja" menjadi sedikit lebih sulit;)

Selengkapnya tentang Hapus Otentikasi Multi Faktor
Lebih lanjut tentang Menghapus Objek

23
snarkyboojum

Anda dapat menggunakan s3cmd http://s3tools.org/s3cmd

Jadi untuk mencadangkan ember bernama mybucket

s3cmd mb s3://mybucket_backup
s3cmd --recursive cp s3://mybucket s3://mybucket_backup
13
Ian Purton

Ini bukan solusi yang murah, tetapi jika keranjang Anda benar-benar penting, inilah cara Anda melakukannya: boot sebuah contoh Amazon EC2 dan sinkronkan konten di sana secara berkala.

Amazon EC2 adalah penyedia hosting virtualisasi mereka. Anda dapat memutar instance Linux, Windows, dll dan menjalankan apa pun yang Anda inginkan. Anda membayar per jam, dan Anda mendapatkan ruang penyimpanan yang cukup besar secara lokal untuk server itu. Sebagai contoh, saya menggunakan contoh ukuran "besar", yang dilengkapi dengan ruang disk lokal 850GB.

Bagian yang keren adalah bahwa ia ada di jaringan yang sama dengan S3, dan Anda mendapatkan transfer tanpa batas antara S3 dan EC2. Saya menggunakan perangkat lunak $ 20 Jungle Disk pada instance Windows EC2, yang memungkinkan saya mengakses keranjang S3 saya seolah-olah itu adalah folder disk lokal. Kemudian saya dapat melakukan file batch terjadwal untuk menyalin hal-hal dari S3 dan ke ruang disk EC2 lokal saya. Anda dapat mengotomatiskannya untuk menyimpan cadangan per jam jika Anda mau, atau jika Anda ingin berjudi, mengatur JungleDisk (atau yang setara dengan Linux) untuk disinkronkan satu jam atau lebih. Jika seseorang menghapus file, Anda punya setidaknya beberapa menit untuk mendapatkannya kembali dari EC2. Saya akan merekomendasikan cadangan skrip biasa - mudah untuk menyimpan cadangan beberapa hari jika Anda mengompresnya ke volume 850GB.

Ini sangat berguna untuk pengiriman log SQL Server, tapi saya bisa melihat bagaimana itu akan mencapai tujuan Anda juga.

7
Brent Ozar

Salah satu solusi yang mungkin bisa dilakukan adalah dengan membuat "ember cadangan" dan menggandakan informasi sensitif Anda di sana. Secara teori, data Anda lebih aman di S3 daripada di hard drive Anda.

Juga, saya tidak yakin apakah penghapusan tidak disengaja adalah masalah nyata karena Anda harus tidak sengaja menghapus semua kunci ember Anda sebelum Anda bisa menghapus ember.

7
JAG

Untuk memodifikasi Brent (sangat baik) jawab sedikit; Anda tidak perlu membuat instance berjalan. Buat EC2 AMI yang menarik data Anda ke bawah, menyinkronkannya ke volume EBS, memotret volume itu dan menutupnya sendiri.

Anda bisa menjaga volume tetap berjalan dengan sendirinya, tetapi snapshotting harus cukup untuk cadangan. Jika AMI khusus Anda melakukan semua ini (termasuk mematikan sendiri setelah selesai) tanpa interaksi, maka skrip 'cadangan' Anda hanya perlu 'ec2run -n 1 -t m1.small AMI-' dan jalankan-dan-lupakan.

6
Andrew Lusk

Solusi lain yang mungkin adalah mereplikasi ember Anda ke zona Eropa di S3. Ini mungkin bertahan setelah penghapusan tidak disengaja Anda cukup lama untuk pulih.

6
shawnswaner