У меня есть экземпляр 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 недавно объявила, что управление версиями теперь работает с правилами жизненного цикла
источник
Ответы:
Я только что попробовал это. Да, вы можете восстановить с оригинальной версии. Когда вы удаляете файл, он делает маркер удаления, и вы можете восстановить версию до этого, то есть: единственную ревизию.
Glacier действительно предназначен для длительного хранения, к которому очень редко обращаются. Также может быть очень дорого получать большую часть ваших данных за один раз, поскольку это не предназначено для восстановления большого количества данных на определенный момент времени (в процентном отношении).
Не делайте этого, у вас может быть только 100 корзин на одну учетную запись, поэтому через 3 года вы будете получать треть от вашего объема корзины только за счет резервных копий.
да
Не то, что я знаю о
источник
мне не нравится, когда s3 монтируется, потому что он медленный и может зависать и работает как nfs старой школы. лучше просто вверх / вниз по мере необходимости.
его легко написать ... не забывайте свой файл ~ / .s3cfg
источник
Похоже, вам может понадобиться S3FS, которая в основном монтирует ваши корзины S3, как если бы они были локальными файловыми системами:
http://code.google.com/p/s3fs/wiki/FuseOverAmazon
Я предпочитаю использовать эту разветвленную версию, поскольку она сохраняет ту же структуру папок, что и созданная в веб-панели управления для Amazon S3:
https://github.com/tongwang/s3fs-c
Затем у меня есть несколько сценариев оболочки, которые в основном используются
rsync
для синхронизации данных с моими локальными настройками.В целом, я считаю, что S3FS лучше всего подходит для чтения контента, размещенного в корзинах Amazon S3. Написание не так последовательно. Но для резервного копирования S3-баков вилка Tony Wang из S3FS прекрасно работает.
источник