Что такое S3 (Simple Storage Service)

Если вы только начинаете свой путь в разработке, вам обязательно нужно познакомиться с S3. Это краеугольный камень многих современных приложений и сервисов, и понимание его основ поможет вам создавать более эффективные и масштабируемые решения. Расскажем, что это такое ― объектное хранилище в облаке и как работать с S3-хранилищем.

Что такое S3

S3 ― это объектное хранилище, а также одноименный протокол которого был разработан Amazon и теперь широко применяется множеством компаний. По сути, это как огромный облачный диск, где вы можете хранить практически любой вид данных: фотографии, видео, документы, резервные копии, архивные данные, и многое другое.

В отличие от традиционных файловых систем (как на вашем компьютере с папками), S3 не имеет реальной иерархии каталогов. Все объекты хранятся на одном «плоском» уровне внутри бакета (bucket). Структура, похожая на папки, создается исключительно с помощью имен объектов (ключей), которые могут содержать слеши.

Плоская структура S3 способствует высокой масштабируемости. Отсутствие реальной иерархии каталогов устраняет необходимость управления сложными вложенными структурами, упрощая распределение данных. Это позволяет S3 эффективно обрабатывать запросы по ключу, обеспечивая высокую производительность и низкую задержку даже при огромных объемах данных.

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

Для чего нужно облачное объектное хранилище S3

S3 имеет множество положительных качеств, которые делают его незаменимым инструментом для разработчиков и организаций. Среди главных причин выбрать именно такой способ хранения ― его надежность, масштабируемость, экономичность и безопасность.

  • Хранилище S3 может использовать различные технологии сохранности данных и резервирования, такие как ― мультифакторная репликация или erasure coding. Ваши данные будут защищены от потери и доступны в любое время.
  • S3 может хранить любое количество данных, объем ограничен только возможностями масштабирования у облачного провайдера. По мере роста потребностей клиента S3, облачный провайдер самостоятельно масштабирует хранилище для вас.
  • Существуют разные варианты оплаты сервисов s3 хранилища, - по выделяемой квоте, за используемый объем, за трафик и количество операций в API. В случае с Рег.ру клиенты платят только за используемый объем.
  • Стоимость хранения данных в s3 обычно ниже стоимости хранения на других облачных и хостинг-услугах (например таких как хранение на локальных дисках виртуальной машины) и даёт гораздо больше возможностей ― удаленный, многопользовательский доступ, масштабируемость и тому подобное.
  • S3 предоставляет множество инструментов для обеспечения безопасности ваших данных. Вы можете создавать гибкие политики доступа к объектам, подключать множество пользователей и систем.
Источник: Shutterstock. S3 — идеальный инструмент для хранения и быстрого поиска больших объемов разнородной информации

Принципы работы S3

В S3 все объекты лежат в бакетах. Так называется контейнер, в который пользователь складирует объекты. По сути, бакет является верхним уровнем организации хранилища.

Внутри бакета хранятся объекты, каждый из них имеет уникальный идентификатор внутри бакета. Это как имя файла в файловой системе, но он может содержать слеши /, что позволяет имитировать структуру папок. Например, images/my_photo.jpg.

В бакете лежит объект, а также его метаданные ― информация об объекте, такая как дата создания, размер и другие параметры.

Вы взаимодействуете с S3 через API ― это набор команд (операций над объектами), которые позволяют создавать, получать, удалять и управлять объектами в бакетах.

Используя политики доступа можно разрешать или запрещать доступ к бакетам для определенных пользователей, для целых групп пользователей или даже для всего мира (доступ без авторизации или public-read ACL).

Источник: Shutterstock. Хранилище данных S3 подходит для хранения любых типов данных: от документов и изображений до мультимедийных файлов

Классы хранения S3

S3 предлагает различные классы хранения (Storage Classes), каждый из которых оптимизирован для конкретных сценариев использования и имеет свою цену. Выбор подходящего класса хранения может существенно повлиять на ваши расходы на хранение данных. Облачные провайдеры обычно предоставляют следующий выбор:

  • «Горячее» хранилище (например, S3 Standard) оптимизировано для частого доступа с низкой задержкой и высокой пропускной способностью. Предлагает самые высокие SLA по доступности, но имеет самую высокую стоимость хранения за ГБ.
  • Более «холодное» хранилище (например, S3 Glacier Deep Archive) оптимизировано для долгосрочного архивирования с нечастым доступом. Предлагает чрезвычайно низкие затраты на хранение, но влечет за собой плату за извлечение и потенциально более длительное время извлечения (от минут до часов).

