Открыть сервис

Cloudflare R2

Cloudflare R2 — это объектное хранилище данных, предоставляемое компанией Cloudflare, Inc. (организация не признана экстремистской или террористической в РФ, не является иноагентом). Оно предназначено для хранения и доступа к неструктурированным данным (файлам, изображениям, видео, резервным копиям) и полностью совместимо с API сервиса Amazon S3. Ключевой особенностью R2 является отсутствие платы за исходящий трафик (egress fees), что отличает его от большинства других облачных объектных хранилищ.

История

Cloudflare R2 был анонсирован в сентябре 2021 года на конференции Cloudflare Birthday Week. На момент анонса сервис находился в стадии закрытого бета-тестирования. Первоначальная цель заключалась в создании альтернативы Amazon S3, которая устраняла бы один из главных недостатков последнего — высокую стоимость исходящего трафика, которая часто становится «скрытым» расходом для пользователей.

В мае 2022 года R2 стал доступен в открытой бета-версии, а в сентябре 2022 года — в общем доступе (GA). С момента запуска сервис активно развивался: были добавлены функции, такие как публичные бакеты (public buckets), интеграция с Cloudflare Workers, поддержка перезаписи объектов, а также возможности для работы с большими данными и аналитикой.

Архитектура и принципы работы

Cloudflare R2 построен на глобальной сети Cloudflare, которая включает в себя центры обработки данных (дата-центры) в более чем 300 городах мира. Данные, хранящиеся в R2, реплицируются и распределяются по нескольким узлам сети для обеспечения высокой доступности и отказоустойчивости.

Ключевые компоненты:

  • Бакет (Bucket) — логическая единица хранения, представляющая собой контейнер для объектов. Каждый бакет имеет уникальное имя в рамках региона (или глобально, если настроено соответствующим образом).
  • Объект (Object) — единица данных, хранящаяся в бакете. Объект состоит из самих данных (например, файла) и метаданных (ключ, тип контента, дата создания и т.д.).
  • Ключ (Key)уникальный идентификатор объекта внутри бакета. По сути, это путь к файлу.
  • API — интерфейс для взаимодействия с хранилищем. R2 поддерживает API, совместимый с Amazon S3, что позволяет использовать существующие инструменты и библиотеки (например, AWS SDK, Boto3, S3cmd) без значительных изменений.
  • Cloudflare Workers — бессерверная вычислительная платформа Cloudflare, которая может напрямую взаимодействовать с R2, позволяя выполнять код рядом с данными, что снижает задержки.

Классификация и виды

Cloudflare R2 относится к категории объектных хранилищ (object storage). В отличие от файловых или блочных хранилищ, объектные хранилища оптимизированы для хранения больших объёмов неструктурированных данных, которые редко изменяются (хотя R2 поддерживает и перезапись объектов). В рамках R2 можно выделить следующие типы использования:

  • Публичные бакеты — данные доступны для чтения всем пользователям интернета без аутентификации. Используется для хранения статического контента веб-сайтов (изображений, CSS, JavaScript).
  • Приватные бакеты — доступ к данным ограничен и требует аутентификации. Используется для хранения резервных копий, конфиденциальных файлов, логов.
  • Глобальные бакеты — данные реплицируются по всем регионам Cloudflare, что обеспечивает минимальную задержку доступа из любой точки мира.
  • Региональные бакеты — данные хранятся только в одном или нескольких выбранных регионах. Это может быть полезно для соблюдения требований к локализации данных (data residency).

Характеристики и возможности

Основные характеристики:

  • Совместимость с S3 API — позволяет использовать существующие инструменты и библиотеки.
  • Отсутствие платы за исходящий трафик (Egress) — основное конкурентное преимущество. Пользователи платят только за объём хранимых данных и количество операций (PUT, GET, DELETE). Исходящий трафик не тарифицируется.
  • Глобальная сеть доставки (CDN) — данные, хранящиеся в R2, автоматически кэшируются и доставляются через сеть Cloudflare, что ускоряет загрузку для конечных пользователей.
  • Интеграция с Cloudflare Workers — позволяет выполнять код непосредственно в хранилище, обрабатывая данные без необходимости их перемещения.
  • Поддержка публичных бакетов — возможность предоставить прямой доступ к данным через URL.
  • Поддержка перезаписи объектов — позволяет обновлять существующие объекты без их удаления и повторного создания.
  • Управление жизненным циклом объектов — автоматическое удаление или перемещение объектов по истечении заданного срока.
  • Версионирование объектов — позволяет хранить несколько версий одного объекта, что защищает от случайного удаления или перезаписи.
  • Шифрование данных — данные шифруются на стороне сервера (SSE) с использованием ключей, управляемых Cloudflare. Поддерживается также шифрование на стороне клиента.

