Как я уже рассказывал, у меня есть домашний сервер, на который в том числе собирается телеметрия с дачи. Соответственно, необходимо было организовать проброс данных между двумя площадками, на которых не было публичных адресов. Со стороны дачи находится сотовый модем под Теле2, поэтому получение публичного IP там даже не рассматривалось.
Поначалу была мысль взять публичный IP дома, денег это стоило не заоблачных. Но такое решение мгновенно означало, что все вопросы безопасности данного соединения достанутся мне лично. Поэтому данное решение было отложено «на закуску» (как позже выяснилось, абсолютно правильно).
Первым вопросом стал выбор протокола. Рассматривалось два варианта – голый MQTT и OpenVPN, внутри которого можно было бы организовать все что угодно.
Перебор различных P2P-VPN решений типа Neorouter показал их нестабильность. Подключиться, поиграть и погасить еще можно, но вот оставлять на ночь уже не получалось. Соединение разваливалось, не восстанавливалось, клиенты глючили. Таким образом я понял, что без промежуточного сервера обойтись не получится.
Еще одним вариантом стало использование бесплатного тарифа CloudMQTT, с которым я прожил около года. Для телеметрии «без претензий» система работала вполне пристойно, но по мере роста популярности ресурса начал расти downtime.
Примечание. Судя по всему, тарифный план Cute Cat у них закрылся, "халява кончилась".
Попытки работы с публичным брокером mosquitto.org закончились достаточно быстро. Вопросы приватности данных меня не пугали (ну кому интересна температура в неизвестно каком доме), с безопасностью тоже было терпимо (на этом плече управления нет). Но загрузка там нещадная, и с учетом публичности любые попытки отладки обмена с wildcard приведут только к захлебыванию клиента посылками.
Следующим шагом стал перебор коммерческих VPN-серверов. Окончился он ничем: выделять даже несколько сот рублей каждый месяц на минимальный трафик было неразумно.
Таким образом стало понятно, что самым простым решением была бы организация собственного облачного сервера.
В идеале мне было бы даже достаточно не полного хостинга, а развертывание 1-2 docker -контейнеров, но к сожалению, пока такие услуги еще на рынке (включая мировой) практически не развиты. Так что мне остались только различные варианты VPS (virtual private server ). Мне была необходима площадка без каких либо CMS , с консольным доступом через web или ssh , с более-менее общепринятой операционной системой, с публичным IP (не обязательно статическим, dynDNS вполне приемлем), по минимальной доступной стоимости. Я готов был выделять на эту задачу порядка 200 рублей в месяц.
Начал я, конечно, с грандов типа Amazon, но это оказался излишне тяжелый вариант. Плюс, иметь хостинг на противоположной стороне земного шара мне не очень хотелось (был прецедент разруливания проблемы по работе, когда на волне войны с Телеграмом РКН рубанул тайваньский ресурс, хостящийся в Штатах и управляемый админами из Индии %); вот тут-то я и огреб проблем с часовыми поясами).
После этого в руки была взята таблица сравнений российских VPS и начался ее процесс сличения с фактическими тарифами на сайтах. Отказ от одного варианта, второго, третьего… Посмотрев на третью строку, у меня возникла мысль, что «опять где-то засада». Полез на сайт – нет, действительно, вроде есть такой вариант. Заказываем триальный доступ, за 5 минут готов аккаунт и консоль к серверу. Еще через 10 минут мне стало понятно, что бОльшего мне не потребуется еще очень долго. Это был #timeweb с тарифом EasyOne.
Итак, что можно получить за сумасшедшие деньги – 45 рублей в месяц (на момент написания статьи).
1. Один сервер, один процессор 2.4 Ггц, 0.5 Гб памяти, 5 Гб SSD .
2. Ограничение на входящий и исходящий трафик по 5 мегабит/с.
3. Статический адрес, IPv 4 и IPv 6, плюс «сложное» DNS -имя.
4. Есть доступ через веб-консоль (т.е. можно не беспокоиться за «вскрытие» SSH -входа, если его просто нет).
5. Debian , Ubuntu , еще ряд ОС.
6. По умолчанию стоит включенный UFW .
7. Нет резервирования, апгрейдов и усиленной техподдержки.
8. Закрыты 6 исходящих портов.
Сейчас здесь работает приватный MQTT -брокер. Совсем приватный. Через некоторое время подниму OpenVPN -сервер. Всё, мне больше в этой жизни ничего не надо. Я всё нашел.
В качестве небольшого дополнения. Привожу скриншоты Universal Firewall. Если вы что-то компьютерное выставляете «на улицу» - будьте готовы к тому, что пионЭры будут тыкать палкой ваш сервер. Очень часто. Если найдут какую-то незакрытую дырку – расковыряют очень быстро. Таким образом, неправильный выбор варианта размещения своего софта может автоматизировать процесс получения собственного геморроя до неимоверных величин.
Если вы хотите так же, как и я, не беспокоиться о работе хостинга, вот вам ссылка, в которой есть и денежный бонус на счет при регистрации.