Bagaimana cara mencadangkan Bucket AWS S3 tanpa membuat versi bucket sumber [ditutup]

43

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?

anon
sumber
Berikut adalah panduan strategi cadangan S3 yang saya tulis: eladnava.com/backing-up-your-amazon-s3-buckets-to-ec2
Elad Nava

Jawaban:

23

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 langsung memanggil API sendiri).

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

Lebih lanjut tentang Multi Factor Authentication Hapus
Lebih Banyak tentang Menghapus Objek

snarkyboojum
sumber
2
Pertanyaannya adalah untuk mencapai ini tanpa versi.
Anuruddha
13

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
Ian Purton
sumber
3
Apakah ada cara yang lebih cepat untuk melakukan ini? Jika ada n kunci di dalam ember, setidaknya ada n permintaan untuk menyalin ditambah beberapa untuk daftar (dan mungkin memeriksa hasilnya). Ini mungkin membutuhkan waktu cukup lama untuk ember besar.
Kariem
1
Bisakah Anda merinci operasi cadangan saat mybucket rusak dan seseorang perlu memulihkan mybucket_backup?
Augustin Riedinger
7

Ini bukan solusi yang murah, tetapi jika ember Anda sangat penting, inilah cara Anda melakukannya: booting instance 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 kerennya adalah ia berada di jaringan yang sama dengan S3, dan Anda mendapatkan transfer tanpa batas antara S3 dan EC2. Saya menggunakan perangkat lunak Jungle Disk $ 20 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 ingin, 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.

Brent Ozar
sumber
Saya kira Anda bisa menggunakan contoh mikro dan menambahkan EBS (Elastic Block Storage) sebanyak yang Anda butuhkan. Mungkin pilihan yang lebih murah.
Shawn Vader
Sebenarnya Anda tidak boleh, karena bandwidth khusus ke dan dari S3 tergantung pada ukuran instance EC2. Jika Anda ingin throughput besar, Anda membutuhkan instance besar (= $$$$). Mantan majikan saya menemukan ini dengan cara yang sulit.
John Cowan
6

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.

Selain itu, saya tidak yakin apakah penghapusan yang tidak disengaja adalah masalah nyata karena Anda harus menghapus semua kunci ember Anda secara tidak sengaja sebelum Anda bisa menghapusnya.

PERASAAN
sumber
Memberi +1 karena akan sangat sulit untuk "tidak sengaja" menghapus semua yang ada di sebuah ember dan kemudian juga menghapusnya.
10
jika Anda menggunakan alat seperti s3cmd, tidak lebih sulit daripada menghapus seluruh pohon direktori denganrm -rf
jberryman
Bagaimana dengan Amazon Glacier? Apakah ini pilihan?
Tony
6

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

pembuat shawnswaner
sumber
1
Replikasi ember adalah pilihan yang bagus. Untuk lapisan perlindungan tambahan gunakan replikasi akun silang untuk memastikan setiap pelanggaran akun sumber tidak mengakibatkan hilangnya data.
Gareth Oakley
6

Untuk memodifikasi jawaban Brent (luar biasa) 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 fire-and-forget.

Andrew Lusk
sumber
Saya suka ide ini yang lain, ini adalah solusi yang lebih masuk akal dan lebih murah.
BMW