Amazon Simple Storage Service (S3) — один из самых популярных сервисов AWS — представляет собой облачное решение для хранения данных, которое предлагает масштабируемую, надежную инфраструктуру хранения данных с малой задержкой.
Amazon S3 состоит из двух основных компонентов:
- Сегмент — пользователи создают сегменты для хранения своих объектов.
- Объекты — объекты — это файлы (и их метаданные), загружаемые в корзину.
Amazon S3 обязан своей популярностью своей простоте и универсальности. Amazon S3 поддерживает любой вариант использования, в котором используется интернет-хранилище, и является основой внутренней архитектуры хранения данных для многих компаний, в том числе для многих сервисов AWS.
Единственным недостатком Amazon S3 является стоимость, которая может быстро возрасти в зависимости от того, сколько данных хранится и как часто к ним обращаются. Крайне важно контролировать расходы и оптимизировать их таким образом, чтобы это не влияло на производительность приложений и не увеличивало накладные расходы.
В этом посте мы обсудим преимущества использования хранилища Amazon S3, основные факторы затрат и как оптимизировать затраты.
Преимущества Amazon S3
Amazon S3 был разработан для удовлетворения потребностей внутренних разработчиков Amazon в масштабируемости, надежности, скорости, низкой стоимости и простоте.
Amazon S3 отличается высокой гибкостью — вы можете хранить данные любого типа и объема и обращаться к ним так часто (например, несколько раз в секунду для аналитики в реальном времени) или так редко (например, один раз для аварийного восстановления), как вам удобно. Объекты могут иметь размер от одного байта до пяти терабайт, а общий объем данных, которые вы можете хранить, не ограничен.
Amazon S3 по умолчанию защищен — созданные вами корзины доступны только вам, и вы полностью контролируете, кто имеет доступ к вашим данным. Данные безопасно загружаются и загружаются через конечные точки SSL с использованием протокола HTTPS. Amazon S3 автоматически шифрует все загружаемые данные или, в качестве альтернативы, позволяет использовать собственные библиотеки шифрования. Наконец, Amazon S3 поддерживает аутентификацию пользователей для управления доступом к данным, автоматически выделяет общедоступные корзины и уведомляет об изменениях в политиках корзин.
Драйверы затрат Amazon S3
Управление данными и их хранение в Amazon S3 включает шесть компонентов затрат:
- Хранилище
- Запросы и получение данных
- Передача данных
- Управление данными и аналитика
- Репликация
- Обработка данных с помощью S3 Object Lambda
Затраты на хранение будут составлять большую часть ваших затрат на S3 — до 90%.
Вы платите за хранение объектов в корзинах Amazon S3 независимо от их использования. Плата зависит от размера ваших объектов, от того, как долго вы хранили объекты в течение месяца, и от класса хранения.
Все регионы имеют одинаковые затраты, за исключением Южной Америки (Сан-Паулу), где они могут быть на 75% выше.
Давайте подробнее рассмотрим каждый из приведенных ниже факторов затрат, чтобы выяснить, как они влияют на ваши расходы на Amazon S3.
Класс хранения
Поскольку на хранение приходится более 90 % ваших затрат на Amazon S3, выбор правильного класса хранилища для ваших объектов может сильно повлиять на затраты, что приведет к экономии до 95 %.
При перемещении данных в любой класс хранилища Amazon S3 взимается плата за каждый запрос. Рассмотрите затраты на передачу и запрос, прежде чем совершать переход.
Amazon S3 предлагает несколько классов хранилищ, соответствующих шаблонам доступа к данным, требованиям к производительности и стоимости:
- Стандарт S3 : хранилище для любого типа данных, обычно для часто используемых данных. Это самое дорогое хранилище.
- S3 Intelligent-Tiering : экономичное хранилище для данных с неизвестными или изменяющимися схемами доступа. Данные автоматически перемещаются на наиболее экономичный уровень доступа при изменении схемы доступа, оптимизируя затраты на хранение. За каждый объект взимается небольшая плата за мониторинг и автоматизацию, но за извлечение или перемещение объектов между уровнями доступа дополнительная плата не взимается.
- S3 Standard-Infrequent Access : идеально подходит для долгоживущих объектов, хранящихся более 30 дней, которые редко используются, но должны быть доступны быстро (миллисекунды), когда это необходимо. Данные хранятся избыточно в нескольких географически разделенных зонах доступности.
- S3 One Zone — нечастый доступ : идеально подходит для долгоживущих объектов, хранящихся более 30 дней, к которым редко обращаются, но при необходимости они должны быть доступны быстро (миллисекунды). Данные хранятся с избыточностью в одной зоне доступности, что на 20 % дешевле, чем хранилище S3 Standard-Infrequent Access.
- S3 Glacier Instant Retrieval : идеально подходит для долгоживущих объектов, хранящихся более 90 дней, доступ к которым осуществляется раз в квартал и должен быть доступен быстро (миллисекунды).
- S3 Glacier Flexible Retrieval : идеально подходит для долгосрочного резервного копирования и архивирования с гибкими параметрами извлечения в диапазоне от 1 минуты до 12 часов. Ранее известный как S3 Glacier.
- S3 Glacier Deep Archive : идеально подходит для долгоживущих объектов, хранящихся более 180 дней, к которым обращаются один или два раза в год и которые можно восстановить за 12 часов.
Извлечение данных и запросы
Извлечение объектов, хранящихся на уровнях нечастого доступа — S3 Standard-Infrequent Access, S3 One Zone-Infrequent Access, S3 Glacier Instant Retrieval, S3 Glacier Flexible Retrieval и S3 Glacier Deep Archive — является следующим важным фактором затрат S3.
Изменение шаблонов доступа не подходит для нечастых уровней доступа, поскольку плата за извлечение может увеличить ваши расходы до суммы, превышающей ту, которую вы заплатили бы в S3 Standard. С помощью S3 Intelligent-Tiering вы можете сэкономить деньги даже при изменении шаблонов доступа, без влияния на производительность, без операционного вмешательства и без платы за извлечение.
Вы также платите за запросы, сделанные для ваших корзин и объектов S3 — обычно на них приходится менее 1 % ваших ежемесячных затрат на S3, если только вы не загружаете большие объемы данных или не перемещаете объекты между классами хранилища.
Передача данных
Вы платите за всю пропускную способность в Amazon S3 и из нее, за исключением: данных, передаваемых в S3 из Интернета, данных, передаваемых в том же регионе AWS (между корзинами или в любой сервис AWS), и данных, передаваемых в Amazon CloudFront.
Это означает, что существуют дополнительные расходы на межрегиональную передачу данных в другие сервисы AWS (например, EC2, EMR, Redshift, RDS и т. д.) и межрегиональную репликацию между корзинами Amazon S3. Крайне важно размещать корзины Amazon S3 и ресурсы AWS, которые обращаются к ним, в одном регионе, чтобы оптимизировать расходы.
Управление и аналитика
Вы платите за функции управления хранилищем и аналитику, которые включены в сегментах вашей учетной записи:
- Инвентаризация Amazon S3: управление, аудит и создание отчетов по объектам S3.
- Анализ класса хранилища S3: проанализируйте шаблоны доступа к хранилищу, чтобы решить, когда следует перевести данные в нужный класс хранилища.
- S3 Storage Lens: получите представление об использовании и действиях объектного хранилища в масштабах всей организации.
- Тегирование объектов S3: категоризируйте свое хранилище с помощью тегов.
Репликация Amazon S3 позволяет автоматически асинхронно копировать объекты между корзинами. При репликации вы платите за хранение Amazon S3 в выбранных целевых классах хранения S3, за первичную копию, за запросы PUT репликации и применяемые сборы за извлечение хранилища при нечастом доступе.
При межрегиональной репликации вы также платите за межрегиональную передачу данных из Amazon S3 в каждый целевой регион. Если вы используете контроль времени репликации S3, вы также платите за передачу данных контроля времени репликации и плату за метрики репликации S3.
Лямбда объекта S3
При использовании S3 Object Lambda запросы Amazon S3 GET, HEAD и LIST вызывают определяемую вами функцию AWS Lambda. Эта функция обработает ваши данные и вернет обработанный объект обратно в ваше приложение.
Вы платите за следующее:
- За гигабайт в секунду на время работы функции AWS Lambda
- За 1 млн запросов AWS Lambda
- Запросы на основе типа запроса, который зависит от класса хранилища
- За ГБ для данных S3 Object Lambda, возвращаемых вашему приложению
Стоимость запросов Amazon S3 и Lambda зависит от региона AWS, а также продолжительности и памяти, выделенной для функции Lambda.
Корзина и конфигурация файла
То, как вы настраиваете свои корзины и файлы, также влияет на стоимость Amazon S3:
- Сжатие данных. Хранение данных в сжатом формате (например, gzip, bzip, bzip2, zip, 7z и т. д.) или в формате столбцов, таком как Parquet, может еще больше снизить стоимость хранения.
- Размер файла . Когда тип данных относительно хорошо известен, размер файла также может повлиять на стоимость запроса. Рабочие нагрузки с интенсивным чтением могут экономить на небольших размерах файлов, которые минимизируют затраты на операцию GET, в то время как операции с интенсивным записью могут быть экономнее на больших файлах, которые минимизируют затраты на операцию PUT.
- Разделение данных . Запросы SQL часто используются для чтения данных S3. Данные в корзинах S3 должны быть по возможности секционированы, чтобы свести к минимуму стоимость операции GET и повысить производительность запросов.
- Версии S3 . Тарифы Amazon S3 применяются к каждой версии объекта, хранимой и передаваемой, если в корзине включено управление версиями. Каждая версия объекта — это весь объект, а не отклонение от предыдущей версии.
- Многокомпонентная загрузка S3. Используя составную загрузку, вы можете загружать один объект несколькими частями. Если ваша загрузка была прервана до того, как объект был полностью загружен, с вас будет взиматься плата за части загруженного объекта до тех пор, пока вы их не удалите.
Оптимизируйте расходы на S3 с помощью ITFB
Оптимизация затрат на Amazon S3 без ущерба для производительности приложений и увеличения операционных издержек — непростая задача.
Мы поможем обеспечить комплексный подход к оптимизации. Кроме того, предложим конкретные рекомендации для Amazon S3, которые можно легко реализовать.
Оптимизация класса хранилища Amazon S3:
Рекомендации по классам хранения фактических моделей использования и потребностей.
Начните оптимизировать свои облачные расходы уже сегодня!
Свяжитесь с одним из наших специалистов по управлению облачными затратами, чтобы узнать, как ITFB может помочь вашей организации контролировать расходы, оптимизировать ресурсы и сократить облачные отходы.