Для сравнения возьмем отечественные публичные объектные хранилища. Их не так много, и мы рассмотрим наиболее заметных игроков российского рынка: 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%.
Сферическое приложение в вакууме
Прайсы не очень наглядны, к тому же, в стоимость услуг заметную (часто — главную) роль играет исходящий трафик в интернет за пределы сети провайдера, поэтому мы попробуем прикинуть стоимость услуг на примере некоторого использующего объектное хранилище проекта. Допустим, мы хотим создать сервис и клиентское мобильное приложение к нему. Сразу возникает вопрос хранения статических и пользовательских данных. Есть мнение, что использовать объектные хранилища для статики накладно из-за больших объемов исходящего трафика — существуют отдельные провайдеры, которые позволяют создать сеть доставки и дистрибуции контента (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 датацентров в России нет).
Комментарии (7)
random1st
13.02.2018 14:57AWS Cloudfront, Europe — $0.085 за первые 10 Tb, $0.080 за следующие 40, за 100 Tb — $0.060. Я полагаю, выбор очевиден
gaploid
13.02.2018 19:19Хмм, странные цифры. Протестировал загрузку данных в Azure вот тут azurespeed.com/Azure/UploadLargeFile Я сижу на Wi-FI через VPN и при загрузке загрузил максильмально свою пропускную способность интернета в 80мегабит. Что-то мне подсказывает, что если у меня будет канал шире, то и скорость аплода не упадет.
nikitasius
14.02.2018 00:29Какая-то желтая статья. Как заметили выше, еврорегионы амазона не рассмотрены.
Скорость у них офигенная: германия — ирландия (S3) на гигабитном канале:
Цена: Infrequent Access Storage + 50Гб = 0.63$. Минимальное время хранения файла — 30 дней. Если файл удаляется ранее, все равно считается такса по месяцу. Офигенно для бекапов.
Далее положили на мету: теги, ттл и прочие фишки
properties
random1st
Это все, конечно, здорово, но какое отношение это имеет к нормальной практике накрывать хранилища CDN? Зачем эти все тесты и пинги в таком варианте?