Руководства

Как снизить затраты на хостинг вашего приложения

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

У большинства небольших приложений нет проблемы с трафиком. У них есть проблема «что-то всегда включено». Это руководство показывает, как её найти и исправить, с промптами, которые можно дать ИИ-конструктору приложений.

За что вы на самом деле платите

Счёт за хостинг небольших приложений складывается из нескольких вещей. Знание того, какая из них самая большая, подскажет, где искать.

СтатьяЧто её определяетОбычное решение
Вычисления (сервер)Размер машины и сколько часов она работаетДать ей уснуть; подобрать размер
База данныхЕё размер и сколько времени она активнаПрекратить постоянные запросы, чтобы она могла уснуть
ТрафикСколько данных скачивают посетителиСжать изображения, кэшировать файлы
ХранилищеФайлы и данные, которые вы хранитеУдалять старые загрузки, логи и резервные копии, которые не нужны
Сторонние 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, без сервера и базы данных, которые надо держать запущенными. Если на вашем сайте нет входа и сохранённых данных, сделать его статическим — одна из самых больших доступных экономий.

Mythex · Pricing · Создавайте что угодно с ИИ · Шаблоны сайтов и приложений · Сравнения Mythex · Глоссарий по созданию приложений с ИИ · Бесплатные инструменты для создания приложений с ИИ · English

English አማርኛ العربية Български বাংলা Bosanski Català Čeština Dansk Deutsch Ελληνικά Español Español (España) Eesti فارسی Suomi Français Français (Canada) ગુજરાતી हिन्दी Hrvatski Magyar Հայերեն Bahasa Indonesia Íslenska Italiano 日本語 ქართული Қазақ тілі ಕನ್ನಡ 한국어 Lietuvių Latviešu Македонски മലയാളം Монгол मराठी Bahasa Melayu မြန်မာ Norsk bokmål Nederlands ਪੰਜਾਬੀ Polski Português (Brasil) Português (Portugal) Română Slovenčina Slovenščina Soomaali Shqip Srpski Svenska Kiswahili தமிழ் తెలుగు ไทย Tagalog Türkçe Українська اردو Tiếng Việt 简体中文 繁體中文(香港) 繁體中文(台灣)