MinIO – объектное хранилище с открытым исходным кодом, которое можно использовать как локальный аналог Amazon S3. MinIO позволяет хранить любые файлы: изображения, видео, архивы, резервные копии или документы. Сохранение файлов в хранилище производится в виде объектов внутри бакетов, а доступ к ним осуществляется через HTTP API. MinIO написан на языке Go, поэтому работает быстро и стабильно даже под высокой нагрузкой. Веб-интерфейс MinIO – простой и удобный: можно создавать бакеты, загружать и скачивать файлы, а также управлять правами доступа. Он поддерживает шифрование, токены, IAM-политики и совместим с большинством программ, которые умеют работать с Amazon S3. MinIO хорошо подходит для создания собственного облака, хранения бэкапов, медиаконтента или встраивания в инфраструктуру приложений.
Реализация S3-хранилища на виртуальном выделенном сервере удобна в установке и использовании именно при помощи MinIO. Наиболее распространённый вариант – инсталляция и настройка MinIO на Linux-систему. В настоящей же статье разберём, как развернуть S3-хранилище с помощью MinIO на VPS, работающем под управлением Windows Server 2016.
Как развернуть S3-хранилище с помощью MinIO на Windows Server 2016
Чтобы организовать S3-хранилище на Windows при помощи MinIO, во-первых, создайте каталог, который будет использоваться сервисом для сохранения данных, например, C:\DATASTORE.
Затем загрузите исполняемый файл MinIO для 64-хразрядной Windows-системы при помощи данной ссылки. Загруженный файл скопируйте, например, в каталог C:\MinIO. После чего запустите командную строку и выполните команду:
C:\MinIO\minio.exe server C:\DATASTORE

Из вывода команды можно узнать следующую информацию:
- через TCP-порт 9000 доступен основной S3 API интерфейс, через который программы, такие как
rclone,Duplicati,Nextcloud,aws-cli, могут подключаться к хранилищу; - в качестве значений
Access keyиSecret keyследует использоватьminioadminиminioadmin; - через TCP-порт 49717 доступна веб-панель MinIO, к которой можно подключиться в браузере при помощи ссылки вида
http://193.124.58.228:49717, где193.124.58.228– это IP-адрес нашей тестовой виртуальной машины; - в качестве логина и пароля для подключения к веб-панели следует использовать
minioadminиminioadmin; - при помощи утилиты командной строки
mc, предназначенной для управления S3-хранилищами, в том числе и MinIO, можно подключиться к данному серверу, используя указанный пример команды; - предупреждение о безопасности уведомляет об использовании дефолтных логина и пароля и необходимости их изменения.
Таким образом, пока выполняется данная команда, можно подключиться к хранилищу через веб-интерфейс MinIO, либо через API или командную строку.
Как настроить доступ к MinIO в брандмауэре Windows
При этом, чтобы получить возможность подключения к веб-панели через браузер, необходимо открыть доступ к серверу в брандмауэре Windows для указанного порта. Сложность заключается в том, что при каждом новом запуске команды номер порта будет изменяться. Но в команде запуска MinIO в качестве дополнительной опции можно указать номер порта, предназначенный для подключения к веб-панели. Например, чтобы использовать для этого порт 9001, запустите команду с параметром --console-address :9001:
C:\MinIO\minio.exe server C:\DATASTORE --console-address :9001
И теперь необходимо открыть доступ к серверу через TCP-порт 9001. Для того, чтобы открыть брандмауэр Windows, используйте комбинацию клавиш Win R, где введите firewall.cpl и нажмите OK. Затем в брандмауэре перейдите в Дополнительные параметры.

В открывшемся окне перейдите в Правила для входящих подключений, где нажмите Создать правило.

Далее, в окне Тип правила выберите Для порта.

Затем выберите Протокол TCP и введите 9001 в поле Определенные локальный порты.

В следующем окне выберите Разрешить подключение.

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

Затем введите имя для создаваемого правила, например, MinIO - входящее подключение, и для сохранения нового правила нажмите Готово.

И наконец, перейдите на локальный компьютер, откройте браузер и проверьте подключение к MinIO. Для этого используйте ссылку вида http://X.X.X.X:9001, где вместо X.X.X.X укажите IP-адрес своего VPS.

Как настроить работу MinIO в качестве службы
Чтобы не запускать MinIO при помощи описанной ранее команды вручную и обеспечить работоспособность сервиса на постоянной основе и в фоновом режиме, имеет смысл настроить его работу в качестве системной службы. В Windows Server наиболее простой и удобный способ запустить приложение как службу – применение специальной утилиты NSSM.
На сервере откройте браузер, перейдите на официальную страницу NSSM и загрузите последний релиз данной утилиты.

Релиз представляет собой zip-архив, содержащий папку nssm-2.24. Извлеките данную папку из архива и скопируйте её на диск C:. Затем запустите командную строку, перейдите в каталог win64, находящийся в папке nssm-2.24:
cd C:\nssm-2.24\win64\
И выполните следующую команду:
nssm install MinIO
В открывшемся интерфейсе NSSM заполните поля:
Path– путь к исполняемому файлу MinIO;Startup directory– каталог MinIO;Arguments— параметры запуска MinIO с указанием каталога хранения данных и порта для доступа к веб-панели.

Затем перейдите во вкладку Environment и в поле Environment variables укажите логин и пароль для подключения к веб-панели в виде:
MINIO_ROOT_USER=miniouser
MINIO_ROOT_PASSWORD=YourP@ssw0rd
В данном случае:
miniouser– логин для подключения к веб-панели;YourP@ssw0rd– пароль для подключения к веб-панели.
Данная мера позволяет избавиться от использования стандартной пары minioadmin:minioadmin, чтобы предотвратить несанкционированный доступ к хранилищу с применением общедоступных учётных данных. Для установки службы нажмите Install service.

Если всё сделано правильно, служба MinIO должно успешно установиться в систему.

Чтобы убедиться в том, что новая служба появилась в системе, откройте менеджер служб. Для этого используйте Ctrl R, введите там services.msc и нажмите OK. В открывшемся списке служб найдите MinIO, откройте её и, если служба остановлена, нажмите Запустить.

В строке Тип запуска должно быть установлено значение Автоматически. Это означает, что служба, а значит и само хранилище, будет запускаться вместе со стартом системы.