DigitalOcean Spaces: плюсы/минусы, сравнение, регистрация и настройка
В этой статье я постараюсь ответить на вопрос, какой провайдер облачного хранилища файлов использовать, сравнить с аналогами, и как создать Space на Digital Ocean, настроить кастомный домен.
Вы наверняка уже знакомы с моим мнением о компании DigitalOcean, ведь, ранее я только то и делал, что нахваливал их сервисы VPS. И сегодня пришло время протестировать ещё один их сервис DigitalOcean Spaces.
- Достоинства хранилища
- Недостатки
- В каких случаях использовать DO?
- Как зарегистрировать Space?
- Как привязать кастомный домен к хранилищу?
- Настройка storage
- Настройка CORS-политики
DigitalOcean - компания, предоставляющая услуги хранения данных в облаке (как Google Cloud Storage, Amazon s3, Yandex и т.д.). Однако в отличии от других традиционных компаний, как Amazon, Google или Microsoft, они предпочли использовать совершенно другой подход при работе: вы платите за пакеты ресурсов, а не за количество используемого пространства. Подобный способ ценообразования отличает их от конкурентов. Именно подобный подход и дал толчок к их быстрому росту популярности в сфере облачного хранилища. Давайте посмотрим, протестируем, и узнаем насколько удобен подобный подход, и насколько им можно верить^^.
На данный момент DigitalOcean предоставляет тариф с безлимитным пространством, при оплате за услуги всего 5$ в месяц. С оговоркой по максимальному пространству и трафику:
А если вы зарегистрируетесь по инструкции, то 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. В настоящее время они предлагают только следующие регионы:
В каких случаях использовать 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, нажав на кнопку создания нового хранилища:
После чего нам откроется страница добавления но хранилища, на которой нужно выбрать регион, в котором будет находиться сервер хранилища:
В моём случае, был выбран Франкфурт, однако вы выбирайте тот, который географически ближе всего расположен к вашей целевой аудитории.
Добавление кастомного домена для DigitalOcean Space
Теперь настроим кастомный домен для нашего облачного хранилища (если эта функция вам не нужна, то просто перейдите к следующему пункту статьи).
Настройка кастомного домена производится из секции CDN. Для того, чтобы добавить собственный домен, нажмите на кнопку Enable CDN
Где в списке доменов, выбрав пункт Add a new subdomain certificate
По правилам, для работы хранилища с собственным доменом, нужно подключить для него SSL-сертификат. В этой статье я буду использовать бесплатный сертификат от Let’s Encrypt.
Теперь, во всплывающем окне об информации по домену и SSL-сертификату, заполним форму, подвязав свой домен, который привязан к DigitalOcean:
В результате чего, будет выбран только что привязанный к хранилищу кастомный домен:
Настройка хранилища
Регистрация не закончилась, и нам нужно указать настройки для нового хранилища.
Укажем настройки публичного доступа к мета-информации объектов. В этом пункте указывается, может ли кто-то, кроме людей, имеющих ключи авторизации, просматривать информацию об именах, размере, и прочих данных файлов, опубликованных в этом хранилище.
И последнее, укажем уникальное имя для хранилища (по этому имени будет создан ещё один глобальный поддомен, для нашего хранилища)
После чего, создадим хранилище, нажав на кнопку Create a Space.
И всё! Теперь вы будете перенаправлены на страницу, где вам будут доступны 2 вкладки:
- Files, где вы можете управлять файлами хранилища
- и вкладка Settings, в которой вы можете переопределить текущие настройки хранилища.
Теперь проверим наше хранилище и загрузим свой первый публичный файл не него.
На основании чего, можем увидеть, что поддомен работает, загрузка файлов тоже, и они доступны по публичной ссылке
Настройка кросс-доменного доступа к хранилищу
Иногда так бывает, что нам необходимо из JavaScript-а сделать AJAX-запрос на URL нашего хранилища. Так вот, это нам не позволит сделать CORS-политика. И каждый раз, при запросах, мы будем видеть в консоли что-то вроде этого:
И для того, чтобы разрешить подобные запросы, нужно в меню вашего хранилища перейти на вкладку Settings
> CORS Configurations
> Add
.
Где в форме нужно заполнить имя домена, с которого выполняется запрос, и перечислить разрешенные HTTP-методы:
И теперь, если повторить запрос, то мы увидим пример успешного ответа
Резюме
В этой статье я показал, как зарегистрировать облачное хранилище на DigitalOcean, как настроить ограничение доступа к файлам, настроить публичность объектов хранилища. Так же, было показано, как привязать свой собственный домен для URL-адреса хранилища и настраивать правила для CORS-политики.
И если бы спросили у меня, какой облачный сервис лучше, я бы без раздумья ответил, что на данный момент - это Digital Ocean.
Если вас интересует, как подружить Digital Ocean Space с PHP, то советую прочитать эту статью, которая покажет подробную настройку и работу с DO.