Simple Storage Service
Simple Storage Service (Amazon S3) — это сервис облачного объектного хранения данных, предоставляемый компанией Amazon Web Services (AWS). S3 предназначен для хранения и извлечения любого объёма данных в любое время из любой точки сети, обеспечивая масштабируемость, высокую доступность, безопасность и производительность. Сервис является одним из ключевых компонентов экосистемы AWS и широко используется для резервного копирования, архивирования, хранения статических веб-сайтов, медиаконтента, данных для аналитики и машинного обучения.
История
Сервис Amazon S3 был запущен в марте 2006 года. Он стал одним из первых публичных облачных сервисов объектного хранения, наряду с Amazon EC2 (Elastic Compute Cloud) и Amazon SQS (Simple Queue Service). Изначально S3 был разработан для внутренних нужд Amazon, но быстро стал доступен сторонним разработчикам. Запуск S3 ознаменовал начало эры облачных вычислений, предоставив возможность хранить данные без необходимости управления физической инфраструктурой.
С момента запуска сервис постоянно эволюционировал. В 2007 году была добавлена поддержка шифрования на стороне сервера (SSE-S3). В 2010 году появилась функция «Переходы жизненного цикла» (Lifecycle Policies), позволяющая автоматически перемещать данные между различными классами хранения. В 2011 году был представлен класс хранения Reduced Redundancy Storage (RRS), который позже был заменён на более современные варианты. В 2012 году Amazon представила Glacier — класс хранения для долгосрочного архивирования. В 2018 году была добавлена поддержка шифрования на стороне клиента (SSE-C) и управляемых ключей AWS KMS (SSE-KMS). В 2020-х годах сервис получил функции, такие как S3 Object Lambda для обработки данных на лету, S3 Multi-Region Access Points для глобальной репликации и S3 Express One Zone для высокопроизводительных рабочих нагрузок.
Основные понятия и архитектура
Объекты и бакеты
В S3 данные хранятся в виде объектов. Объект состоит из:
- Ключа (Key) — уникального идентификатора объекта в бакете (например,
images/photo.jpg). - Данных (Data) — самого содержимого файла (до 5 ТБ для одного объекта).
- Метаданных (Metadata) — набора пар «имя-значение», описывающих объект (например, тип содержимого, дата загрузки).
- Тегов (Tags) — дополнительных меток для управления доступом и учёта затрат.
Объекты группируются в бакеты (Buckets) — логические контейнеры, которые служат корневыми каталогами для хранения данных. Бакет имеет уникальное глобальное имя (например, my-company-data-2024), которое должно быть уникальным во всей экосистеме AWS. Каждый бакет привязан к определённому региону AWS (например, eu-west-1, us-east-1).
Ключи и префиксы
Ключи объектов в S3 представляют собой строки, которые могут содержать префиксы, имитирующие иерархическую файловую структуру (например, logs/2024/01/01/access.log). Однако на самом деле S3 является плоским хранилищем — все объекты находятся на одном уровне, а префиксы используются для организации и фильтрации.
Регионы и зоны доступности
S3 хранит данные в выбранном регионе AWS. Для обеспечения высокой доступности и отказоустойчивости данные автоматически реплицируются как минимум в три зоны доступности (Availability Zones) в пределах региона. Это означает, что даже при выходе из строя одной или двух зон данные остаются доступными.
Классы хранения
Amazon S3 предлагает несколько классов хранения, оптимизированных под различные сценарии использования по стоимости и времени доступа:
- S3 Standard — для часто используемых данных с низкой задержкой доступа и высокой пропускной способностью. Подходит для веб-сайтов, контента, приложений.
- S3 Intelligent-Tiering — автоматически перемещает данные между уровнями доступа (частый, нечастый, архивный) на основе изменения паттернов доступа, оптимизируя затраты.
- S3 Standard-IA (Infrequent Access) — для данных, которые используются реже, но требуют быстрого доступа при необходимости. Имеет меньшую стоимость хранения, но более высокую плату за извлечение.
- S3 One Zone-IA — хранит данные только в одной зоне доступности, что снижает стоимость, но повышает риск потери данных при отказе зоны. Подходит для восстанавливаемых данных.
- S3 Glacier Instant Retrieval — для архивных данных, к которым требуется доступ в миллисекундах. Стоимость хранения низкая, но плата за извлечение высокая.
- S3 Glacier Flexible Retrieval — для архивных данных с доступом от нескольких минут до нескольких часов. Самый дешёвый класс хранения после Glacier Deep Archive.
- S3 Glacier Deep Archive — для долгосрочного архивирования (например, для соответствия нормативным требованиям). Доступ к данным занимает до 12 часов.
- S3 Express One Zone — высокопроизводительный класс хранения для рабочих нагрузок с низкой задержкой (миллисекунды), размещается в одной зоне доступности.
Безопасность и управление доступом
S3 предоставляет несколько механизмов для обеспечения безопасности данных:
- Политики бакета (Bucket Policies) — JSON-документы, определяющие, кто и какие действия может выполнять с объектами в бакете (например, разрешить публичный доступ к определённым файлам).
- Политики IAM (Identity and Access Management) — определяют права пользователей и ролей AWS на доступ к S3.
- Списки управления доступом (ACL) — устаревший механизм для управления доступом к объектам и бакетам (рекомендуется использовать политики).
- Шифрование — данные могут шифроваться на стороне сервера (SSE-S3, SSE-KMS, SSE-C) или на стороне клиента (CSE).
- Блокировка публичного доступа (Public Access Block) — настройка, которая запрещает любые публичные доступы к бакету, независимо от политик.
- Журналирование доступа (Server Access Logging) — запись всех запросов к S3 для аудита.
- AWS CloudTrail — фиксация всех API-вызовов к S3.
Применение
S3 используется в самых разных сценариях:
- Хранение веб-сайтов — статические сайты (HTML, CSS, JavaScript) могут размещаться напрямую в S3 и обслуживаться через S3 Static Website Hosting.
- Резервное копирование и восстановление — данные могут автоматически копироваться в S3 с помощью AWS Backup или сторонних инструментов.
- Архивирование — долгосрочное хранение данных с использованием Glacier или Glacier Deep Archive.
- Хранение медиаконтента — изображения, видео, аудиофайлы для стриминговых сервисов.
- Аналитика и машинное обучение — хранение больших наборов данных (например, логов, датасетов) для обработки с помощью Amazon Athena, Amazon EMR, AWS Glue.
- Хранение логов — централизованное хранение логов приложений и инфраструктуры.
- Обмен данными — предоставление доступа к данным другим пользователям или системам через временные ссылки (Presigned URLs).
- Создание озер данных (Data Lakes) — S3 является основой для построения озёр данных в AWS.
Интеграция с другими сервисами AWS
S3 тесно интегрирован с другими сервисами AWS:
- Amazon CloudFront — CDN для раздачи контента из S3 по всему миру с низкой задержкой.
- AWS Lambda — запуск функций в ответ на события в S3 (например, изменение объекта).
- Amazon SQS и SNS — уведомления о событиях в S3.
- Amazon Athena — выполнение SQL-запросов к данным в S3 без необходимости загрузки в базу данных.
- Amazon Redshift — загрузка данных из S3 в хранилище данных.
- AWS Glue — ETL-процессы для подготовки данных в S3.
- Amazon Rekognition — анализ изображений и видео, хранящихся в S3.
Ограничения и особенности
- Максимальный размер объекта — 5 ТБ.
- Максимальный размер загружаемого объекта за один запрос — 5 ГБ (для больших объектов используется Multipart Upload).
- Количество бакетов на аккаунт AWS — по умолчанию 100 (можно увеличить запросом).
- Согласованность — S3 обеспечивает строгую согласованность чтения после записи для всех операций (put, delete, overwrite) с 2020 года.
- Стоимость — оплата за объём хранимых данных, количество запросов (GET, PUT, LIST), исходящий трафик и использование дополнительных функций (например, репликация, журналирование).
Источники
- Amazon Web Services. «Amazon S3 Documentation». AWS Documentation.
- Amazon Web Services. «Amazon S3 FAQs». AWS.
- Amazon Web Services. «AWS Well-Architected Framework». AWS.
- «Amazon S3: A Comprehensive Guide». Cloud Academy.
- «Amazon S3: The Definitive Guide». O'Reilly Media.
BFOmetr — база данных и аналитика по компаниям России.
На главную BFOmetr →