У меня есть VPS-сервер, на котором размещен сервер с очень низким трафиком для приложения iPhone / Android. Вероятно, обрабатывает максимум 300 очень маленьких запросов JSON в день (максимум килобайт текста на запрос), и сервер отправляет максимум около 50 писем. Эти цифры, вероятно, будут расти, но не существенно и постепенно. Первоначально причиной выбора VPS была не емкость, а соображения гибкости и надежности. Очень важно, чтобы электронные письма отправлялись немедленно, поэтому мы не хотели полагаться на хостинг-провайдера, который может задерживать и т. Д. Кроме того, мы хотели гибкости для запуска нестандартных приложений на сервере, например Spatialite (вариант Sqlite ), чтобы помочь с запросами на основе местоположения.
Итак, что касается моего вопроса ... Я собираюсь настроить очень похожий сервер для другого приложения. Учитывая, что я использую часть процессора (в настоящее время у меня самый маленький Linode, 512 МБ ОЗУ) и пропускную способность или текущий VPS, это все еще лучший способ? Я думал о снижении спецификации, но на мой (возможно, наивный) разум даже 128 МБ кажется излишним, хотя в этих пакетах, похоже, есть дисковое пространство, которое, возможно, слишком мало для наших нужд. Кроме того, я полагаю, что как только вы снизитесь до определенного уровня затрат, скажем, 7,50 долларов США / 5 фунтов стерлингов в месяц, у провайдера будет очень мало возможностей для снижения цен, поскольку с точки зрения администратора это может не окупить их. Я понимаю, что может не быть рынка для VPS с "очень низкой" емкостью. Можно ли исключить виртуальный хостинг?
Будьте осторожны с очень дешевыми виртуальными машинами - вы обнаружите, что разделяете хост со многими другими виртуальными машинами, что делает конкуренцию за процессорное время и пропускную способность ввода-вывода как выше, так и менее предсказуемой.
Виртуальная машина, имеющая как можно меньше оперативной памяти, не является хорошей идеей, потому что, если ваша оперативная память вообще потребуется (во время всплесков активности в приложении), вы будете менять местами. Это будет затруднено на перегруженном хосте, поскольку дополнительные операции ввода-вывода из-за перемещения страниц между ОЗУ и диском будут конкурировать с операциями ввода-вывода со всех других виртуальных машин. Чтобы убедиться, что вы знаете, какой у вас минимальный объем оперативной памяти, необходимый для эффективной работы, а не объем оперативной памяти, необходимый в режиме ожидания, протестируйте приложение на виртуальных машинах на локальном компьютере, варьируя размер оперативной памяти и проверяя приложение под давлением (т. большое количество пользователей решают что-то сделать в одну и ту же минуту). Запустите эти виртуальные машины с медленного накопителя (например, дешевой USB-флешки) с отключенным дисковым кешем хоста, таким образом, момент, когда ограничения ОЗУ станут проблемой, будет более очевиден в результатах тестирования.
Если ваше текущее приложение не использует большую часть ресурсов, доступных для вашей виртуальной машины в Linode, вы можете запустить оба приложения на одной виртуальной машине (просто назначив дополнительный IP-адрес, если он вам нужен для HTTPS для браузеров, которые не поддерживают SNI) если, конечно, одно или оба приложения не запущены для клиента, у которого есть причина не желать совместно использовать такую машину.
Также, в зависимости от вашего интернет-провайдера и требований к пропускной способности, вы можете рассмотреть вариант размещения приложения вне домашнего подключения. Когда я перехожу на линию FTTC через месяц или два, я планирую переместить несколько мелочей «в дом» (у меня уже есть небольшой сервер, работающий круглосуточно, без выходных, поэтому дополнительные требования к мощности спорны). Конечно, вам нужен надежный интернет-провайдер, который предоставляет по крайней мере один статический IP-адрес и разрешает запускать серверы вне жилых линий, но если требования приложения очень low, даже базовой линии ADSL2 со скоростью исходящего потока 448 кбит может быть достаточно, а дополнительная задержка от 5 до 40 мс (в зависимости от качества линии и настройки обратной связи ISP) вряд ли будет иметь значение.
Сказав все, что есть много хосты, предлагающие дешевые маломощные виртуальные машины, многие из которых будут в рамках указанного вами бюджета. Сканируйте форумы предложений таких мест, как WHT или такие сайты, как LowEndBox но убедитесь, что вы проверили любого поставщика перед регистрацией, будьте осторожны с вариантами ежегодной оплаты (безумно дешевый хост, которого не было здесь несколько месяцев назад, вероятно, не появится через несколько месяцев), и если предложенное решение виртуализации включает в себя «наращиваемую оперативную память», будьте вдвойне уверены (или уверены на четверых…), что вашему приложению не требуется ничего, кроме фиксированного / гарантированного выделения. Также имейте в виду, что вы вряд ли увидите уровень функций и поддержки, которые вы получаете от Linode (в последнее время я не пользовался их услугами, но когда я сделал это пару лет назад, я был весьма впечатлен).