Архивирование в AWS Glacier (часть 1)

Опубликовано: 19.07.2017
Автор: Виталий Бочкарев
Поддержать автора статьи по этой ссылке

Amazon Web Services Glacier - это облачный архив с низкой стоимостью хранения - это место для сохранения файлов с длительным сроком хранения и редким использованием. Другими словами - это хранилище для того, что жалко удалить, что может понадобиться через несколько лет. Главным преимуществом этого сервиса является цена - около 5 центов за 1 гигабайт в год.

AWS Glacier не очень удобен в использовании с точки зрения конечного пользователя, так как работа с архивами растягивается на несколько часов и даже суток, к тому же интерфейс у сервиса не позволяет управлять файлами - большинство операций нужно делать из командной строки. В этой серии заметок я предлагаю решение, которое позволит компании автоматически архивировать файлы для хранения в AWS Glacier. Моё решение основано на скриптах PowerShell, библиотеках AWS Tools For Windows, базе данных MS SQL, расписании Windows Task Scheduler и веб-сервере IIS.

Логика работы проекта:

  1. Подготовка файлов к перемещению в облачный архив - сжатие в ZIP архив.
  2. Регистрация архива и его содержимого в базе данных компании.
  3. Копирование архива в облачное хранилище.
  4. Индексирование облачного хранилища.
  5. Сравнение размеров архивов на сервере компании и в AWS Glacier.
  6. Удаление оригинального архива с сервера компании.

Составные части проекта:

  1. Коллекция архивов (vault) в AWS Glacier, куда сохраняются архивы компании.
  2. Сервер Windows Server, где собираются файлы для архивирования и происходят все процессы с архивами.
  3. База данных MS SQL, где хранится информация об архивах, их содержимом, статусах архивирования и времени создании.
  4. Скрипт для создания архива из набора файлов на сервере компании.
  5. Скрипт для копирования архива в AWS Glacier (совмещен со скриптом создания архива).
  6. Скрипт для индексирования содержимого коллекции в AWS Glacier.
  7. Скрипт для сравнения размеров архивов и удалении файлов на сервере компании.
  8. Веб-сайт ASP.NET на сервере IIS для отображения базы данных об архивах.
  9. Вспомогательный скрипт для нарезки больших архивов на части и формировании команд для ручной загрузки в AWS Glacier (подробнее о скрипте в этой заметке).
Продолжение в заметке "Servers - Архивирование в AWS Glacier (часть 2)".