У меня есть экземпляр EC2, на котором работает веб-сервер, который хранит загруженные пользователями файлы на S3. Файлы записываются один раз и никогда не изменяются, но иногда извлекаются пользователями. Скорее всего, мы будем накапливать около 200-500 ГБ данных в год. Мы хотели бы обеспечить безопасность этих данных, особенно от случайного удаления, и хотели бы иметь возможность восстанавливать удаленные файлы независимо от причины.
Я читал о функции управления версиями для корзин S3, но не могу найти, возможно ли восстановление для файлов без истории изменений. Смотрите документацию по AWS здесь по версии:
http://docs.aws.amazon.com/AmazonS3/latest/dev/ObjectVersioning.html
В этих примерах они не показывают сценарий, в котором данные загружаются, но никогда не изменяются, а затем удаляются. Можно ли восстановить файлы в этом сценарии?
Затем мы подумали, что можем просто сделать резервную копию файлов S3 на Glacier, используя управление жизненным циклом объекта:
http://docs.aws.amazon.com/AmazonS3/latest/dev/object-lifecycle-mgmt.html
Но, похоже, у нас это не сработает, так как объект файла не копируется в Glacier, а перемещается в Glacier (точнее, кажется, что это атрибут объекта, который изменяется, но в любом случае ...).
Таким образом, кажется, что прямого способа резервного копирования данных S3 нет, и передача данных с S3 на локальные серверы может занимать много времени и со временем может привести к значительным затратам на передачу.
Наконец, мы подумали, что будем создавать новый контейнер каждый месяц, чтобы он служил ежемесячной полной резервной копией, и копировать данные исходного контейнера в новый день 1-го дня, а затем использовать что-то вроде двуличия ( http://duplicity.nongnu.org/ ) мы будем синхронизировать резервное ведро каждую ночь. В конце месяца мы поместим содержимое хранилища резервных копий в хранилище Glacier и создадим новое хранилище резервных копий, используя новую текущую копию исходного хранилища ... и повторим этот процесс. Кажется, что это сработало бы и минимизировало затраты на хранение / передачу, но я не уверен, что двуличность допускает прямые передачи между сегментами без предварительной передачи данных управляющему клиенту.
Итак, я думаю, здесь есть пара вопросов. Во-первых, позволяет ли управление версиями S3 восстанавливать файлы, которые никогда не были изменены? Есть ли какой-нибудь способ «скопировать» файлы с S3 на Glacier, которые я пропустил? Может ли дублирование или любой другой инструмент передавать файлы между корзинами S3 напрямую, чтобы избежать затрат на передачу? Наконец, я не в курсе моего подхода к резервному копированию данных S3?
Заранее спасибо за любую информацию, которую вы можете предоставить!
Обновить
Amazon недавно объявила, что управление версиями теперь работает с правилами жизненного цикла