← Вернуться в блог

Сколько вы переплачиваете за CDN и хранилище

В этой статье не приводится никаких «среднеотраслевых» цифр. Все данные по сжатию взяты из собственных тестов, а формулы расчета стоимости даны для того, чтобы вы могли подставить свои реальные тарифы и получить результат. Ежемесячно проверяя облако, большинство людей смотрят только на общую сумму: чуть больше, чем в прошлом месяце, но в бюджете — и так проходит. Но если развернуть счет и разбить по продуктам, многие сайты, мини-приложения и платформы контента замечают, что на первых местах обычно стоят всего две позиции: …

Поделиться

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

Ежемесячно проверяя облако, большинство людей смотрят только на общую сумму: чуть больше, чем в прошлом месяце, но в бюджете — и так проходит.

Но если развернуть счет и разбить по продуктам, многие сайты, мини-приложения и платформы контента замечают, что на первых местах обычно стоят всего две позиции:

  • Объектное хранилище: плата за хранение в расчете на ГБ в месяц
  • CDN / Трафик в общую сеть: плата за трафик в расчете на ГБ

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

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


1. «Сжато при загрузке» не означает «сжато достаточно»

Многие команды говорят: «Мы сжимаем при загрузке».

Мы специально протестировали этот сценарий. Образец — сайт, где пользователи могут загружать изображения; перед сохранением в базе уже была выполнена стандартная сжатая обработка: 78 папок, 4624 изображения, всего 1,41 ГБ.

Объем Относительно исходного
Исходный файл (уже сжатый сайтом) 1,41 ГБ —
Запаковано в zip 1,41 ГБ -0,2%
Дополнительное сжатие ImgZilla 0,75 ГБ -46,8%

На базе «уже сжатого» мы сэкономили почти половину. И из 4624 изображений каждое можно сжать еще сильнее, ни одно не является «уже до предела, пропустить сразу».

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

Если ваша библиотека изображений состоит из файлов, снятых камерой напрямую, экспортированных из дизайн-проектов или загруженных операторами в исходном виде, объем еще больше. Мы протестировали 32 188 фотографий JPEG, снятых камерами напрямую, и общий объем уменьшился на 76,8%.


2. Плата за хранение — это сложение, а плата за трафик — умножение

Это самый легко упускаемый из виду момент.

  • Плата за хранение: изображение хранится в бакете, и каждый месяц взимается плата в зависимости от его объема
  • Плата за трафик: каждое открытие изображения дополнительно взимается плата в зависимости от его объема

Поэтому лишние 300 КБ бесполезных байтов на баннере главной страницы почти не заметны в счете за хранение, но если он открывается 100 000 раз в день, на счете за трафик это составляет примерно 29 ГБ ежедневно.

Чем популярнее изображение, тем больше вы переплачиваете. И самые популярные изображения — это как раз баннеры главной страницы, главные изображения товаров, изображения в начале статей — те самые места, где чаще всего «просто загружают исходники».


3. Рассчитайте свой собственный счет

Не верьте никаким оценкам, возьмите свой счет за прошлый месяц и подставьте в следующие две формулы:

Месячная экономия на хранении ≈ Общий объем хранения изображений (ГБ) × Коэффициент сжатия × Цена хранения (юани/ГБ·мес)
Месячная экономия на трафике ≈ Месячный объем трафика изображений вниз (ГБ) × Коэффициент сжатия × Цена трафика (юани/ГБ)

Коэффициент сжатия можно сначала оценить консервативно на уровне 40% (меньше, чем наши 46,8% для «уже сжатых» изображений), а затем, когда вы обработаете свои собственные изображения, замените на реальные цифры.

Приведем демонстрационный пример (цены — условные, замените их на свои из счета):

Параметр Значение
Объем хранения изображений 500 ГБ
Месячный объем трафика изображений вниз 10 ТБ
Цена хранения (условно) 0,12 юаня/ГБ·мес
Цена трафика (условно) 0,20 юаня/ГБ
  • Хранение: 500 × 40% × 0,12 ≈ 24 юаня/мес
  • Трафик: 10 240 × 40% × 0,20 ≈ 819 юаней/мес

