Kullanıcıların yüklenen dosyalarını S3'e depolayan bir web sunucusu çalıştıran bir EC2 örneğim var. Dosyalar bir kez yazılır ve asla değişmez, ancak kullanıcılar tarafından ara sıra alınır. Muhtemelen yılda 200-500GB civarında veri biriktireceğiz. Bu verilerin, özellikle de yanlışlıkla yapılan silme işlemlerinden korunduğundan emin olmak istiyoruz ve nedenden bağımsız olarak silinen dosyaları geri yükleyebilmek istiyoruz.
S3 kovaları için sürüm oluşturma özelliği hakkında okudum, ancak değişiklik geçmişi olmayan dosyalar için kurtarma mümkün olup olmadığını bulamıyorum. Sürüm oluşturma konusunda AWS belgelerine bakın:
http://docs.aws.amazon.com/AmazonS3/latest/dev/ObjectVersioning.html
Bu örneklerde, verilerin yüklendiği, hiçbir zaman değiştirilmediği ve ardından silindiği senaryoyu göstermezler. Bu senaryoda silinen dosyalar kurtarılabilir mi?
Ardından, nesne yaşam döngüsü yönetimini kullanarak S3 dosyalarını Glacier'a yedekleyebileceğimizi düşündük:
http://docs.aws.amazon.com/AmazonS3/latest/dev/object-lifecycle-mgmt.html
Ancak, dosya nesnesi Glacier'a kopyalanmadığı, ancak Glacier'a taşındığı için bu bizim için işe yaramayacak gibi görünüyor (daha doğrusu, değiştirilen bir nesne niteliği gibi görünüyor, ancak yine de ...).
Bu nedenle, S3 verilerini yedeklemenin doğrudan bir yolu yoktur ve verilerin S3'ten yerel sunuculara aktarılması zaman alıcı olabilir ve zaman içinde önemli aktarım maliyetlerine neden olabilir.
Son olarak, her ay aylık tam bir yedekleme görevi görecek yeni bir grup oluşturacağımızı ve orijinal grup verilerini 1. Günde yeni olana kopyalayacağımızı düşündük. Sonra tekrar gibi bir şey kullanarak ( http://duplicity.nongnu.org/ ) yedek kovayı her gece senkronize ederiz. Ayın sonunda yedek grubun içeriğini Glacier deposuna koyar ve orijinal grubun yeni, güncel bir kopyasını kullanarak yeni bir yedek kova oluştururuz ve bu işlemi tekrar ederiz. Bu, işe yarayacak ve depolama / aktarım maliyetlerini en aza indirecek gibi görünüyor, ancak çoğaltmanın, önce kontrol eden istemciye veri getirmeden kovadan kovaya aktarımlara doğrudan izin verip vermediğinden emin değilim.
Yani, sanırım burada birkaç soru var. Birincisi, S3 sürümlendirme hiç değiştirilmemiş dosyaların kurtarılmasına izin veriyor mu? Kaçırdığım dosyaları S3'ten Glacier'a kopyalamanın bir yolu var mı? Yineleme veya başka bir araç, transfer maliyetlerini önlemek için dosyaları S3 kovaları arasında doğrudan aktarabilir mi? Son olarak, S3 verilerini yedekleme yaklaşımımın işaretini kaldırıyor muyum?
Sağlayabileceğiniz herhangi bir fikir için şimdiden teşekkür ederiz!
Güncelleme
Amazon kısa süre önce versiyonlamanın artık yaşam döngüsü kurallarıyla çalıştığını duyurdu