Интеграция Amazon S3 и Loginom

Анализ преимуществ и недостатков трех наиболее удобных и распространенных подходов к подключению для выбора оптимального варианта.

Amazon Simple Storage Service (Amazon S3) — это служба объектного хранения данных, обеспечивающая масштабируемость, доступность данных, безопасность и производительность. Миллионы клиентов разных масштабов и отраслей хранят, управляют, анализируют и защищают любые объемы данных практически для любых целей, таких как озера данных, облачные приложения и мобильные приложения.

Некоторые крупные облачные провайдеры полностью поддерживают протокол S3, например: Selectel, VK Cloud, Timeweb Cloud и RuVDS Object Storage. Yandex Object Storage также поддерживает протокол S3, но с некоторыми ограничениями.

Экономичные классы хранения и удобные функции управления помогают оптимизировать затраты, организовать данные и гибко настраивать доступ под требования бизнеса и законодательства.

Среди подобных сервисов Amazon S3 пользуется большим спросом. Некоторые наши клиенты используют в своей работе связку Loginom и S3.

Существует множество способов подключения к Amazon S3. В данной статье рассмотрено 3 варианта. Они являются наиболее удобными и эффективными. Выбор конкретного варианта будет зависеть от потребностей клиента и его инфраструктуры.

Монтирование файловой системы

Один из способов интеграции S3 в Loginom — монтирование. Монтирование — это процесс, при котором операционная система добавляет каталоги и файлы с устройства хранения данных в файловую систему компьютера пользователя. Файловая система присоединяется к пустому каталогу, чтобы пользователь системы мог получить доступ к данным, доступным на устройстве хранения данных, через системный файловый менеджер.

Таким образом, в Loginom можно будет работать с данными файлами, словно они находятся на компьютере пользователя.

Реализовать это можно через монтирование сетевого ресурса. Осуществляется как через s3fs, так и через файловый клиент Mountpoint.

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

AWS Command Line Interface

Следующий способ — это работа через AWS Command Line Interface — консольная утилита, которая позволяет пользователям управлять ресурсами Amazon Web Services (AWS). С ее помощью можно настроить передачу файлов по расписанию, используя командную строку.

При помощи узла Выполнение программы в Loginom можно настроить отправку команд в AWS Command Line Interface. Этот способ работает только в ОС Windows.

Для работы в ОС Linux необходимо использовать посредник, к примеру shell2http, который будет посылать команды в AWS CLI через механизм REST-запроса из Loginom. Данная утилита не является единственно возможной для работы с AWS CLI.

Например, для создания корзины S3 выполните команду:

aws s3 mb s3://my-new-bucket

Эта команда создает новую корзину S3 с именем my-new-bucket. Надо принимать во внимание, что имя корзины должно быть глобально уникальным (уникальным в рамках всего S3).

Или можно получить список объектов в корзине:

aws s3 ls s3://my-bucket/

При помощи AWS Command Line Interface можно выполнить все необходимые операции с S3. Данный способ интеграции позволяет отправлять запросы по расписанию, установленному пользователем. Это покрывает недостаток предыдущего варианта в большом объеме запросов, однако этот способ подходит не всем.

REST API

Третий способ — это интеграция через REST API. Посредством отправки REST-запросов из Loginom организуется подключение к хранилищу Amazon S3. Это гибкий механизм: пользователь может загружать и скачивать файлы в любое время через интерфейс Loginom.

Он заключается в следующем:

  • В Loginom необходимо создать REST-сервис и настроить подключение к S3. Обязательной является аутентификация с помощью ключей доступа AWS (Access Key ID и Secret Access Key). Это обеспечивает безопасность ваших данных;
  • Далее при помощи узла REST-запрос составляется необходимый запрос к S3.

Результатом выполнения запроса будут таблицы с ответами сервиса и с результатами выполнения запросов, описанием ошибок, кодами завершения и состояния HTTP.

Преимущественно используются три метода: ListObjectV2, GetObject и PutObject.

  • ListObjectV2 — возвращает некоторые или все (до 1 000) объекты в корзине при каждом запросе. Можно использовать параметры запроса в качестве критериев выбора, чтобы вернуть подмножество объектов в корзине. Ответ 200 OK может содержать корректный или некорректный XML. Проанализировать его можно при помощи компонента Loginom — Разбор XML.
  • GetObject — извлекает объект из Amazon S3. В этом запросе указывается полное имя ключа для объекта.
  • PutObject — добавляет объект в корзину.

Loginom также имеет встроенный планировщик задач, с помощью которого можно настроить исполнение REST-запросов по расписанию.

Сравнение методов интеграции

КритерийМонтирование файловой системыAWS CLIREST API
Сложность настройкиСредняя (требует установки s3fs/Mountpoint)Высокая (нужны скрипты, для Linux - shell2http)Средняя (требует знания API)
ПроизводительностьНизкая (высокая нагрузка)СредняяВысокая
Простота использованияВысокаяСредняяНизкая
ГибкостьОграниченная (работа как с файлами)ВысокаяМаксимальная (полный контроль)
Доступность данныхПостоянная (как локальный диск)По требованию (по расписанию)По требованию (по расписанию)
КроссплатформенностьLinux/WindowsWindows/Linux (через обходной путь)Linux/Windows
БезопасностьЗависит от настроек монтированияВысокая (IAM-роли)Высокая (HTTPS + ключи)

При выборе способа интеграции Amazon S3 с Loginom следует учитывать конкретные задачи. Для постоянного доступа к файлам, аналогичного работе с локальным диском, оптимально подходит монтирование файловой системы. Этот вариант отличается простотой использования, но может создавать повышенную нагрузку на сервер.

В случаях, когда требуется автоматизированная обработка данных по расписанию, рекомендуется использовать AWS CLI: данный подход обеспечивает гибкость управления через команды, однако требует дополнительной настройки, особенно в Linux-средах.

Если же приоритетом является максимальный контроль операций, наилучшим решением станет REST API, сочетающий эффективное использование ресурсов с возможностью точечного управления данными, хотя и предполагающий знание API S3.

Каждый из методов обладает уникальными преимуществами и ограничениями, поэтому окончательный выбор должен основываться на специфике технических требований и особенностях инфраструктуры.

Другие материалы по теме:

Факты об интеграциях в Loginom: как преобразить разноплатформенный IT-ландшафт

Loginom в Kubernetes

#интеграция

Смотрите также

Подписывайтесь на телеграмм-канал Loginom
Новости, материалы по аналитике, кейсы применения, активное сообщество
Подписаться