Экономия на спичках: считаем стоимость хостинга пет-проектов на kubernetes

Я люблю простые и понятные решения. Для хостинга всех своих проектов я использую Heroku. Он достаточно дешев, лёгок в настройке и подымается буквально за минуту. Советую всем.

Сейчас у меня там крутится несколько проектов, два из которых работают постоянно — это adopt.com.ua где вы можете найти себе котика или пёсика, и blogigram с помощью которого был опубликован этот пост. Эти проекты кушают 46$ в месяц, по 23$ на брата. Остальные живут на free tier и не едят ничего. За 23$ я получаю:

  • апп сервер с 1 vCPU и 512 MiB RAM 7$
  • такой же воркер для Sidekiq бэкграунд джоб 7$
  • managed постгрес с лимитом в 10М строк 9$
  • редис на 25 MiB RAM 0$
  • балансер и HTTPS сертификаты 0$

Not great not terrible. Сейчас я делаю еще один проект а это значит что будет +23$, то есть 69$ в сумме. За эти деньги уже можно взять дедик на Scaleway. Но просто дедик неинтересно: он может упасть, за ним надо смотреть и тд, поэтому я подумал о том чтобы поднять кубер и за счет более эффективной утилизации ресурсов большой машины получить экономию. Это упражнение мне нужно еще и для коммерческих проектов, где прайс за инфру побольше полтинника.

Требования:

  • постгрес я не хочу тащить в кубер, потому что не хочу возиться с бэкапами и апдейтами. Провайдер должен предоставлять managed бд. Её можно будет пошарить между приложениями и за счет этого сэкономить
  • то же для редиса
  • нужно разместить 3 приложения, каждое из которых содержит два контейнера по 512 MiB памяти. Итого нужно минимум 3 GiB доступных под приложения. Не забывайте, что кубер тащит свои запчасти которые едят память, плюс всякие хелмы, аргоцд и тд и тд.
  • https сделаем с помощью cert-manager, но провайдер должен давать балансер который мы переиспользуем для всех приложений

Под вышеозаченные требования полностью подходят: AWS, GCP, Azure, Digital Ocean и почти подходит Scaleway. Hetzner и другие VPS провайдеры не подходят, потому что они не предоставляют ни k8s ни postgres а дают только голые виртуалки. Прикинем цены (с редисом/без редиса):

GCP — 92$/57$: 22$ балансер, 11$ pg, 24$ кубер 1 vCPU/3.75 GiB RAM, 35$ редис.

AWS — 131$/119$: 17$ балансер, 13$ pg, 73$+16$ кубер EKS 1 vCPU/4GiB RAM, 12$ редис. Такое конечно брать не будем, +73$ за EKS не нужен.

Azure — 96$/80$: 18$ балансер, 26$ pg, 36$ кубер 1 vCPU/4GiB RAM, 16$ редис.

Digital Ocean — 80$/65$: 10$ балансер, 15$ pg, 40$ кубер 4 vCPU/4GiB RAM, 15$ редис. DO имеет ограниченный набор типов нод, придется брать 4 ноды, что хорошо.

Scaleway — -$/41$: 12$ балансер, 12$ pg, 17$ кубер 3 vCPU/4GiB RAM, редиса нет.

Я брал самые дешевые ноды, да и одна нода в пуле это просто смешно, производительность каждого кластера будет отличаться, плюс добавятся деньги за NAT/Public IP и другую дичь. Очевидно что экономия по сравнению с Heroku далеко неочевидна. Привлекательнее всего выглядят DO и Scaleway, ну оно и понятно, это далеко не космолеты из большой тройки, а последний уже многие года уверенно держит марку самого дешевого провайдера.

Так же не учитываю собственные расходы на няньченье кубера, потому что за 5 минут ничего не сделаешь, если нет обширного опыта и готовых подходов. Я в кубере немного разбираюсь, но расчитываю минимум денек-другой потратить на настройку нормального CI/CD и тд, чтобы можно было новые приложения за 5 сек потом деплоить. А это тоже бабки, хотя и инвестиция в себя.

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

Как же так получилось что Рожок вообще задумался про кубы? Ну, друзья, — кубер — это уже настоящее девопса. Отрицать это значит ссать против ветра, смысла нет никакого. Сейчас почти всё на кубере, а через 5 лет точно будет всё.

P.S.: Адепты деплоя через git pull на VPSку плачут кровавыми слезами. За 70$ можно взять 4 vCPU/16 GiB RAM на Scaleway или еще более мощный сервант у обычных VPS-провайдеров который будет просто летать.


Сподобалось? Долучайтеся до мого телеграм каналу: https://t.me/full_of_hatred