Ограничения:

  • Максимальный размер объекта — 5 ТБ (в соответствии с ограничениями S3 API).
  • Максимальное количество объектов в бакете — неограниченно.
  • Задержка — для операций записи может быть выше, чем у некоторых региональных хранилищ, так как данные реплицируются по глобальной сети.
  • Отсутствие некоторых расширенных функций S3 — например, блокировок объектов (Object Lock) или поддержки Glacier (холодное хранение) на момент запуска, хотя функциональность постоянно расширяется.

Применение

Cloudflare R2 используется в различных сценариях, где требуется надёжное и недорогое хранение данных:

  • Хранение статического контента веб-сайтов — изображения, видео, CSS, JavaScript файлы. Отсутствие платы за исходящий трафик делает R2 особенно привлекательным для сайтов с высоким трафиком.
  • Резервное копирование и архивирование — хранение резервных копий баз данных, виртуальных машин, логов. Низкая стоимость хранения и отсутствие платы за восстановление делают R2 экономически выгодным.
  • Хранение пользовательского контента — файлы, загружаемые пользователями на веб-сайты или в приложения (аватарки, документы, медиафайлы).
  • Аналитика и большие данные — хранение больших объёмов данных для последующей обработки с помощью Cloudflare Workers или других инструментов.
  • Создание CDN для собственных данных — благодаря интеграции с сетью Cloudflare, R2 может выступать в роли origin-сервера для CDN.
  • Серверлесс-приложения — хранение состояния и данных для приложений, работающих на Cloudflare Workers.

Конкуренты и сравнение

Основными конкурентами Cloudflare R2 являются:

  • Amazon S3 (Simple Storage Service) — самый популярный сервис объектного хранения. Взимает плату за исходящий трафик, что может быть дорого при больших объёмах.
  • Google Cloud Storage — аналогичный сервис от Google. Также взимает плату за egress.
  • Azure Blob Storage — объектное хранилище от Microsoft. Имеет схожую модель ценообразования.
  • Backblaze B2 — объектное хранилище, которое также предлагает бесплатный исходящий трафик при определённых условиях (например, при использовании с CDN Cloudflare).
  • Wasabi — ещё один сервис, который рекламирует отсутствие платы за egress, но имеет ограничения по минимальному сроку хранения.

Ключевое отличие R2 — отсутствие платы за исходящий трафик при любом объёме, а также глубокая интеграция с экосистемой Cloudflare (Workers, CDN, DDoS-защита).

Критика и ограничения

Несмотря на преимущества, R2 имеет и некоторые недостатки:

  • Зависимость от экосистемы Cloudflare — для полного использования возможностей (например, Workers) требуется быть пользователем других сервисов Cloudflare.
  • Отсутствие некоторых функций S3 — на момент запуска отсутствовали такие возможности, как Object Lock, поддержка Glacier, а также некоторые расширенные политики управления жизненным циклом. Со временем часть этих функций была добавлена.
  • Сложность миграции — хотя R2 совместим с S3 API, миграция больших объёмов данных может потребовать дополнительных инструментов и времени.
  • Региональные ограничения — для пользователей, которым требуется хранение данных строго в определённой стране (например, в России), R2 может не подходить, так как Cloudflare не имеет дата-центров на территории РФ.

Интересные факты

  • Cloudflare R2 был создан как ответ на высокие цены на исходящий трафик у Amazon S3, которые часто составляют значительную часть расходов компаний на облачные услуги.
  • Сервис использует технологию, разработанную для собственных нужд Cloudflare, что позволило снизить стоимость хранения.
  • R2 поддерживает работу с большими данными через Apache Spark и другие фреймворки, использующие S3 API.

Источники

  • Официальная документация Cloudflare R2 (cloudflare.com/r2)
  • Блог Cloudflare (blog.cloudflare.com) — анонсы и обновления R2
  • Сравнительный анализ объектных хранилищ (статьи на Habr, TechCrunch, The Verge)
  • Документация Amazon S3 API (для сравнения совместимости)

BFOmetr — база данных и аналитика по компаниям России.

На главную BFOmetr →