Жизненный цикл в S3‑совместимом хранилище: удаление и архивация

Правила жизненного цикла — это автоматические инструкции для S3‑совместимого хранилища, которые переводят объекты между классами хранения или удаляют их по истечении времени. Это помогает снижать расходы на хранение, упрощать архивирование и держать рабочие бакеты чистыми. Ниже — практические сценарии для малого и среднего бизнеса Беларуси и конкретные шаги для настройки.

Интернет‑магазин в Минске: фотографии товаров и версии изображений

Сценарий: магазин с каталогом в 10 000 SKU загружает фото в папку prod-images/. Старые версии изображений занимают место, а актуальные нужны быстро.

Как сделать:

  1. Включить версионирование для бакета. Это позволит хранить предыдущие версии без потери данных.
  2. Создать правило жизненного цикла с префиксом prod-images/:
    • перевести объекты в «холодный» класс хранения через 30 дней;
    • перевести в «архивный» через 365 дней;
    • удалять неактуальные версии (Noncurrent) через 730 дней.
  3. Добавить правило для незавершённых multipart‑загрузок: удалять через 7 дней.
  4. Протестировать на тестовом бакете с 100 файлов, убедиться, что переходы и удаление сработали.

Бьюти‑студия в Гродно: маркетинговые материалы и обучающие видео

Сценарий: студия хранит исходники видео, скриншоты и макеты в папке marketing/. Некоторые материалы нужны активно первые 6 месяцев, затем редко, но должны оставаться доступными несколько лет.

Как сделать:

  1. Пометить файлы тегом marketing=true при загрузке (если клиентская библиотека это поддерживает).
  2. Создать правило по тегу marketing=true:
    • через 180 дней перевод в холодное хранилище;
    • через 1095 дней перевод в архив;
    • по истечении 5 лет — удаление.
  3. Хранить оригиналы ключевых проектов отдельно и делать локальные снапшоты для быстрой работы. Для идей по локальным резервным копиям посмотрите материалы про ZFS‑снапшоты: ZFS‑снапшоты на белорусском VPS.

Кафе в Гомеле: логи POS и ежедневные бэкапы

Сценарий: POS генерирует логи и бэкапы базы продаж. Логи нужны для аналитики 90 дней, бэкапы — 30 дней на быстром доступе плюс резерв на 1 год в архиве.

Как сделать:

  1. Разделить потоки по префиксам: pos/logs/ и pos/backups/.
  2. Для pos/logs/: удалить объекты через 90 дней. Для pos/backups/:
    • хранить основной класс 30 дней;
    • перевести в архив через 180 дней;
    • удалять через 365 дней.
  3. Включить политику abort для незавершённых multipart, настроить уведомления при превышении объёма (через систему мониторинга хостинга).
  4. Регулярно проверять восстановление из архива на тестовом наборе файлов.

Если нужны геораспределённые резервные копии как дополнительная защита, посмотрите материал по созданию таких копий для МСБ: геораспределённые резервные копии на белорусском хостинге для МСБ.

Тонкости правил: теги, версии, префиксы и права доступа

Теги дают гибкость: можно управлять правилами не по папкам, а по семантике файлов. Версионирование защищает от случайного удаления, но требует правил для неактуальных версий. Префиксы проще настраивать, если система загрузки формирует предсказуемые пути. Проверьте права доступа: правила применяются к объектам, даже если у них разные ACL.

Конкретный совет по тестированию

Создайте отдельный бакет test-lifecycle. Загрузите 20 файлов с разными префиксами и тегами, включите версии, настройте правила и наблюдайте через 2–3 недели за переходами и удалениями. Так ошибки выявляются на малом объёме и не влияют на реальную работу.

Типичные ошибки

  • Правила настроены на префикс, а файлы загружаются в другие пути — правило не срабатывает.
  • Не включено версионирование до применения правил для неактуальных версий.
  • Слишком короткие сроки хранения для критичных данных — потеря важных файлов.
  • Отсутствие тестирования — нежелательные удаления в рабочем бакете.
  • Забыли настроить удаление незавершённых multipart‑загрузок — лишние объёмы и расходы.

Три шага на неделю:

  1. Перечислите все бакеты и их префиксы, оцените текущий объём и частоту доступа.
  2. Настройте тестовый бакет и испытайте правила для одного сценария (из примеров выше).
  3. Внедрите один рабочий набор правил на продакшн‑бакет и настройте мониторинг расхода хранения.


🗓️

Вернуться на главную →