惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

Cyberwarzone
Cyberwarzone
V
Vulnerabilities – Threatpost
T
Tenable Blog
Forbes - Security
Forbes - Security
Simon Willison's Weblog
Simon Willison's Weblog
AWS News Blog
AWS News Blog
G
GRAHAM CLULEY
Know Your Adversary
Know Your Adversary
S
Securelist
C
Cybersecurity and Infrastructure Security Agency CISA
Project Zero
Project Zero
C
CXSECURITY Database RSS Feed - CXSecurity.com
V
Visual Studio Blog
WordPress大学
WordPress大学
Latest news
Latest news
K
Kaspersky official blog
T
Tailwind CSS Blog
T
Threat Research - Cisco Blogs
B
Blog RSS Feed
C
Cisco Blogs
博客园 - 聂微东
Martin Fowler
Martin Fowler
T
The Blog of Author Tim Ferriss
小众软件
小众软件
L
LangChain Blog
阮一峰的网络日志
阮一峰的网络日志
L
LINUX DO - 热门话题
Stack Overflow Blog
Stack Overflow Blog
罗磊的独立博客
P
Proofpoint News Feed
CTFtime.org: upcoming CTF events
CTFtime.org: upcoming CTF events
P
Privacy International News Feed
Cyber Security Advisories - MS-ISAC
Cyber Security Advisories - MS-ISAC
C
CERT Recently Published Vulnerability Notes
Cisco Talos Blog
Cisco Talos Blog
S
SegmentFault 最新的问题
Security Latest
Security Latest
Y
Y Combinator Blog
爱范儿
爱范儿
aimingoo的专栏
aimingoo的专栏
P
Privacy & Cybersecurity Law Blog
L
LINUX DO - 最新话题
月光博客
月光博客
The GitHub Blog
The GitHub Blog
博客园 - 三生石上(FineUI控件)
S
Security Affairs
P
Proofpoint News Feed
D
DataBreaches.Net
有赞技术团队
有赞技术团队
云风的 BLOG
云风的 BLOG

Все публикации подряд на Хабре