Промежуточные классы заполняют этот разрыв, предлагая различные балансы между стоимостью хранения, стоимостью извлечения, временем извлечения и доступностью.

  1. S3 Standard
    Стандартный класс хранения общего назначения. Разработан для часто используемых данных, требующих задержки доступа в миллисекундах и высокой пропускной способности.
    Разработан для обеспечения долговечности 99.999 за счет избыточного хранения объектов в нескольких зонах доступности и для обеспечения доступности 99,99% в течение года (подкреплено SLA).
    Идеально подходит для динамических веб-сайтов, распространения контента, мобильных и игровых приложений, рабочих нагрузок аналитики больших данных.
    Стоимость хранения ― самая высокая за ГБ. Плата за извлечение отсутствует.
  2. S3 Intelligent-Tiering
    Автоматизирует экономию затрат на хранение, перемещая данные между четырьмя уровнями доступа на основе меняющихся шаблонов доступа, без влияния на производительность или операционных издержек на переходы между уровнями.
    Долговечность и доступность такие же, как у S3 Standard для уровней Frequent и Infrequent Access.
    Идеально подходит для озер данных, аналитики или пользовательского контента, где частота доступа со временем колеблется. Устраняет необходимость ручного анализа и управления политиками жизненного цикла для изменяющегося доступа.
  3. S3 Standard-Infrequent Access (S3 Standard-IA)
    Для данных, доступ к которым осуществляется реже, но требуется быстрый доступ при необходимости. Предлагает высокую долговечность, пропускную способность и низкую задержку S3 Standard при доступе.
    Та же долговечность, что и у S3 Standard. Разработан для SLA доступности 99,9%.
    Более низкая стоимость хранения за ГБ, чем у S3 Standard. При доступе к данным взимается плата за извлечение за каждый ГБ.
    Сценарии использования ― долгосрочное хранение, резервные копии, файлы аварийного восстановления, где данные нужны быстро при обращении, но доступ нечастый.
  4. S3 One Zone-Infrequent Access (S3 One Zone-IA)
    Аналогичен Standard-IA, но хранит данные в одной зоне доступности вместо нескольких. Это архитектурное отличие приводит к снижению затрат, но и к снижению отказоустойчивости.
    Стоимость хранения примерно на 20% ниже, чем у S3 Standard-IA. Также имеет плату за извлечение за ГБ, минимальный размер объекта (128 КБ) и минимальный срок хранения (30 дней).
  5. S3 Glacier Instant Retrieval
    Обеспечивает самое экономичное хранилище для долгоживущих данных, которые редко используются, но требуют извлечения за миллисекунды при запросе.
    Стоимость хранения сравнима с S3 Standard-IA, но значительно ниже, чем у S3 Standard. Имеет плату за извлечение за ГБ (выше, чем у Standard-IA). Подлежит оплате за минимальный размер объекта (128 КБ) и минимальный срок хранения (90 дней).
    Сценарии использования ― архивы данных, требующие немедленного доступа. Полезен, когда желательна экономика архива, но потенциальные потребности в извлечении быстрее, чем у традиционного Glacier.
  6. S3 Glacier Flexible Retrieval (ранее S3 Glacier)
    Недорогое хранилище, оптимизированное для архивирования данных, где приемлемо время извлечения от минут до часов.
    Очень низкая стоимость хранения за ГБ. Применяется плата за извлечение за ГБ, значительно варьирующаяся в зависимости от выбранной скорости извлечения. Сценарии использования ― резервное копирование и архивирование, аварийное восстановление, долгосрочное хранение данных для соответствия требованиям, где допустим нечастый доступ и время извлечения в минутах/часах.
  7. S3 Glacier Deep Archive
    Самый дешевый класс хранения S3, предназначенный для долгосрочного хранения (7-10 лет и более) данных, к которым обращаются, возможно, один или два раза в год.
    Самая низкая стоимость хранения за ГБ, доступная в облачном хранилище AWS. Применяется плата за извлечение за ГБ.
    Сценарии использования ― архивы для соблюдения нормативных требований, замена магнитных лент, сохранение цифровых медиа, где нормой является чрезвычайно редкий доступ.
Источник: Shutterstock. Рекомендуется провести анализ использования данных, чтобы определить,какой класс подходит для какого типа данных

Кому подойдет подойдет хранилище S3

Для команд, работающих с большими данными, S3 является одним из возможных элементов Data Lake. Возможность хранения петабайт данных по сравнительно низкой цене, с гибкими моделями тарификации делает S3 идеальной основой. Затраты на хранение отделены от затрат на вычисления.

DevOps-инженеры и специалисты по инфраструктуре ценят S3 за его надежность и простую интеграцию в сервисы и инструменты. S3 является экономичным и надежным местом для хранения бэкапов баз данных, конфигураций, образов систем. Функции версионирования и репликации между регионами критичны для DR-стратегий.

