/ повышая квалификацию

DigitalOcean Spaces: плюсы/минусы, сравнение, регистрация и настройка

В этой статье я постараюсь ответить на вопрос, какой провайдер облачного хранилища файлов использовать, сравнить с аналогами, и как создать Space на Digital Ocean, настроить кастомный домен.

Вы наверняка уже знакомы с моим мнением о компании DigitalOcean, ведь, ранее я только то и делал, что нахваливал их сервисы VPS. И сегодня пришло время протестировать ещё один их сервис DigitalOcean Spaces.

DigitalOcean - компания, предоставляющая услуги хранения данных в облаке (как Google Cloud Storage, Amazon s3, Yandex и т.д.). Однако в отличии от других традиционных компаний, как Amazon, Google или Microsoft, они предпочли использовать совершенно другой подход при работе: вы платите за пакеты ресурсов, а не за количество используемого пространства. Подобный способ ценообразования отличает их от конкурентов. Именно подобный подход и дал толчок к их быстрому росту популярности в сфере облачного хранилища. Давайте посмотрим, протестируем, и узнаем насколько удобен подобный подход, и насколько им можно верить^^.

На данный момент DigitalOcean предоставляет тариф с безлимитным пространством, при оплате за услуги всего 5$ в месяц. С оговоркой по максимальному пространству и трафику: tarif

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

Может возникнуть диссонанс: оказывается, что пространство не такое уж и безлимитное. Такие да, максимальное пространство составляет 250GB, однако, это достаточно для большинства целей. В любом случае, вы можете создать сколько угодно подобных хранилищ по 250 GB.


Достоинства

  • Отличная документация. Если вы знакомы с DigitalOcean, вы, вероятно, знаете, что их туториалы в разделе "Community" являются одними из лучших и актуальных в своей нише.
  • "Дружелюбный" для разработчиков интерфейс, как и Amazon S3. DigitalOcean использует S3-совместимый API для хранения объектов, что означает, что вы можете использовать любой Amazon S3 SDK с DigitalOcean Spaces!
  • Предсказуемые цены - 5 долларов в месяц за 250 ГБ хранилища и 1 ТБ исходящего трафика в месяц. Немного подсчитав, это стоит 0.020 USD за ГБ/месяц, без учета включённого в тариф исходящего трафика. Для сравнения, в AWS вы будете платить 0.023 USD за ГБ/месяц и 0.09 USD за каждый переданный ГБ. Это означает, что вам придется платить около 90 долларов США дополнительно только за 1 ТБ исходящего перевода, который входит в план DigitalOcean по дефолту.
  • Простота. Всего один тип хранилища.
  • Простой в пользовательский интерфейс. Вы можете перетаскивать элементы drag-n-drop-ом, чтобы загрузить файлы в хранилище.
  • Удобная и функциональная панель управления хранилищем.
  • Простая интеграция с другими сервисами DigitalOcean, такими как Droplets, например.
  • В рамках реферальной программы, новые пользователи могут опробовать услугу бесплатно в течение двух месяцев, если пройти регистрацию по инструкции.

Недостатки

  • В DigitalOcean нет никакой платной поддержки. Эта может немного беспокоить крупных клиентов, которые имеют критически важные данные и нуждаются в строгих соглашениях об уровне обслуживания (SLA).
  • Фикс.прайс. Вы тратите столько же денег, даже если не загрузили никакие данные. Поэтому, если вы не знаете, сколько данных вы хотите хранить, или собираетесь использовать лишь часть имеющегося в вашем распоряжении пространства, возможно, DigitalOcean Spaces не самый выгодный для вас вариант.
  • У них не так много регионов, как у других конкурентов, таких как AWS, Google Cloud Storage и Microsoft Azure. В настоящее время они предлагают только следующие регионы: regions

