Монтирование Amazon S3 в Linux с NetDrive

4 мин чтения provider-guide amazon-s3 linux
Steve
SteveSenior Engineer
Настройка экспериментальной Linux-сборки NetDrive для монтирования бакета Amazon S3 как обычной точки монтирования Ubuntu — от установки с GitHub до первого подключения.

CI-раннеру, которому нужно читать тестовые фикстуры из S3, или сборочной машине, забирающей релизные артефакты из бакета перед упаковкой, — обоим нужно, чтобы бакет выглядел как обычный каталог, а не как цель для самодельной обёртки над aws s3 sync, которую кому-то придётся поддерживать. Linux-сборка NetDrive монтирует S3 так же, как её аналоги для Windows и macOS, хотя выходит как экспериментальный релиз — прежде чем указывать на неё продакшн-инструментарий, стоит трезво оценить ожидания.

NetDrive drive manager showing Google Drive, S3 and pCloud mounted as drive lettersMounted clouds appearing as native drives in Windows File Explorer

Монтирование бакета S3 в Ubuntu

NetDrive показывает Google Drive, OneDrive, S3, SFTP, WebDAV и другие хранилища как обычные диски в Windows и macOS — без синхронизации и полной загрузки файлов.

  • Работает на Ubuntu 16.04 и новее
  • Тот же процесс подключения S3, что и в сборках для Windows и macOS
  • Читайте файлы через ls, cat или любой инструмент, ожидающий обычный путь
WindowsmacOS
Скачать NetDrive для Linux →

Бесплатный пробный период. Доступны бессрочная лицензия и подписка.

Почему монтирование, а не синхронизация

Такие инструменты, как aws s3 sync или s3cmd, копируют объекты на локальный диск по расписанию, а значит локальная копия может разойтись с бакетом и дублирует затраты на хранение всего, что вы синхронизируете. Монтирование S3 через NetDrive убирает этот шаг: точка монтирования разрешает чтение и запись напрямую в бакет, так что скрипт с cat /mnt/s3-bucket/build-artifacts/latest.tar.gz получает актуальный объект без промежуточной задачи синхронизации. Для бакета, используемого как общее временное пространство между CI-задачей и скриптом деплоя, это устраняет целый класс багов вида «какая копия устарела».

NetDrive монтирует облачное хранилище как локальный диск — то же базовое взаимодействие обеспечивает Linux-сборка в точке монтирования

Установка NetDrive в Ubuntu

NetDrive для Linux нет в стандартных репозиториях пакетов Ubuntu, поэтому установка происходит через GitHub, а не через apt:

  1. Перейдите на github.com/NetDrive/installer и скачайте релиз, соответствующий вашей версии Ubuntu.
  2. Следуйте примечаниям к релизу в репозитории установщика для этой версии — перед тем как NetDrive сможет что-либо монтировать, нужно установить компонент драйвера.
  3. Установите сам пакет NetDrive.
  4. Запустите NetDrive. При первом запуске загружается компонент драйвера, что может потребовать sudo в зависимости от настроек прав в вашей системе.

Поскольку обновления выходят как релизы GitHub, проверка новых версий — это ручной шаг, а не то, что делает за вас apt upgrade, — стоит упомянуть об этом в любом runbook, описывающем эту машину.

Подключение бакета S3

После запуска NetDrive:

  1. Откройте Drive Manager в NetDrive и нажмите + Add Drive.
  2. Выберите Amazon S3 из списка провайдеров.
  3. Введите ваш AWS access key и secret key, затем выберите целевой бакет и, при необходимости, префикс папки внутри него, если нужно смонтировать только часть данных.
  4. Задайте точку монтирования — подойдёт путь вроде /mnt/s3-bucket или любой пустой каталог, к которому у вас есть доступ на запись, — и подключитесь.

Drive Manager в NetDrive для добавления и настройки облачного диска — та же концепция интерфейса используется Linux-сборкой для точек монтирования

Коннектор S3 в NetDrive поддерживает многочастную загрузку для файлов от 5 ГБ и больше, так что отправка крупного сборочного артефакта или архива обратно в бакет через точку монтирования не требует особой обработки с вашей стороны.

После подключения убедитесь, что монтирование действительно сработало, проверив это из терминала — mount | grep s3-bucket или простой ls на точке монтирования — а не полагаясь только на GUI. Это небольшая привычка, которую стоит сохранить при работе с экспериментальной сборкой, особенно перед тем как завязать скрипт на наличие этого пути.

Подтверждение того, что облачный диск успешно подключился после монтирования

Что учитывать в Linux

Несколько отличий от сборок для Windows и macOS важны, если вы стандартизируете парк машин на Ubuntu под эту настройку:

  • Отдельный цикл релизов: компонент драйвера для Linux поддерживается по своему собственному графику, так что исправление, вышедшее для Windows или macOS, не обязательно попадёт в Linux в ту же неделю.
  • Нет интеграции с пакетным менеджером: распространение только через релизы GitHub — на момент написания нет ни PPA, ни Snap.
  • Экспериментальный статус: страница сравнения самой NetDrive помечает поддержку Linux звёздочкой, которая означает именно то, что означает. Windows и macOS — это активно дорабатываемые целевые платформы; заложите время на тестирование вашей конкретной версии Ubuntu и рабочей нагрузки, прежде чем доверять точке монтирования работать без присмотра месяцами, и держите запасной вариант (например, задачу синхронизации по расписанию) для всего критически важного.

Ничто из этого не исключает S3 для CI-раннера или dev-машины, которой нужен периодический доступ к бакету, — это разумный вариант именно для такой нагрузки. Избегать стоит сценария «поставить продакшн-конвейер на это без предварительного тестирования».

Итог

Монтирование S3 в Ubuntu даёт вам такой же доступ к бакету в стиле буквы диска, какой NetDrive предоставляет в Windows и macOS, через установщик, который живёт на GitHub, а не в apt. Протестируйте это на вашей реальной версии Ubuntu, прежде чем полагаться на это в чём-то, работающем без присмотра. Для того же коннектора на более тщательно протестированной платформе см. Mount Amazon S3 on macOS with NetDrive, а для более широкой картины по Linux — NetDrive on Ubuntu Linux.

— Steve, NetDrive