Для разработчиков облачных приложений S3 решает несколько ключевых задач:

  • Хранение пользовательского контента: изображения, видео, документы и другие бинарные данные, загружаемые пользователями, идеально подходят для хранения в S3, это позволяет обеспечить эластичность хранилища для пользовательских данных, унифицировать к нему доступ через протокол S3, использовать различные cloud native подходы для самих приложений, потому что данные будут хранится отдельно от приложений.
  • Для приложений, работающих с видео, аудио или другими объемными файлами, S3 предлагает необходимую пропускную способность и инструменты для эффективной загрузки и скачивания.

Специалисты по Data Science и машинному обучению активно используют S3 на всех этапах жизненного цикла модели: масштабируемость S3 позволяет хранить петабайты данных, необходимых для обучения сложных моделей. Встроенное версионирование в S3 позволяет установить факт и момент изменения, откатиться на предыдущую версию.

S3 используется также и для хранения всевозможных архивов, в том числе для соблюдения требований регуляторов по этому долгосрочному хранению. Главное преимущество тут ― экстремально низкая стоимость хранения для данных, доступ к которым требуется крайне редко, но которые необходимо хранить годами.

Источник: Shutterstock. S3 подходит для любой организации, которая нуждается в безопасном, масштабируемом и экономичном решении для хранения данных

Преимущества хранилища S3 для бизнеса

Использование S3 предоставляет бизнесу множество преимуществ, в том числе сокращение затрат и ускорение процесса внедрения инноваций. Все вместе они могут положительно повлиять на эффективность, масштабируемость и прибыльность компании.

  • S3 позволяет значительно сократить затраты на хранение данных по сравнению с традиционными решениями. Вы платите только за то, что используете, и не несете затраты на обслуживание оборудования и программного обеспечения.
  • S3 позволяет легко масштабировать хранилище данных в соответствии с потребностями вашего бизнеса. Вы можете хранить любое количество данных и увеличивать или уменьшать емкость по мере необходимости.
  • S3 обеспечивает высокую надежность и доступность данных, что гарантирует их сохранность в случае сбоев. В зависимости от вендора, данные могут храниться в нескольких зонах доступности.
  • S3 предоставляет множество инструментов для обеспечения безопасности ваших данных. Вы можете контролировать доступ к данным, а также шифровать данные при хранении и при передаче.

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

Андрей Лебедев

Кейс Stworka: как создать ERP в облаке для 5000 строительных компаний

А также запустить маркетплейс для строителей и обрабатывать 1,5 млн артикулов ежедневно. Рассказываем, как компания Stworka развернула IT-инфраструктуру в Облаке...
Read More

Системы контроля версий: зачем они нужны и как их использовать

Мир разработки ПО издалека кажется непонятным и запутанным, но существуют инструменты, которые значительно упрощают жизнь и делают работу более эффективной....
Read More

Соглашение об уровне обслуживания (SLA)

Поговорим о документе, который может серьезно повлиять на успех проекта, будь то интернет-магазин, SaaS-платформа или любой другой онлайн-сервис. Речь пойдет...
Read More

Что такое S3 (Simple Storage Service)

Если вы только начинаете свой путь в разработке, вам обязательно нужно познакомиться с S3. Это краеугольный камень многих современных приложений...
Read More

Полный обзор NoSQL: особенности и использование

Развитие интернета диктует новые правила в разработке. Традиционные базы данных, которые называются реляционными (RDBMS), не справляются с задачами, которые требуют...
Read More

Как использовать DataSphere. Датасеты в DataSphere

Данные нужны в любой сфере: магазины анализируют продажи, в медцентры — истории болезней, ученые — результаты экспериментов. Чем больше информации,...
Read More

Основные задачи машинного обучения: классификация, регрессия, кластеризация и уменьшение размерности

Machine Learning ― это уже часть нашей повседневной жизни. От рекомендаций фильмов на Кинопоиске до спам-фильтров в почте — за...
Read More

Обзор CLI: командная строка и ее возможности

Когда были созданы первые компьютеры, операционной системой на них можно было управлять только при помощи ввода текстовых команд. Со временем...
Read More

Шардирование в базах данных: обзор концепции

В условиях стремительного роста объемов данных и увеличения нагрузок на информационные системы эффективность их масштабирования становится критически важной. Одним из...
Read More

Графический процессор (GPU): что это, для кого, разновидности

Дизайнерам, проектировщикам и разработчикам требуются мощные вычислительные ресурсы для работы. Обычный процессор (CPU) не справится с такими задачами, как обработка...
Read More