VPS хостинг для України: де розмістити сервер
Франкфурт чи Амстердам для українських користувачів, що затримка робить зі SSH і базою, як гривнева картка перетворюється в USD з ПДВ і де тримати продакшн.
Де розмістити VPS, якщо ваші користувачі в Україні
Коротка відповідь: у найближчій задокументованій європейській локації, тобто у Франкфурті або Амстердамі. Обидва міста стоять на великих точках обміну трафіком, і українські оператори мають до них прямі маршрути, тому шлях із Києва, Львова чи Дніпра туди короткий і передбачуваний. Локація в США у панелі замовлення виглядає так само, але кожен запит вашого користувача перетне океан двічі, і це відчувається без жодних інструментів.
Різниця між двома європейськими варіантами невелика, і вирішує її не карта, а ваша аудиторія. Франкфурт як локація для VPS зазвичай дає найкоротший шлях абонентам українських дротових операторів. Амстердам частіше виграє, коли значна частина ваших користувачів або партнерів сидить у Британії, Бенелюксі чи Скандинавії. Якщо половина аудиторії вже за польським кордоном, подивіться, як те саме питання виглядає для користувачів у Польщі: маршрути звідти інші, і відповідь може змінитися.
Ця стаття не про обсяги диска. Якщо вам потрібні терабайти під архіви й медіа, це окрема задача з іншою математикою, і краще почати з порівняння дискового простору на VPS, блокових та об'єктних сховищ.
Що затримка робить зі сторінкою, SSH і базою
RTT (round-trip time, час проходження пакета туди й назад) сам по собі нікого не цікавить. Має значення те, скільки разів ваш застосунок цей час платить. Один запит до API платить його один раз. Звичайна сторінка без кешу платить його багато разів: DNS, TCP-рукостискання, TLS-рукостискання, HTML, потім CSS і JavaScript, які браузер побачив лише після HTML.
Цифри нижче це орієнтир, а не вимір із цієї статті. Вони показують порядок величини, щоб ви розуміли, що саме міряти.
The data behind this chart
[
{
"label": "\u0424\u0440\u0430\u043d\u043a\u0444\u0443\u0440\u0442",
"rtt_ms": 35,
"page_20_rtt_ms": 700
},
{
"label": "\u0410\u043c\u0441\u0442\u0435\u0440\u0434\u0430\u043c",
"rtt_ms": 45,
"page_20_rtt_ms": 900
},
{
"label": "\u041d\u044c\u044e-\u0419\u043e\u0440\u043a",
"rtt_ms": 115,
"page_20_rtt_ms": 2300
},
{
"label": "\u041b\u043e\u0441-\u0410\u043d\u0434\u0436\u0435\u043b\u0435\u0441",
"rtt_ms": 180,
"page_20_rtt_ms": 3600
}
]Франкфурт з Києва зазвичай лежить у районі 35 мс, східне узбережжя США ближче до 115 мс, західне до 180 мс. Помножте це на двадцять послідовних обмінів, і сторінка на далекому сервері витрачає 3600 мс лише на дорогу проти 700 мс у європейській локації. Процесор і диск тут ні до чого: це чиста географія.
SSH відчувається інакше, бо інтерактивна сесія платить RTT за кожне натискання клавіші. При 35 мс ви цього не помічаєте. При 180 мс курсор у vim відстає від пальців, і робота перетворюється на боротьбу. Тому багато людей обирають локацію за власним комфортом в SSH, хоча користувачі сайту живуть зовсім в іншому місці.
Найдорожче помиляються з базою даних. Якщо застосунок стоїть у Європі, а PostgreSQL у США, кожен SQL-запит платить океанський RTT. Типова сторінка з проблемою N+1 робить п'ятдесят запитів, і при 115 мс це шість секунд очікування там, де локальна база дала б десяті частки секунди. Застосунок і його база мають стояти в одному місті, бажано в одній мережі.
Як зміряти затримку самостійно
Не вірте жодній таблиці, включно з тією, що вище. Перевірка займає п'ять хвилин, і зробити її маєте ви, зі свого каналу. Візьміть у провайдера тестову IP-адресу локації або його looking glass, і подивіться, що показує ping та mtr з вашої мережі.
Дивіться не на одне число, а на чотири речі. Медіану, бо середнє псує один випадковий пік. Розкид між мінімумом і максимумом, бо нестабільний канал гірший за трохи довший стабільний. Втрати пакетів на проміжних вузлах у виводі mtr, бо втрати на останньому вузлі означають проблему, а на транзитному часто лише те, що маршрутизатор не любить ICMP. І час доби: міряйте у вечірній пік, а не о третій ночі.
Окремо прогоніте перевірку з мобільного оператора та з домашнього дротового підключення. Це різні маршрути, і різниця між ними іноді більша, ніж різниця між Франкфуртом і Амстердамом. Якщо хочете міряти не пакет, а реальний запит, curl -w покаже окремо час на з'єднання, на TLS і на першу байту відповіді.
Скільки ви реально заплатите з української картки
Цінник провайдера у доларах або євро це ще не сума списання. Ваш банк конвертує гривню за власним курсом, а не за курсом НБУ, і різниця між ними це його спред. Далі можлива комісія за транскордонну операцію, а платіжна система може додати свою комісію за конвертацію, якщо валюта картки не збігається з валютою рахунку продавця.
На практиці це означає, що місячний платіж у 10 доларів обходиться дорожче, ніж 10 доларів за курсом із новин. Порахуйте власний коефіцієнт один раз: візьміть виписку, поділіть списану гривню на суму в доларах і порівняйте з офіційним курсом того дня. Це ваша реальна ціна, і вона стабільніша за будь-яку оцінку зі статті. Загальну структуру витрат на сервер розбирає окремий матеріал про те, скільки насправді коштує VPS.
Річна передоплата зменшує кількість конвертацій і кількість шансів на невдалий курс, але заморожує гроші та ускладнює переїзд, якщо локація вам не підійде. Розумний компроміс: місяць або два на тестування, і лише потім рік. Ще одна деталь: правила банків і вимоги до валютних операцій для фізичних осіб змінюються, тому ліміти на розрахунки за кордоном питайте у своєму банку, а не у форумах.
ПДВ та документи: що уточнити до оплати
Електронні послуги від нерезидента в Україні оподатковуються ПДВ, і механізм залежить від того, хто платить. Коли послугу купує фізична особа, податок нараховує і сплачує сам нерезидент, якщо він зареєстрований платником в Україні, тому ПДВ уже сидить у сумі списання. Коли послугу купує суб'єкт господарювання, обов'язок нарахувати податок може лежати на отримувачі, тобто на вас.
Ставку, пороги реєстрації та перелік послуг я тут не наводжу свідомо: ці норми змінюються, і стаття з цифрою швидко стає шкідливою. Актуальні вимоги перевіряйте на сайті Державної податкової служби або зі своїм бухгалтером до того, як оформите підписку на рік.
Якщо VPS іде у витрати ФОП, попросіть у провайдера інвойс з вашими реквізитами, а не лист «дякуємо за оплату». Перевірте це на першому ж платежі. Виправити документи за дванадцять місяців назад значно складніше, ніж домовитися про них одразу.
Продакшн і відключення світла
Сервер у Франкфурті не залежить від вашої черги відключень. Залежить ваш доступ до нього, а це різні речі, і плутати їх не варто. Тому базове правило просте: у продакшні не повинно бути жодного компонента, який стоїть у вашій квартирі чи офісі. Не «майже нічого», а нічого: ні бази, ні черги, ні єдиного примірника бекапу, ні DNS-резолвера, ні коробки, що підписує сертифікати.
Ваша частина підготовки виглядає так. Ключі SSH мають бути щонайменше на двох ваших пристроях, бо робочий ноутбук без світла це просто важка сумка. Резервний канал в інтернет через мобільного оператора потрібен саме для того вечора, коли впаде домашній провайдер. Моніторинг має писати вам у Telegram або ntfy з боку сервера, а не з вашого комп'ютера, інакше тишу від моніторингу ви сприймете як «все добре». І хоча б одна людина, крім вас, має мати можливість перезапустити сервіс.
Якщо простій справді дорогий, тримайте другу машину, і краще в іншого провайдера та в іншому місті. Як звести дві такі машини в одну приватну мережу, описано в матеріалі про те, як зв'язати два VPS у різних провайдерів. Якщо адміністрування у вас лишається побічною задачею, зважте варіанти з керованим і некерованим VPS: під час тривалого блекауту чужі руки на чергуванні коштують дешевше за втрачений тиждень.
Де можуть лежати персональні дані ваших клієнтів
Якщо серед клієнтів є резиденти ЄС, до вас застосовується GDPR (General Data Protection Regulation, загальний регламент захисту даних), і ви як контролер відповідаєте за те, де ці дані фізично лежать. Провайдер тут ваш процесор, тому питання до нього конкретні, а не філософські.
Питайте чотири речі. У якій країні стоїть сама машина і в якій країні лежать її бекапи та снапшоти, бо це часто різні країни. Чи підпишуть з вами DPA (data processing agreement, договір про обробку даних) і чи є публічний перелік субпідрядників. Чи можна зафіксувати регіон так, щоб дані не переїхали під час міграції або відновлення. Хто має технічний доступ до гіпервізора і за законами якої держави цей доступ може бути витребуваний.
Відповіді беріть у письмовому вигляді, з документа або з листа підтримки. Я тут не переказую політику жодного конкретного провайдера, бо неперевірена цитата про локацію даних це рівно той ризик, від якого ви намагаєтеся застрахуватися. І якщо у вас є українські користувачі та клієнти з ЄС одночасно, розумна схема зазвичай одна: європейська локація для всіх, з коротким шляхом до України і без окремого правового режиму на кожну групу.
FAQ
Франкфурт чи Амстердам для користувачів з України?
Обидві локації дають короткий і стабільний шлях з України, і різниця між ними менша за різницю між вашими власними провайдерами. Беріть Франкфурт як типовий вибір для української аудиторії, і Амстердам, якщо ваші користувачі або партнери сидять у Британії, Бенелюксі та Скандинавії. Замість вибору за картою прогоніте ping і mtr до тестових адрес обох локацій зі свого каналу у вечірній час.
Наскільки помітно, що VPS стоїть у США?
Дуже помітно на всьому, що робить багато послідовних обмінів. Одна картинка чи один API-запит різниці майже не покажуть. Сторінка з двома десятками залежних запитів додає приблизно два порядкових значення RTT замість одного, а інтерактивна SSH-сесія починає відставати від набору тексту. Найгірший випадок це база даних на іншому континенті, ніж застосунок: там кожен SQL-запит платить океанську затримку окремо.
Чи потрібно платити ПДВ за хостинг у нерезидента?
Електронні послуги нерезидента підпадають під український ПДВ, але хто саме його нараховує, залежить від вашого статусу. Для фізичної особи податок зазвичай уже включений у списання, якщо нерезидент зареєстрований платником в Україні. Для ФОП чи компанії обов'язок може лягти на вас як на отримувача послуги. Ставку й актуальні правила перевіряйте у Державній податковій службі або в бухгалтера, бо ці норми змінюються.
Де тримати бекапи, якщо в місті вимикають світло?
Не на єдиному диску в квартирі чи офісі. Тримайте копію в іншій локації, ніж продакшн, і бажано в іншого провайдера, щоб одна проблема не забрала обидві копії. Перевіряйте не наявність файлів, а відновлення: раз на місяць підніміть базу з бекапу на тестовій машині і подивіться, чи вона справді запускається. Бекап, який ніхто не відновлював, це припущення, а не резервна копія.