Ловим музу за клавиатуру: как айтишнику стать автором Что умеет Midjourney в 2026? Мой немного грустный разбор этого шикарного инструмента Никто не любит писать тесты, но ИИ может исправить это IPv8 выглядит как мечта. Поэтому почти наверняка не взлетит Производители вернули в продажу материнки с DDR3. Что происходит? Управление агентом с телефона через Telegram теперь в KodaCode От координации к лидерству: как меняется роль руководителя разработки Я сделала родителям бизнес вместо пенсии: зарабатываем 70 тысяч, мама не даёт продать В три раза быстрее приемка товара и оптимизация трудозатрат на 73%: как «РСТ-Инвент» помог Gulliver Group ИИ-шечный мир победил? О влиянии искусственного интеллекта на игропром Кремль снижает давление на Телеграмм пока Европа строит интернет по паспорту Как CEO, CTO и CIO за 8 часов собрали ИИ-директора, который умеет держать позицию под давлением Как (не) потерять домен за выходные Вместо 8 разных VPS: как я организовал практику студентам на одном сервере Почему твой Open Source проект не замечают? R&D: искусство управления неопределенностью в разработке AI-дефляция: вакансий для разработчиков больше, а рост зарплат — худший за 15 лет Мы отдали управление роботами OpenClaw. Что из этого вышло Галактический ID: система идентификации для всех форм разумной жизни Шесть основ бизнес-анализа: начинаем с вопроса «Кто в игре?» Код-ревью, в котором дело не в коде Данные переехали. Команда — нет Системной подход к сдаче OSWE в 2025 Почему комната управления реактором покрашена в цвет морской пены 4 YAML-файла вместо PySpark: как аналитикам строить пайплайны без разработчиков LLM-агент для поиска свободных доменов: автоматизируем подбор Когда, зачем и как правильно начинать новую сессию в Claude Code? Как я заставил нейросеть писать макросы для FreeCAD Анатомия ИИ‑агента для подбора персонала. От тысячи резюме к топ‑10 за минуты Опыт разработчика как экономика внимания Автономность как точка невозврата: кто будет субъектом в цифровом будущем Обучение ИИ в «диких» условиях: как рутинные действия превращаются в датасеты Как измерить LLM для задач кибербеза: обзор открытых бенчмарков Где хранить код? Сравнение GitHub, GitLab и Bitbucket Математика объясняет, почему нормальное распределение встречается повсюду Почему ваш FinOps не работает: 12 тезисов от практиков Как подписать проектную документацию УКЭП с использованием бесплатных лицензий Pilot Адаптивное администрирование Sigla Vision Я грузил уран в бочки, а потом 20 лет строил ИТ в атомной отрасли Чем позвонить с Эвереста? История и обзор спутниковой связи. Часть 2 Как языковая модель помогает контролировать качество инструктажей по охране труда в металлургии Как не передать на desktop свой IP в РКН Анатомия SAP Privileges: как устроено управление правами в macOS MoneyDev: Сказка про три главных слова Обновлённый токенизатор видео K-VAE 2.0 от Сбера Как сделать диспетчеризацию дома на 1284 квартиры почти бесплатно Как мы разогнали железную дорогу Мы дали агентам рутину. Теперь надо решить — что делать с освободившимся временем Токсичный контент, промпт-хакинг и защита ИИ — всё о Guardrails для LLM Умный город начинается с точного взгляда: как «Фалькон Тех» меняет пространство к лучшему Навайбкодил приложение для анализа графов Почему Дюну так интересно читать? Упрощаем работу с рутиной или как стать Гендальфом Белым Деконструкция Go: CPU, RAM и что там происходит. Go Assembler база. Часть 1.1 Какие профессии исчезнут из-за ИИ, а какие появятся? И что с этим делать Как мы построили IT-отдел, где хочется расти: архитектурные встречи, прозрачные метрики и книжные подарки Rufler: Делаем из Claude Code автономный рой через один YAML-конфиг Sing-box и белый список приложений Как построить надёжный обмен сообщениями в микросервисах: лучшие практики для enterprise OpenAI строит MLM-пирамиду, а McKinsey и Accenture помогают ей в этом Дом, который не построил Фишер (Часть 2) «Сверхзвуковой математик» против «Вдумчивого логиста»: битва алгоритмов 3D-упаковки Мультимодальные модели – грубый и дорогой инструмент Разговоры ничего не стоят. Код тоже Проверки физических лиц: с кого начнет ФНС Топ-10 бесплатных нейросетей для создания видео в 2026 году Первые слои кода: как наши решения сегодня определяют архитектуру ИИ на десятилетия Разработка нового статического анализатора: PVS-Studio JavaScript Поиск уязвимостей ПО: базовый минимум или роскошный максимум Почему оценка персонала не работает как инструмент управления Как мы разработали ИИ-ассистента и сократили рутину продуктовой команды на 50% Как я ушел из найма, нажарил косточек и продал на маркетплейсах на 168 млн в год Когда 1С:ERP уже внедрена, а нормального производственного плана всё ещё нет Как я сделал Claude мультимодальным, подключив к нему Qwen Omni Как приглашение на вакансию мечты превращается в атаку Infrastructure as Code: философия и лучшие практики IaC Тестируем Yandex Code Assistant на задаче, в которой нужно хранить секреты nxs-universal-chart v3.0: новое поколение универсального Helm-чарта Callback Injection: Техника, которая отправила Microsoft Defender в глухой нокаут «Все идеи на стол»: митап как способ вывести проект из тупика Сегодня я узнал нечто новое о GPU благодаря багу в своей игре Как заставить LLM ̶ ̶г̶а̶л̶л̶ю̶ ̶ эволюционировать Карта событий как фундамент аналитики: практический кейс для E-commerce Что выбрать для AI: x86, ARM или RISC-V? Дайджест железа за март Роль соматических мутаций в развитии аутоиммунных заболеваний: путь к избирательной терапии Mythos от Anthropic — тревожный сигнал для всех, а не только для банков Guardrails для LLM на Java: как приручить промпт‑инъекции и токсичные ответы Green-VLA: как мы собрали VLA-модель для реального антропоморфного робота и не потеряли обобщение Финансовая гонка вооружений: почему умные люди добровольно в ней участвуют Эра ИИ-агентов наступила: выбираем лучшего цифрового сотрудника # Практический опыт внедрения WinCC Redundancy на производственном предприятии Сделал MVP за 3 дня, а потом неделю прикручивал оплату. Оно того стоило? Физика против Маска: почему Starship V3 может оказаться ещё одной катастрофой Нефть Венесуэлы: крупнейшие запасы в мире, но не крупнейшая нефтяная держава JPA 4. Переосмысление Hibernate Почему зеркальная фотокамера Nikon D5 десятилетней давности идеально подошла для миссии «Артемида-2» Проект «Уровень-Спутник» или как мы сделали платформу для гидрологов «Замедлиться, чтобы ускориться»: почему ИИ повышает цену ошибок в требованиях и архитектуре Как с нуля поднять трафик IT-компании на 1657% при бюджете 55 тыс. и выжить Pixel-perfect Downsampling — идеальная отрисовка 50 миллионов точек без потерь
FinOps в S3: Как эффективно управлять стоимостью хранения
lilyerma (Ин · 2026-04-22 · via Все публикации подряд на Хабре

Уровень сложностиСредний

Время на прочтение8 мин

Охват и читатели2.4K

Туториал

Каждый год объем данных в мире растет на 24.4%. По прогнозам IDC, в 2025 году человечество должно было сгенерировать 175 зеттабайт данных. Исследование показывает, что значительный рост хранения данных за последние годы приходится на публичные облака.

В облаках стандартом для хранения этих массивов стал S3 (Simple Storage Service). Он подкупает своей простотой и дешевизной на старте. Но в этом и кроется ловушка: как только объем данных переваливает за терабайты, а количество запросов — за миллионы, счета начинают «кусаться».

Разберем на примере Яндекс Облака, какие рычаги управления стоимостью (FinOps) у нас есть и как навести порядок в бакетах, пока они не съели ваш бюджет. 

Горячо — холодно. Где хранятся ваши данные?

Выбор класса хранения — самый мощный инструмент оптимизации. В Яндекс Облаке их три, и разница в стоимости хранения между классами может быть почти четырехкратной.

Чтобы проиллюстрировать, за счет чего может случиться или не случиться экономия, я приведу таблицу сравнительной стоимости. Т.е. это таблица коэффициентов цен классов относительно цены Стандартного хранилища. Сам прайс-лист Яндекс Облака вы найдете на сайте

По таблице можно вывести простое правило: если к данным обращаются часто — выбираем Стандарт. Если редко — Холодное. Если это долгосрочный архив или данные, которые вы обязаны хранить, — Ледяное.

Параметр

Стандартное

Холодное

Ледяное

Хранение (ГБ×час)

~0,53×

~0,27×

Операции GET, HEAD, OPTIONS

2,5×

Операции LIST, PATCH, POST, PUT

2,5×

Операция DELETE

Не тарифицируется

Не тарифицируется

Не тарифицируется, но взимается плата за хранение (удаление/изменение до 12 месяцев)

Бесплатные лимиты (мес.)

Есть

Нет

Нет

Важно: Переход в Ледяное хранилище накладывает обязательство по оплате хранения на 12 месяцев вперед. Удалите или измените объект раньше — все равно заплатите за оставшийся срок. 

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

Автоматизация: политики управления жизненным циклом

Не нужно менять классы объектов вручную. Большинство провайдеров позволяют настроить жизненный цикл — правила автоматического перемещения или удаления данных по вашим критериям.

Вы можете настроить правила на основе:

  • Срока хранения (количество дней с момента создания объекта)

  • Размера файлов

  • Версии файлов

  • Префиксов и тегов.

Правила можно назначить как из графического интерфейса в настройках бакета, так и через S3 CLI или YС CLI.

Скрытые «пожиратели» бюджета

Есть два фактора, которые раздувают бакеты незаметно для мониторинга.

А. Части многосоставных загрузок (Multipart Uploads)

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

Решение: Настройте политику автоматического удаления незавершенных составных загрузок (например, через 7 дней).

Б. Версионирование без контроля

Версионирование — это важный инструмент для защиты от ошибок и для обеспечения комплаенса. Но если вы перезаписываете файл весом 10 МБ сто раз в день, у вас в бакете незаметно вырастет почти до 1 ГБ данных. 

Решение: Используйте параметр NoncurrentVersionExpiration для автоматического архивирования или удаления старых версий (например, через 7–30 дней).

Цена запросов

Для анализа ценообразования операций приведем нормированную таблицу цен. В оригинальном прайс-листе Яндекс Облака цены могут быть указаны за 1 тыс. или 10 тыс. запросов. В таблице ниже цены нормированы к 10 000 операций для удобства сравнения цен транзакций.

Цена в рублях за 10 000 операций (после нетарифицируемого лимита)

Группа операций

Единица измерения

Стандартное

Холодное

Ледяное

LIST, PUT, POST, PATCH, TRANSITION

за 10 000 запросов

~5,27

~12,9

~25,9

GET, HEAD, OPTIONS

за 10 000 запросов

~0,43

~1,06

~2,13

Часто S3 используют как базу данных или очередь, постоянно вызывая операцию LIST для проверки наличия новых или поиска старых файлов. Это анти-паттерн.

Почему это плохо:

  • Операция LIST обладает низкой производительностью и плохо масштабируется при росте числа объектов в бакете.

  • Операции типа LIST стоят в разы дороже, чем GET.

  • В холодном и ледяном классах стоимость этих операций возрастает в 2.5 и 5 раз соответственно.

Рекомендация экспертов, как быть: переносить логику отслеживания файлов (Control Plane) на сторону приложения или используйте очереди сообщений. Доклад о том, как избежать распространенных ошибок.

С одной стороны, запросы GET выглядят демократично. С другой, объектное хранилище тарифицирует объем исходящего трафика. Таким образом, несмотря на низкую цену самой операции, полная стоимость будет определяться еще и размерами файлов, запрашиваемых через интернет. 

План аудита Object Storage: 6 шагов к экономии

Проведение аудита S3-хранилища — это не только поиск «лишних» файлов, но и анализ паттернов доступа. Ниже представлен пошаговый алгоритм сбора данных для принятия архитектурных решений.

Яндекс Облако предлагает разнообразный набор инструментов для анализа бакетов, это и консоль облака, aws s3api, Yandex Cloud CLI, браузерные решения, S3 Inventory и многие другие. Информацию часто можно получить более чем одним способом.

Шаг 1. Инвентаризация активов

Прежде всего нужно понять масштаб инфраструктуры. Собираем список всех бакетов в каталоге.

В консоли: Раздел Object Storage -> Список бакетов.

YC CLI:

yc storage bucket list

Пример результата:

+------------------+----------------------+-------------+-----------------------+---------------------+

| NAME             | FOLDER ID            | MAX SIZE    | DEFAULT STORAGE CLASS | CREATED AT          |

+------------------+----------------------+-------------+-----------------------+---------------------+

| first-bucket     | b1gmit33ngp6******** | 53687091200 | STANDARD              | 2022-12-16 13:58:18 |

+------------------+----------------------+-------------+-----------------------+---------------------+

Шаг 2. Анализ объемов и структуры данных

Оцениваем общее использование ресурсов и лимиты. Для визуализации постройте график, где X — средний размер объекта, Y — количество объектов, а размер пузырька — общий объем бакета.

Вариант анализа S3 Storage Lens (доступен только в AWS 🙁 )

Вариант анализа S3 Storage Lens (доступен только в AWS 🙁 )

Такую визуализацию легко можно повторить подручными средствами (Excel, DataLens или Python).

Как получить данные:

yc storage bucket stats <имя_бакета> 

Пример результата: 

Скрытый текст
name: first-bucket

max_size: "5368709120"

used_size: "621552"

storage_class_used_sizes:

  - storage_class: STANDARD

    class_size: "607467"

  - storage_class: COLD

    class_size: "14085"

storage_class_counters:

  - storage_class: STANDARD

    counters:

      simple_object_size: "607467"

      simple_object_count: "41"

  - storage_class: COLD

    counters:

      simple_object_size: "14085"

      simple_object_count: "16"

default_storage_class: ICE

anonymous_access_flags:

  read: false

  list: false

  config_read: false

created_at: "2023-04-10T19:41:30.266075Z"

updated_at: "2023-08-02T04:05:44.564924Z"

Далее можно применить следующую эвристику для определения наиболее перспективных кандидатов на оптимизацию:

Источник

Источник

Шаг 3. Анализ паттернов доступа (Мониторинг vs Биллинг)

Сопоставьте объем хранилища и количество запросов. Если данных много, а запросов мало — пора переходить на «холодные» классы (Cold/Ice Storage).

Как может выглядеть визуализация паттерна доступа к данным: 

Источник

Источник

  • Источники данных:

    1. Секция мониторинга на странице бакета: Стандартные дашборды. 

    2. Биллинг: Ищем строки с service_name: Object Storage и отдельно анализируем трафик VPC. Важно: для точного сопоставления используем resource id для определения конкретных бакетов, генерирующих трафик и запросы. Поля pricing_quantity показывают количество тарифицируемых единиц запросов и скачанных ГБ.

    3. Логирование: Если нужен более детальный анализ (к каким именно файлам, кто и как обращался), включите сбор логов в отдельный бакет. Делается на странице бакета во вкладке “Логирование”.

Внимание: хранение логов при больших объемах само по себе может стать статьей расходов.

Шаг 4. Проверка жизненного цикла (Lifecycle Policies)

Объем данных часто растет линейно, а интерес к ним угасает через 30-90 дней. Проверьте, настроены ли правила автоматического удаления или перемещения данных.

Как проверить:

  • В консоли: Страница настроек бакета -> Жизненный цикл.

  • AWS CLI (совместимый метод):

aws s3api get-bucket-lifecycle-configuration \

  --bucket <имя_бакета> \

  --endpoint-url https://storage.yandexcloud.net

Пример результата: 

Скрытый текст
{

    "Rules": [

        {

            "Expiration": {

                "Days": 30

            },

            "Filter": {

                "And": {

                    "Prefix": ""

                }

            },

            "Status": "Enabled",

            "AbortIncompleteMultipartUpload": {

                "DaysAfterInitiation": 7

            }

        }

    ]

}

Шаг 5. Контроль версионирования и незавершенных загрузок

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

  • Чек-лист:

    1. Статус версионирования: Проверяем через yc storage bucket get <имя_бакета> --full. Если версионирование включено, будет виден параметр versioning: VERSIONING_ENABLED. Тогда проверяем, а настроены ли политики управления жизненным циклом версий.

    2. Multipart Uploads: Убедитесь, что части прерванных загрузок не копятся месяцами. Для их очистки обязательно должна быть настроена Lifecycle-политика AbortIncompleteMultipartUpload.

Команда  вернет список частично загруженных объектов:

yc storage s3api list-multipart-uploads \

  --bucket <имя_бакета>

Шаг 6. Оптимизация трафика и типов операций

Последний штрих — анализ того, как приложение общается с хранилищем.

  • Исходящий трафик: Помните, что трафик в интернет платный, а внутри облака — бесплатный. Проверьте, не качает ли ваш бэкенд данные из S3 через публичный интерфейс.

  • Типы операций: Если в счетах аномально много запросов LIST, проверьте архитектуру. Возможно, приложение слишком часто сканирует весь бакет вместо обращения к конкретным ключам.

  • Форматы данных: Рассмотрите переход на аналитические форматы (например, Parquet). Это позволит использовать S3 не просто как «диск», а как основу для аналитики (S3 Select / Yandex Query), экономя на объеме считываемых данных.

  • Объединение файлов небольшого размера в единый архив может сократить расходы на хранение и перемещение между классами.

Вывод

В заключение короткое резюме. Управление стоимостью хранения в S3 требует комплексного подхода, который сводится к трем ключевым шагам:

  1. Оптимизация хранения: Выбирайте класс хранения (Стандартное, Холодное, Ледяное) в зависимости от частоты доступа.

  2. Автоматизация и очистка: Используйте политики жизненного цикла (Lifecycle Policies) для автоматического перевода данных в более дешевые классы и обязательной очистки старых версий файлов и незавершенных многосоставных загрузок.

  3. Контроль операций и трафика: Минимизируйте количество низко производительных операций типа LIST, перенося логику отслеживания на сторону приложения, и следите за трафиком, идущим через интернет, который является ключевым фактором в итоговой стоимости запросов.