Можно увидеть, что по-настоящему крупная сумма — это трафик. Экономия на хранении — это мелочь, экономия на трафике — реальные деньги. И эти деньги платятся ежемесячно, пока изображения не обработаны, платежи продолжаются.

Есть и другие доходы, которые не видны в счете: загрузка страниц становится быстрее, мобильные пользователи тратят меньше трафика, показатели LCP становятся лучше, размер главного пакета мини-приложения легче уложится в лимит.


4. Почему, зная, что сжатие нужно, никто этого не делает?

Мы спросили многих разработчиков и владельцев сайтов, и ответы сводятся в основном к трем пунктам:

1. Страх изменения путей.
Обычные онлайн-инструменты требуют «загрузить → скачать → переименовать → заменить → изменить ссылки в коде», и никто не решается на это в проектах с тысячами изображений.

2. Страх ухудшения качества.
После сжатия вас могут упрекнуть дизайнеры, операторы или босс: «картинка размылась». Никто не хочет отвечать за это.

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

ImgZilla создан именно для решения этих трех проблем:

  • Сжатие на месте: после сжатия файлы напрямую заменяют оригиналы, структура имен и каталогов остается полностью неизменной, ссылки в коде менять не нужно ни на одну строку
  • Визуально без потерь: PNG и SVG — настоящее без потерь; для JPEG, WebP, AVIF и HEIC подбираются отдельные параметры для каждого формата в пределах, которые человеческий глаз не может различить. Встроено сравнение слева направо с возможностью увеличения до реальных пикселей для самостоятельной проверки
  • Просто перетащить папку: рекурсивная обработка всех подпапок, не нужно выбирать файлы или двигать ползунки
  • Полностью локальная обработка: внутренние ресурсы, изображения неопубликованных товаров не нужно загружать на сторонние серверы

5. Практический процесс «похудения» бакета хранилища

Если ваши изображения уже находятся в объектном хранилище, процесс выглядит примерно так:

  1. Синхронизация с локальной машиной: используйте инструменты вроде rclone, ossutil, coscmd, aws s3 sync, чтобы вытащить каталог изображений на Mac
  2. Сначала сделайте резервную копию: не волнуйтесь, это хорошая привычка, а не потому, что инструмент ненадежен
  3. Перетащите в ImgZilla: перетащите весь каталог и дождитесь завершения
  4. Синхронизация обратно в бакет: используйте тот же инструмент для перезаписи и загрузки, пути остаются прежними
  5. Обновление кэша CDN: выполните обновление каталога для каталога с изображениями, чтобы пограничные узлы получили новые файлы

Не пропустите 5-й шаг. Если его не сделать, узлы CDN продолжат раздавать старые файлы, и счет за трафик начнет снижаться только после истечения времени жизни кэша.


6. Честное описание

  • ImgZilla в настоящее время доступен только для macOS (требуется macOS 12.3 и выше), версии для Windows нет
  • За исключением PNG и SVG, другие форматы сжимаются визуально без потерь, а не с точностью до пикселя. Если вашему бизнесу требуется абсолютная идентичность пикселей (например, медицинские изображения, материалы для сравнения пикселей), не кодируйте такие файлы заново
  • Коэффициент сжатия зависит от изображения. Наши реальные показатели сжатия на одно изображение варьировались от 32% до 86%, рекомендуем сначала протестировать один каталог, чтобы увидеть реальные цифры, прежде чем принимать решение

В заключение

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

Но они там есть, каждый месяц оплачиваются по ГБ, и за каждое открытие взимается дополнительная плата.

Перетащите каталог с изображениями в ImgZilla и запустите. Сравните свои счета за следующий месяц.

👉 Скачать ImgZilla: https://imagetool.app/ImgZilla

Нужны изображения легче и быстрее?

Скачайте ImgZilla и сжимайте локально — изображения не покидают ваш Mac.