В каких случаях использовать DigitalOcean Space?

  • Если вы являетесь разработчиком и уже используете DigitalOcean для своих проектов.
  • Если у вас написан код, использующий Amazon S3 SDK. Вы можете повторно использовать 99% из него, и мигрировать, ничего не переписывая!
  • Если вы хотите платить по условно-фиксированной и предсказуемой цене и не против отсутствия платной поддержки.
  • Если вы часто загружаете свои данные, то DigitalOcean Spaces - отличный выбор для вас. Первый ТБ исходящих данных в месяц включается в цену оплаты.

Лично я пользуюсь DigitalOcean уже который год и всё время остаюсь довольным качеством их сервисов, потому рекомендую попробовать и вам. Если сравнивать DigitalOcean Spaces vs S3 Amazon, то я склоняюсь именно к первому варианту. DO имеют более простой, понятный и функциональный user-friendly интерфейс, отличное API и документацию. За цену услуг в сравнении с Amazon S3 вы уже тоже знаете :)


Как создать Space хранилище в DigitalOcean

Для регистрации хранилища, нужно перейти в меню Manage на вкладку Spaces, нажав на кнопку создания нового хранилища: space_create

После чего нам откроется страница добавления но хранилища, на которой нужно выбрать регион, в котором будет находиться сервер хранилища: -----------

В моём случае, был выбран Франкфурт, однако вы выбирайте тот, который географически ближе всего расположен к вашей целевой аудитории.


Добавление кастомного домена для DigitalOcean Space

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

Настройка кастомного домена производится из секции CDN. Для того, чтобы добавить собственный домен, нажмите на кнопку Enable CDN enable_cdn

Где в списке доменов, выбрав пункт Add a new subdomain certificate add_new_domain

По правилам, для работы хранилища с собственным доменом, нужно подключить для него SSL-сертификат. В этой статье я буду использовать бесплатный сертификат от Let’s Encrypt.

Теперь, во всплывающем окне об информации по домену и SSL-сертификату, заполним форму, подвязав свой домен, который привязан к DigitalOcean: cusom_domain_create

В результате чего, будет выбран только что привязанный к хранилищу кастомный домен: subdomain_result


Настройка хранилища

Регистрация не закончилась, и нам нужно указать настройки для нового хранилища.

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

И последнее, укажем уникальное имя для хранилища (по этому имени будет создан ещё один глобальный поддомен, для нашего хранилища)
finalize_creating

После чего, создадим хранилище, нажав на кнопку Create a Space.

И всё! Теперь вы будете перенаправлены на страницу, где вам будут доступны 2 вкладки:

  • Files, где вы можете управлять файлами хранилища
  • и вкладка Settings, в которой вы можете переопределить текущие настройки хранилища.
    menu

Теперь проверим наше хранилище и загрузим свой первый публичный файл не него.
upload

На основании чего, можем увидеть, что поддомен работает, загрузка файлов тоже, и они доступны по публичной ссылке result-1


Настройка кросс-доменного доступа к хранилищу

Иногда так бывает, что нам необходимо из JavaScript-а сделать AJAX-запрос на URL нашего хранилища. Так вот, это нам не позволит сделать CORS-политика. И каждый раз, при запросах, мы будем видеть в консоли что-то вроде этого: cors

И для того, чтобы разрешить подобные запросы, нужно в меню вашего хранилища перейти на вкладку Settings > CORS Configurations > Add.
Где в форме нужно заполнить имя домена, с которого выполняется запрос, и перечислить разрешенные HTTP-методы: cors_add

И теперь, если повторить запрос, то мы увидим пример успешного ответа success

Резюме

В этой статье я показал, как зарегистрировать облачное хранилище на DigitalOcean, как настроить ограничение доступа к файлам, настроить публичность объектов хранилища. Так же, было показано, как привязать свой собственный домен для URL-адреса хранилища и настраивать правила для CORS-политики.

И если бы спросили у меня, какой облачный сервис лучше, я бы без раздумья ответил, что на данный момент - это Digital Ocean.

Если вас интересует, как подружить Digital Ocean Space с PHP, то советую прочитать эту статью, которая покажет подробную настройку и работу с DO.