Amazon S3 и все-все-все: выбираем объектное хранилище

    Самые известные на мировом рынке объектные хранилища — это Amazon S3 (Simple Storage Service), Google Cloud Storage и Microsoft Blobs Storage. Они надежны, доступны через интернет и масштабируются до сотен петабайт. Наиболее популярный способ доступа к объектному хранилищу — S3 RESTful API от компании Amazon. Есть и альтернатива, OpenStack Swift — поддерживает оба API и даже имеет собственное (как у Microsoft или Google, например). Дополнительно предоставляется доступ по другим файловым и блочным протоколам вроде WebDAV, NFS и FTP, но в контексте этой статьи мы тестируем только доступ по протоколу HTTPS через разнообразные API.

    Для сравнения возьмем отечественные публичные объектные хранилища. Их не так много, и мы рассмотрим наиболее заметных игроков российского рынка: Mail.Ru Cloud Solutions, servers.ru, Selectel, Техносерв и Ростелеком.

    Цены


    Предложения хранилищ большой западной тройки можно условно разделить на три части: объемы хранения, операции (запросы), трафик и дополнительные услуги — вроде Amazon S3 Storage Management, Amazon S3 Transfer Acceleration и межрегиональной репликации. Подробные прайсы есть на сайтах Amazon S3 (цены без налогов), Microsoft Blobs Storage (исходящий трафик) и Google Cloud Storage. Нас интересуют стандартные хранилища с «горячими» данными — для редко используемых данных и архивов многие провайдеры предлагают варианты дешевле, которые в этом обзоре мы не затрагиваем.

    Основными составляющими стоимости услуг будут объёмы хранения, а также исходящий трафик за пределы сети облачного провайдера. Попробуем их оценить и для удобства переведём цены в рубли по курсу ЦБ РФ на 13 января 2018 г.



    У отечественных компаний прайс-листы отличаются большим разнообразием (см. справку), мы для удобства пересчитаем их с ограничениями, которые использует большая западная тройка. Все цены в рублях с НДС 18%.



    Справка
    Отечественные провайдеры в основном используют схожую схему тарификации. Хранилище горячих данных Hotbox в Mail.ru Cloud Solutions обойдётся заказчику в 2,5 рубля за гигабайт в месяц. Также оплачивается исходящий трафик и запросы — все стандартно. Расценки servers.ru (московский датацентр, другие мы не рассматриваем) почти аналогичные: 2,5 руб/ГБ в месяц за первый терабайт, 2,30 рублей/ГБ — следующие 50 ТБ, 2,10 руб/ГБ — следующие 100 ТБ и 1,90 руб/ГБ — следующие 150 ТБ (цены с НДС и тут ещё дополнительно оплачивается только трафик — про операции в прайсе ничего нет). У Selectel хранение до 1 ТБ в месяц стоит 1,40 руб/ГБ в месяц, до 10 ТБ — 1,30 руб/ГБ, до 100 ТБ — 1,20 руб/ГБ, более 100 ТБ — 1 руб/ГБ (цены с учетом НДС 18%). На сайте Техносерв Cloud прайс-лист обнаружить не удалось, но калькулятор показывает примерно такие же цены, как и у Selectel — 1,40 руб/ГБ в месяц, но почему-то без понижения цены с ростом объёма и без учета НДС. Ростелеком использует несколько иную методику тарификации — каждый контейнер стоит 10 рублей в сутки (примерно 300 рублей в месяц), а 10 ГБ дискового пространства стоит 1 рубль в сутки — ~30 рублей в месяц или ~3 рубля в месяц за 1 ГБ. Отдельно придётся оплатить поддержку версионности (0,50 рублей в сутки за 10 ГБ) и поддержку поиска по метаданным — 0,25 рублей за 10 ГБ в сутки (все цены в прайсе без учета НДС). Зато про трафик в прайс-листе ничего не сказано, но для Ростелекома это совершенно неудивительно.

    Сферическое приложение в вакууме


    Прайсы не очень наглядны, к тому же, в стоимость услуг заметную (часто — главную) роль играет исходящий трафик в интернет за пределы сети провайдера, поэтому мы попробуем прикинуть стоимость услуг на примере некоторого использующего объектное хранилище проекта. Допустим, мы хотим создать сервис и клиентское мобильное приложение к нему. Сразу возникает вопрос хранения статических и пользовательских данных. Есть мнение, что использовать объектные хранилища для статики накладно из-за больших объемов исходящего трафика — существуют отдельные провайдеры, которые позволяют создать сеть доставки и дистрибуции контента (CDN) с кеширующими серверами по всему миру. Если у вас крупный проект с огромным количеством пользователей — это может иметь смысл. Небольшие стартапы даже статику могут держать в объектном хранилище, но поскольку это все индивидуально, рассматривать такой сценарий мы не будем. Гораздо интереснее пользовательские данные. Благодаря постоянной доступности, возможностям масштабирования и способности выдерживать высокие нагрузки, объектное хранилище отлично подходит для пользовательских файлов любых форматов: фотографий, документов, видеороликов и т. д. Особенно хорошо это заметно на небольших проектах — несколько десятков тысяч файлов и несколько тысяч запросов в сутки обойдутся вам буквально в считанные доллары в месяц. Давайте теперь перейдём к расчётам. Пусть объём пользовательских данных будет достаточно ощутимым (для других вариантов все-таки есть традиционный хостинг) и составляет 1 ТБ — это примерно 5 миллионов фотографий или 50 тысяч небольших видеороликов. Пусть наш условный проект генерирует исходящий трафик в 1 ТБ в месяц. Давайте посчитаем в какую примерно сумму он нам обойдётся.



    Операции и запросы мы вынесли за скобки, потому что на начальном этапе понять их количество проблематично — в любом случае, это далеко не основная статья расходов. Сразу становится заметно, что у крупных западных провайдеров очень дорогой исходящий трафик при сходных ценах за объемы хранения. У Amazon, например, он составляет $0,09 за ГБ (в пределах 10 ТБ в месяц) или $90 для нашего условного проекта — весьма недешевое удовольствие. У Google ещё дороже — $0,12 за гигабайт. Хороший повод выбрать отечественного поставщика услуг.

    Особенности отечественных провайдеров


    Mail.ru Cloud Solutions развивается аналогично западным сервисам. Помимо Hotbox заказчикам предлагают хранилище Icebox для редко используемых данных. S3-совместимый API позволяет подключаться к хранилищу при помощи множества разнообразных приложений и использовать коннекторы к разным языкам программирования.

    Хранилище servers.ru использует OpenStack Swift (S3 API не поддерживается). Недорогих тарифных планов для редко используемых данных и архивов провайдер не предлагает — по сути дела это хороший вариант для хостинга, позволяющий, например, хранить статические данные сайтов и решать другие сходные задачи. Для корпоративной виртуальной инфраструктуры список услуг все-таки бедноват. Есть сведения, что провайдер строит приватные облака для клиентов и, в частности, делает там выделенные ceph-инсталляции. На сайте об этом не сообщается.

    В Selectel все аналогично: доступ через OpenStack Swift (S3 API хранилище не поддерживает) и отсутствие отдельных тарифных планов для редко используемых данных, хотя очень вкусная цена сглаживает этот момент. Основное применение, как и в предыдущем случае — хостинг статических данных, сайтов и т. д.

    Компания Техносерв запустила полноценное корпоративное объектное хранилище для бизнеса и вполне может поспорить с Mail.Ru Cloud Solutions. Заявлена полная совместимость с S3 API и есть отдельный тариф для хранения «холодных» данных. Недостаток один — с физическими лицами провайдер не работает.

    Надежда национальной облачной платформы — хранилище Ростелеком использует Hitachi Content Platform и поддерживает S3 API, OpenStack Swift и некий REST API. Отдельные тарифные планы для редко используемых данных у Ростелекома отсутствуют, а настройка хранилища и доступа к нему, как бы это помягче выразиться, неочевидна. Для примера — статья [http://help.cloud.rt.ru/virthran/start/instrukcyas3browver] про доступ через S3 Browser — необходимость вручную кодировать login в base64 и считать хеш md5 для пароля радуют несказанно. С физическими лицами Ростелеком также не работает — все облачные услуги компании доступны только бизнесу и госструктурам.

    Пинг из России


    Увы, на стороне объектного хранилища мы не можем запускать программы, поэтому клиент-серверные измерялки пропускной способности канала (iperf и т. д.) использовать не получится. Мы пропингуем свои хранилища сотней маленьких (64 байта) и сотней больших (1 килобайт) пакетов с внешней по отношению ко всем подопытным виртуальной машины, работающей в одном из российских датацентров. Пакеты не бьются (0% потерь), но время отклика разное. У отечественных сервисов оно гораздо меньше, как и ожидалось — при обмене большими пачками мелких файлов это свою роль сыграет. Пропинговать Техносерв нет технической возможности, провайдер фильтрует ICMP.

    Датацентры наших сервисов размещаются в Москве, большой западной тройки — в США.



    Нагрузочные тесты


    Для тестирования производительности из России мы с внешней по отношению ко всем подопытным машины (та же, что и в предыдущем опыте) посмотрим скорость закачки файлов в хранилище и скорость скачивания. Для первого теста возьмём большой файл, а для второго — кучу мелких файлов россыпью. Сведём все результаты в диаграмму и взглянем на результат. Работать, разумеется, будем через REST API, которое поддерживает тот или иной сервис — при том разнообразные файловые и блочные протоколы нам неинтересны.





    Для клиентов из России наши сервисы явно быстрее американских Google и Microsoft, а вот Amazon вполне способен с ними поспорить и даже серьезно обогнать по скорости загрузки большого файла. Хотя скачивается такой файл с отечественных хранилищ ощутимо быстрее. С набором мелких файлов картина совершенно иная — отечественные сервисы серьезно обгоняют зарубежные, что было ожидаемо. У публичных хранилищ Selectel и servers.ru обнаружилась интересная особенность: контент скачивается с них гораздо быстрее, чем закачивается (у других сервисов все наоборот). Это лишний раз подтверждает, что эти сервисы оптимизированы под раздачу статического контента и хороши для разнообразного хостинга, но хуже подходят для корпоративной ИТ-инфраструктуры.

    Итоги


    Отечественные провайдеры достойно конкурируют с большой западной тройкой. Мы тестировали публичные хранилища для горячих данных, и наличие датацентров в России (читай — в Москве) здорово им помогает. Хотя Amazon в состоянии дать высокую скорость на больших (1,4 ГБ) файлах, с пачками мелких наши сервисы работают гораздо быстрее, что важно: основные сценарии применения все-таки предполагают работу с большим количеством мелких файлов. По ценам все не так однозначно — есть варианты гораздо дешевле иностранных аналогов, есть и дороже (разброс достаточно большой). У servers.ru и Selectel отсутствуют недорогие тарифные планы для редко используемых данных. Это станет проблемой, если вы соберётесь развернуть на их площадке виртуальную ИТ-инфраструктуру компании (не хотелось бы по полной программе оплачивать хранение бекапов и архивов). Зато они очень быстро отдают статический контент и хороши для хостинга. Услуги Ростелекома сложны в настройке, но список поддерживаемых API у него самый широкий и скорости хранилище обеспечивает впечатляющие. Хотя отдельного тарифа для редко используемых данных там тоже нет. Для корпоративного применения наиболее интересны предложения Mail.ru и Техносерв — тут тебе и поддержка S3 API, и отдельные тарифы для редко используемых данных, и приличные скорости доступа. В общем, есть из чего выбрать.

    Еще один плюс российских сервисов — отсутствие конфликтов с законодательством (все мы помним о работе с персональными данными). Даже собирая анкетные сведения о пользователях сайта, вы можете ненароком получить серьезный штраф, если информация будет храниться за пределами страны. Тут лидеры мирового рынка не смогут ничего противопоставить местным игрокам (у сервисов Amazon, Google и Microsoft датацентров в России нет).
    • +29
    • 5,5k
    • 7
    Поделиться публикацией
    AdBlock похитил этот баннер, но баннеры не зубы — отрастут

    Подробнее
    Реклама
    Комментарии 7
    • +1
      Это все, конечно, здорово, но какое отношение это имеет к нормальной практике накрывать хранилища CDN? Зачем эти все тесты и пинги в таком варианте?
      • +4
        где сравнение с европейскими регионами от S3?
        • +2

          Что Mail.Ru может противопоставить Amazon CloudFront?

          • +2
            AWS Cloudfront, Europe — $0.085 за первые 10 Tb, $0.080 за следующие 40, за 100 Tb — $0.060. Я полагаю, выбор очевиден
            • 0

              Пользуюсь backblaze b2 как очень интересным по цене.

              • 0
                Хмм, странные цифры. Протестировал загрузку данных в Azure вот тут azurespeed.com/Azure/UploadLargeFile Я сижу на Wi-FI через VPN и при загрузке загрузил максильмально свою пропускную способность интернета в 80мегабит. Что-то мне подсказывает, что если у меня будет канал шире, то и скорость аплода не упадет.
                • 0

                  Какая-то желтая статья. Как заметили выше, еврорегионы амазона не рассмотрены.
                  Скорость у них офигенная: германия — ирландия (S3) на гигабитном канале:
                  image


                  Цена: Infrequent Access Storage + 50Гб = 0.63$. Минимальное время хранения файла — 30 дней. Если файл удаляется ранее, все равно считается такса по месяцу. Офигенно для бекапов.


                  Далее положили на мету: теги, ттл и прочие фишки


                  properties

                  image


                  management (ttl + other features

                  image


                  Ну и, наконец, обошли самое деревянное решение: OVH object storage
                  Это когда 50 гигов стоят 50 баксоцентов на хранение и 50 баксоцентов, если надо их выкачать.


                  Или Cloud archive, где залить 50 гигов стоит 0.575€ и затем хранение по 10 евроцентов в месяц.


                  Личное: использую активно S3 для ежедневных инкрементных бекапов с версиями и 70 дневным циклом для клиентов. И хочу приладить "cold storage" для хранения толстой статики, которая не меняется и всегда на серверах лежит (дешевле чем амазон в долгосрочной перспективе).

                  Только полноправные пользователи могут оставлять комментарии. Войдите, пожалуйста.