Статьи  : 

Как сэкономить на хостинге

13 января 2016, 00:00

Постановка задачи



Наша Лаборатория поддерживает ряд интернет-проектов, которые мы размещаем на собственном виртуальном сервере. До 2015 года мы использовали зарубежный хостинг. Однако за 2015 год доллар и евро значительно подорожали, поэтому, если раньше было выгоднее держать хостинг за границей (при сравнимым параметрах), то после девальвации ситуация стала прямо противоположной. Поэтому нашей задачей в конце года стало найти подходящего хостера, куда можно было бы перенести наш сервер. В данной статье мы затронем основные моменты, на которые нужно обратить внимание, чтобы получить максимальную экономию на хостинге. Технические детали переноса сайтов будут обсуждаться в отдельной статье.

Теория



Чтобы найти подходящего нам хостера, проведем "отсев" по следующим критериям:

1. Оборудование хостера располагается на российской площадке.

Это самый главный момент: мы отбраковываем те компании, которые являются российским юрлицом, но держат сервера в Голландии, Германии, Ирландии, США и так далее (в итоге у них получаются такие же расценки, что и просто зарубежных хостеров). Российские хостеры имеют заметно более дешевые тарифы при схожих характеристиках, так что здесь мы хорошо экономим.

Еще два плюса, которые нужно обозначить в этом пункте:

а) российская площадка дает малое время отклика для российских же пользователей. Если на вашем проекте основная аудитория именно такая (у нас так), то это – наиболее подходящий вариант!

б) соблюдение требований 152 ФЗ "О персональных данных", когда эти данные нужно хранить в России. Хотя пока особо никого не наказывают, но лучше всё сделать заранее, в спокойной обстановке.

2. Виртуальный сервер с nginx

Высоконагруженные проекты имеют в своей основе веб-сервер nginx. Учтем этот опыт, и также будем искать хостинг с таким веб-сервером (вместо более привычного apache).

За счет чего здесь получается сэкономить? Трюк в том, что nginx дает меньшую нагрузку на сервер. Поэтому мы вполне можем уложиться в более дешевый тарифный план при той же посещаемости сайтов.

3. Хранение статики на отдельном сервисе

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

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

Практика



После того, как мы определились с критериями выбора, перейдем к конкретным цифрам. С первыми двумя пунктами все достаточно ясно, поэтому остается разобраться с третьим пунктом (отделением статики). Для этого нам потребуется проанализировать логи сайтов относительно того, сколько и каких данных запрашивается. Мы написали небольшой скрипт, который распарсиваем эти логи и складывает статистику в таблицу MySQL. Структура ее проста:

CREATE TABLE IF NOT EXISTS `static_traffic` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `domain` varchar(100) NOT NULL,
  `path` varchar(200) NOT NULL,
  `size` int(11) NOT NULL,
  PRIMARY KEY (`id`),
  KEY `path` (`path`)
) ENGINE=MyISAM  DEFAULT CHARSET=utf8;


После загрузки данных за один месяц, можно просмотреть итоговую статистику. Например, траффик для домена livescience.ru:

SELECT SUM(size)  FROM `static_traffic`
WHERE `domain` LIKE 'livescience.ru'


Получаем 1331040350 = 1.24 Гб. Аналогично вычисляем для всех других проектов. В сумме имеем около 15 Гб в месяц. Объем хранимых данных – примерно 6 Гб.

В качестве хостера мы выбрали netangels.ru. Согласно его расценкам на услугу "облачное хранилище" (то есть как раз для статичных данных), оплата за траффик будет 12 р/месяц, за хранение 18 р/месяц. Для сравнения – каждые дополнительные 5 Гб для сервера стоят примерно 90 р, так что выгода очевидна. Причем добавление диска идет скачкообразно на 5 Гб: если мы храним 6 Гб, то нужно будет доплачивать за десять, а четыре из них будут пустовать – это явно невыгодно. В облачном хранилище всё экономно: платим только за то, что потребляем.

В качестве тарифа был выбран Tiny (2 CPU, 1024 Mb RAM), что с запасом хватает для наших целей.

Выводы



Как видно из данной статьи, грамотный выбор хостера, продуманная настройка веб-сервера и архитектура проектов позволяет экономить на хостинге. Для небольших проектов это могут быть всего 50-100 р/месяц, но даже за год из них набегает 500-1000 р, что уже немало (такой суммы хватает, например, на продление домена). Для крупных проектов выгода может быть еще более заметной (тысячи и десятки тысяч рублей).

P.S.



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

Оптимизация opencart 1.5
Пример ускорения работы с базой

Обновление (октябрь 2016 г.): к сожалению, хостер решил закрыть услугу "облачного хранилища" с 2017 года, Тем не менее, наши рассуждения относительно выделения статичного хостинга продолжают оставаться верными.
Если вы хотите проконсультироваться, можно ли сэкономить на вашем хостинге – пожалуйста, свяжитесь с нами через форму обратной связи.