Как снизить затраты на хостинг вашего приложения
Чтобы снизить затраты на хостинг, выясните, что на самом деле работает и почему, а затем дайте всему уснуть, когда оно никому не нужно. На хостингах, которые масштабируются до нуля, простаивающее приложение и спящая база данных стоят очень мало, поэтому самая большая экономия обычно приходит от устранения того, что их не даёт усыпить, — чаще всего это код, который проверяет базу данных каждые несколько секунд, — а затем от сокращения трафика и удаления приложений, которыми никто не пользуется.
У большинства небольших приложений нет проблемы с трафиком. У них есть проблема «что-то всегда включено». Это руководство показывает, как её найти и исправить, с промптами, которые можно дать ИИ-конструктору приложений.
За что вы на самом деле платите
Счёт за хостинг небольших приложений складывается из нескольких вещей. Знание того, какая из них самая большая, подскажет, где искать.
| Статья | Что её определяет | Обычное решение |
|---|---|---|
| Вычисления (сервер) | Размер машины и сколько часов она работает | Дать ей уснуть; подобрать размер |
| База данных | Её размер и сколько времени она активна | Прекратить постоянные запросы, чтобы она могла уснуть |
| Трафик | Сколько данных скачивают посетители | Сжать изображения, кэшировать файлы |
| Хранилище | Файлы и данные, которые вы храните | Удалять старые загрузки, логи и резервные копии, которые не нужны |
| Сторонние API | Вызовы AI-моделей, карт, email, SMS | Кэшировать результаты, ставить лимиты |
Многие современные хостинги, включая Mythex, масштабируются до нуля: когда приложением никто не пользуется, сервер останавливается и не стоит ничего за вычисления, а при следующем визите просыпается. Это меняет вопрос с «насколько большой у меня сервер?» на «почему мой сервер включён?»
Шаг 1: посмотрите, куда уходят деньги
Прежде чем что-то менять, откройте страницу использования вашего хостинга и найдите:
- Какой проект стоит дороже всего. Часто один приложение составляет большую часть счёта.
- Какая категория — вычисления, база данных, трафик или хранилище.
- Когда идут расходы. Ровная линия ночью, когда пользователей нет, — подсказка, что что-то держит приложение включённым.
В Mythex Usage details показывает последние 30 дней, разделённые на Build (ИИ-агент) и Run (хостинг, трафик, база данных и хранение файлов), с разбивкой по проектам.
Шаг 2: дайте простаивающим приложениям и базам уснуть
Это главный рычаг для большинства небольших приложений. База данных, которая засыпает при простое и просыпается по следующему запросу, почти ничего не стоит в тихие часы. База, к которой обращаются каждые несколько секунд, никогда не простаивает, и вы платите за неё весь день.
Лимиты хостинга Mythex подробно описывают, как это работает для опубликованных приложений: спящее приложение не тратит ничего на вычисления, база данных стартует в минимальном размере, растёт под нагрузкой, засыпает после 5 минут простоя, а оплачивается по своему размеру, умноженному на время, когда была активна. Поэтому приложение, которое обращается к базе даже раз в несколько минут днём и ночью, оплачивается так, будто всё время занято, тогда как то же приложение без фоновой активности стоит очень мало.
Что обычно не даёт приложению уснуть:
- Опрос. Страница, которая каждые 2–5 секунд спрашивает сервер «есть ли что-то новое?». Оставьте такую вкладку открытой на одном ноутбуке — и база никогда не уснёт.
- Автообновляемые дашборды, которые перезагружают данные по таймеру, даже когда никто не смотрит.
- Мониторы доступности, которые пингуют приложение каждую минуту.
- Фоновые циклы в серверном коде —
setInterval, который бесконечно чистит или синхронизирует данные. - Плановые запросы «keep-alive», которые кто-то добавил, чтобы избежать медленного первого открытия, — они работают, мешая уснуть, и именно это стоит денег.
Попросите ИИ их найти:
Просмотри код и найди всё, что запускается по таймеру или многократно обращается к базе данных: опрос, setInterval, автообновление, фоновые циклы. Перечисли каждое, как часто оно запускается и работает ли, когда никто не открыл страницу. Пока ничего не меняй.
Затем исправляйте их по одному:
Дашборд опрашивает /api/orders каждые 3 секунды. Измени так, чтобы он обновлялся только пока вкладка браузера видна, и каждые 60 секунд вместо 3. Добавь кнопку ручного обновления.
Если вашему приложению действительно нужны живые обновления (чат, живое табло), спросите, нельзя ли отправлять обновления только тогда, когда что-то меняется, а не постоянно спрашивать. Для многих приложений достаточно «обновлять, когда пользователь возвращается на вкладку».
Шаг 3: подберите размер сервера
Более крупные машины стоят дороже за час. Многие приложения, созданные ИИ, стартуют с размером по умолчанию, и этого хватает; проблемы возникают, когда просят «больше мощности», чтобы исправить медленность, которая на самом деле вызвана медленным запросом.
- Держите самый маленький размер, который обслуживает ваш трафик без ошибок.
- Если видите падения из-за памяти, сначала спросите ИИ, не загружает ли приложение в память слишком много (всю таблицу вместо одной страницы результатов).
- Добавляйте машины, только если есть измеренный трафик, который этого требует.
В Mythex размер машины выбирается при публикации исходя из того, что нужно приложению; дополнительные машины запускаются, только когда трафик высокий, и снова засыпают, когда он падает. Стоимость зависит от размера, поэтому, если считаете, что он завышен, попросите в чате меньший.
Шаг 4: сократите трафик
Трафик — это то, что скачивают посетители. Чаще всего самая большая его часть — изображения.
- Сжимайте изображения и используйте современные форматы, например WebP или AVIF.
- Меняйте размер изображений под тот, в котором они показываются. Фото 4000 пикселей, показанное миниатюрой 400 пикселей, тратит большую часть скачанного впустую.
- Включайте ленивую загрузку для изображений ниже первого экрана.
- Кэшируйте статические файлы (скрипты, стили, изображения), чтобы вернувшиеся посетители не скачивали их снова. См. что такое кэширование.
- Не отдавайте большие файлы при каждом просмотре страницы.
Проверь каждое изображение в приложении. Уменьши их до наибольшего размера, в котором они показываются, сконвертируй в WebP и включи ленивую загрузку для всего, что ниже первого экрана. Скажи общий размер до и после.
Более быстрые страницы и меньший трафик обычно идут вместе — см. как ускорить сайт.
Шаг 5: уберите то, чем никто не пользуется
- Снимите с публикации старые приложения — тестовые деплои, завершённые эксперименты, сайт прошлогоднего мероприятия.
- Удалите старые загрузки, логи и экспорты, которые не нужны.
- Удалите ссылки для предпросмотра, которыми вы больше не пользуетесь. В Mythex открытие ссылки для предпросмотра будит проект и расходует ваши кредиты, поэтому забытая ссылка, которую кто-то продолжает открывать, всё равно стоит денег.
- Уберите неиспользуемые сервисы — API-сервер или воркер, которые приложение больше не вызывает.
Шаг 6: подумайте о статическом сайте
Если ваш сайт не требует входа, не хранит данные пользователей и не содержит серверной логики — маркетинговый сайт, портфолио, меню, — он может быть статическим сайтом: простыми файлами, которые раздаёт CDN. Нет сервера и базы данных, которые нужно держать запущенными. В Mythex статические сайты не расходуют кредиты, пока просто лежат.
У этого сайта нет входа и сохранённых данных. Можно ли пересобрать его как статический сайт без сервера? Что мы при этом потеряем?
Шаг 7: следите за платными API-вызовами
Для приложений, которые вызывают AI-модели, карты или SMS, счета сторонних сервисов могут превышать стоимость хостинга.
- Требуйте вход для всего, что стоит денег за вызов.
- Добавьте лимит на пользователя (см. что такое ограничение частоты запросов).
- Кэшируйте ответы, которые не меняются, например геокодирование одного и того же адреса.
- Установите лимиты расходов или оповещения у каждого провайдера.
Частые ошибки
- Гадать вместо измерения. Сначала посмотрите разбивку использования; дорогая часть часто оказывается не тем, что вы ожидали.
- Покупать сервер побольше, чтобы исправить медленность. Отсутствующий индекс базы или загрузка слишком большого объёма данных — обычно настоящая причина.
- Опрашивать всё подряд. Каждый таймер с интервалом в несколько секунд — причина, по которой база остаётся включённой.
- Пинговать приложение, чтобы оно оставалось «тёплым». Это убирает экономию, которую даёт масштабирование до нуля. Смиритесь с короткой задержкой при первом визите или сознательно платите за постоянную работу.
- Забывать старые деплои. Неиспользуемые приложения с базами данных и фоновыми задачами незаметно накапливаются.
- Несжатые изображения. Часто это самая большая статья трафика на небольших сайтах.
Чек-лист
- Я знаю, какой проект и какая категория (вычисления, база данных, трафик, хранилище) стоят дороже всего.
- Ничто не опрашивает базу каждые несколько секунд, когда никто не смотрит.
- Дашборды обновляются с разумным интервалом или только пока вкладка видна.
- Ни один монитор доступности и ни один фоновый цикл не держит приложение включённым без причины.
- Сервер имеет минимальный размер, при котором всё работает.
- Изображения уменьшены, сжаты и загружаются лениво; статические файлы кэшируются.
- Старые приложения сняты с публикации, старые файлы удалены, неиспользуемые ссылки предпросмотра убраны.
- Сайты без данных и входа сделаны статическими.
- Платные API защищены входом, лимитами на пользователя и оповещениями провайдера о расходах.
Как снизить затраты в Mythex
Mythex использует один баланс кредитов и для создания, и для хостинга, поэтому экономия на хостинге оставляет больше кредитов на создание. Несколько особенностей Mythex:
- Опубликованные приложения и их базы данных засыпают при простое и просыпаются при следующем визите. База засыпает после 5 минут простоя, поэтому устранение постоянного опроса обычно даёт самый большой эффект.
- Тариф Pro платит половину тарифа Free за хостинг, базы данных, трафик, хранение файлов и песочницу предпросмотра; ИИ стоит одинаково на обоих тарифах. См. Credits.
- Вы получаете письмо до того, как низкий баланс мог бы приостановить опубликованное приложение, а приостановленные приложения сохраняют свои базы данных и файлы.
Общую картину по затратам см. в сколько стоит создать приложение и что такое веб-хостинг.
Вопросы
Почему счёт за хостинг высокий, если пользователей мало?
Обычно что-то не даёт приложению уснуть. Код, который проверяет базу данных каждые несколько секунд, монитор доступности, пингующий сайт каждую минуту, или забытый фоновый цикл могут держать сервер и базу включёнными круглосуточно, даже без посетителей.
Стоит ли спящее приложение денег?
На хостингах, которые масштабируются до нуля, спящее приложение почти ничего не тратит на вычисления; обычно вы всё равно платите за хранимые данные. В Mythex спящее опубликованное приложение не тратит ничего на вычисления, а его база данных засыпает после 5 минут простоя и оплачивается только за время, когда она была активна.
Плох ли постоянный опрос для стоимости хостинга?
Опрос каждые несколько секунд означает, что база данных никогда не простаивает и не может уснуть. Опрашивайте реже, только пока кто-то смотрит страницу, или отправляйте обновления вместо запросов.
Дешевле ли хостить статический сайт, чем веб-приложение?
Обычно да. Статический сайт — это просто файлы, которые раздаются с CDN, без сервера и базы данных, которые надо держать запущенными. Если на вашем сайте нет входа и сохранённых данных, сделать его статическим — одна из самых больших доступных экономий.