У меня все на мази =) Все данные в облаке яндекса, сервер чисто как прокладка выступает, если он даже полностью грохнется, восстановить данные не проблема, точнее мне даже восстанавливать ничего не нужно будет, API яндекса все само восстановить, единственное в чем затык будет это доменам надо будет новый ip сервера прописывать, и ждать 24 часа. Ну а если бы хранилось все на нем, то да, такие облака брать не рекомендовал бы даже врагу =)
https://firstvds.ru/
Тариф VDS Storage
Локация - Москва, процессор E5-2630v (до 3,1 ГГц), 2 ядра, 4 Гб RAM, HDD от 300 Гб до 5000 Гб:
HDD 500 Гб = 1319 руб/мес
HDD 750 Гб = 1544 руб/мес
HDD 1000 Гб = 1769 руб/мес
Storage по идее не подойдет, из за того что статику надо будет с него отдавать, да и нода будет запущена для ресайза фоток. На сколько помню раньше использование Storage было сильно ограничено, типо предоставляли API по дерганью файлов в вебе, но вместе с этим были ограничения, а основные действия можно было лишь по FTP производить. Мне же домен надо прицепить еще до кучи, Nginx запустить, ноду поставить и еще кучу всяких настроек выполнить на сервере.
Трафик основной откуда идёт?
По ip определять страну, по языку в браузере и редиректить юзера на "его" версию. И не надо менять структуру сайта, потому что есть огромный риск что-то сломать от чего сайт может никогда не оправится.
У него проблема в другом, ему пишут что именно на морде на UA отображать при первом заходе, а у него там русская версия сайта. Поэтому нужно в nginx получить язык браузера
map $http_accept_language $locale_country { default ""; "~^ua" "1"; }
Там же создать куку с тем что в браузере язык стоит Украинский
А в самом движке при первом заходе юзера чекнуть наличие этой куки и сразу отдать нужную версию прямо на морде сайта, без папок и прочего, и делать это только для морды, а все остальные разделы отставить как есть. Не думаю что из за такого будут какие то санкции от поисковых систем, так как тот же яндекс бот уж точно не будет заходить на сайт с UA языком, да и гугл тоже.
Ну а с точки зрения марали это трашачок полный, у кого то на верхах кукуха совсем съехала.
Оооооочень вряд-ли. 4 ядра, 6 оперативы и 1Тб диска за 2К - чёт сомнения гложат
Да всё плюс минус, можно и с 2 ядрами попробовать и с 4GB оперативы и с HDD в 500-750. Просто нужны варианты...
По трафику точно не скажу, но TB 1-2 в месяц думаю набежит, по бюджету присматриваюсь, можно на HDD диске, но дороже 2к рассматривать не буду, так как смысл переезда теряется. Можно так же и с объемом поиграться будет в сторону его уменьшения, так же поиграться можно и с ядрами, оперативкой.
Mongo путь в никуда, лучше MariaDB, либо Postgre
Postgress пробовал, переносил коллекцию большую в нее, ничего хорошего не вышло, к тому же структура и управление ей совсем не понравилась.
В MongoDB все устраивает и только вот этот косяк с сортировкой при поиске документов через $text очень сильно огорчает, это единственно от чего меня воротит, но уверен в том что либо я делаю что то не так, либо можно делать как то по другому, к примеру использовать в связке монго с чем то еще только в подобных запросах.
Может я индекс как то не так создаю, сейчас для такого поля создан индекс вот так
Collection.index({ subscribe: 'text', "title.ru": 'text', "title.en": "text" }, { default_language: "russian" })
А вот для сортировки создать индекс не могу
{ score: { $meta: "textScore" } }
Ведь score в документе нет и он генерируется самой mongo, возможно как то не правильно я все это добро делаю.
Я уже пытался как то создавать отдельную коллекцию только с идентификаторами документов первой коллекции и текстовым полем первой коллекции, тож ничего дельного не вышло, да и не могло выйти из за этой сортировки.
С сортировкой по полям в документе всё работает быстро, для них индексы созданы правильные.
Ну а что использовать вместо нее? С таким же удобным хранением данных.
Использовать из в связке с mongodb?
1. Вы умеете читать explain mongo?2. Сколько строк найдено по индексу в обоих случаях?3. Может делать запрос не через агрегацию, если там ее нет? Хотя вряд в этом дело.
1. Не особо
2. Explain лжет, это один и тот же запрос и в обоих запросах под 200к документов, то что он выводит при первом запросе информацию о всего 10 документах, это не правда. Если вы конечно об этом.
3. Даже если через find, разницы тут не будет к сожалению.