Перехід із Serverless-рішень на власні сервери — це природний етап розвитку проєкту, коли обмеження платформи починають заважати зростанню або бюджету. Cloudflare Workers підкуповує простотою старту, але в міру ускладнення логіки розробники стикаються з жорсткими лімітами на використання CPU (50ms на безкоштовному та до 30s на платному тарифі), відсутністю підтримки багатьох NPM-пакетів та специфічним API. У цій статті ми розберемо, як виконати migrate from cloudflare workers на VPS, зберігши продуктивність та надійність.
Причини migrate from cloudflare workers на виділені ресурси
Основним драйвером міграції зазвичай виступає економічна доцільність та технічні обмеження середовища виконання V8 Isolates. На відміну від стандартних віртуальних машин, Workers працюють в обмеженому оточенні, де немає доступу до файлової системи та повноцінного сокет-з'єднання без додаткових прошарків.
Ліміти CPU та пам'яті
У Cloudflare Workers час виконання коду (CPU time) жорстко обмежений. Якщо ваш скрипт виконує складні математичні обчислення, обробку зображень або важку криптографію, ви швидко впретеся в ліміт 50ms. На VPS ви отримуєте повний доступ к ресурсам процесора (наприклад, 2-4 ядра по 3.0+ GHz) без штучних переривань. Це особливо критично, якщо ви плануєте використовувати сервер для завдань машинного навчання, про що докладніше можна почитати в статті Bare-metal vs VPS для ML inference на CPU: що вигідніше.
Вартість при високому трафіку
Cloudflare стягує плату за кількість запитів. При досягненні мільйонів запитів на добу рахунки починають зростати експоненціально. Оренда VPS із фіксованою ціною ($10–$20 на місяць) дозволяє обробляти практично необмежений трафік, обмежений лише пропускною здатністю мережі (зазвичай 1 Gbps) та потужністю заліза. Подібна ситуація часто зустрічається і при використанні інших PaaS-рішень, тому багато хто шукає способи, як переїхати з Railway на VPS у 2026.
Вибір стека: Node.js або Bun як workers alternative
Коли ви шукаєте відповідну workers alternative, вибір середовища виконання (runtime) стає ключовим моментом. Cloudflare Workers використовують підмножину API, близьку до браузерної (Fetch API), тому ваш код не запуститься "як є" у стандартному Node.js без адаптації.
Bun — максимально близький досвід до Workers
Bun — це сучасний runtime, який з коробки підтримує Fetch API, Request та Response. Це робить його ідеальним кандидатом для міграції. Простий приклад сервера на Bun, який замінює логіку Worker:
Bun.serve({
port: 3000,
async fetch(request) {
const url = new URL(request.url);
if (url.pathname === "/api") {
return new Response(JSON.stringify({ status: "ok" }), {
headers: { "Content-Type": "application/json" },
});
}
return new Response("Not Found", { status: 404 });
},
});
Node.js та Fastify/Hono
Якщо вам потрібна максимальна стабільність та величезна екосистема бібліотек, Node.js залишається стандартом. Щоб мінімізувати зміни в коді, рекомендується використовувати фреймворк Hono. Він спочатку розроблявся для Edge-середовищ (Workers), але чудово працює на Node.js через адаптери. Це значно спрощує workers migration, оскільки роутинг та middleware залишаються ідентичними.
Шукаєте надійний сервер для ваших проєктів?
VPS від $10/міс та виділені сервери від $9/міс з NVMe, DDoS-захистом та підтримкою 24/7.
Дивитися пропозиції →Заміна інфраструктури Cloudflare (KV, D1, R2) на VPS
Найскладніша частина переїзду — це заміна пропрієтарних сервісів зберігання даних Cloudflare на їхні open-source еквіваленти. На VPS ви самі керуєте даними, що дає більше гнучкості, але потребує налаштування бекапів.
Альтернатива Workers KV: Redis або Dragonfly
Workers KV — це сховище "ключ-значення" з підсумковою узгодженістю (eventual consistency). На VPS найкращим вибором буде Redis. Він забезпечує затримку менше 1 мс і підтримує складні типи даних (списки, множини), чого немає в KV.
- Встановлення:
sudo apt install redis-server - Обсяг пам'яті: Залежить від вашого тарифу VPS (від 2 GB RAM).
- Продуктивність: До 100,000+ операцій на секунду на одному ядрі.
Заміна D1 на PostgreSQL або SQLite
Cloudflare D1 заснований на SQLite. Якщо ваш застосунок невеликий, ви можете продовжувати використовувати SQLite локально на VPS. Однак для високонавантажених систем краще перейти на PostgreSQL. Це дасть вам повноцінні транзакції, віконні функції та високу надійність. Процес міграції баз даних часто збігається з тим, що описаний у гайді, як переїхати з Fly.io на VPS.
R2 → MinIO або S3-сумісне сховище
Cloudflare R2 — це S3 без плати за вихідний трафік (egress). На VPS ви можете розгорнути MinIO. Це self-hosted об'єктне сховище, яке повністю сумісне з AWS S3 API. Якщо ваш VPS має NVMe-диски обсягом 50-100 GB, ви отримаєте колосальний приріст швидкості читання/запису порівняно з віддаленою хмарою.
Шукаєте сервер, який просто працює?
Valebyte VPS — NVMe, підтримка 24/7, розгортання за 60 секунд.
Покроковий план workers migration: від коду до деплою
Процес workers migration вимагає системного підходу, щоб уникнути простоїв (downtime). Ми рекомендуємо використовувати Docker для пакування застосунку, що зробить його переносним та незалежним від оточення сервера.
- Адаптація коду: Замініть глобальні об'єкти Cloudflare (наприклад,
env.MY_KV) на змінні оточення або конфігураційні файли. Використовуйте бібліотекуdotenvдля Node.js. - Створення Dockerfile: Напишіть конфігурацію для збірки образу. Приклад для Bun:
FROM oven/bun:latest WORKDIR /app COPY package.json . COPY bun.lockb . RUN bun install COPY . . EXPOSE 3000 CMD ["bun", "run", "index.ts"] - Налаштування бази даних: Розгорніть PostgreSQL або Redis у Docker-контейнерах або встановіть їх безпосередньо в ОС.
- Перенесення даних: Експортуйте дані з KV через Wrangler CLI та імпортуйте їх у Redis. Для D1 використовуйте дамп SQL.
Багато розробників, які вирішили migrate from cloudflare workers, зазначають, що використання Docker спрощує життя не тільки при деплої, а й при локальній розробці. Аналогічні кроки вживаються, коли стоїть завдання, як переїхати з Vercel/Netlify на VPS.
Налаштування мережевого рівня при переході cloudflare to vps
При використанні Cloudflare Workers ви не дбали про SSL-сертифікати, захист від DDoS та балансування навантаження. При переході cloudflare to vps ці завдання лягають на ваші плечі (або на налаштування Nginx).
Nginx як Reverse Proxy
Nginx прийматиме вхідні запити та перенаправлятиме їх на ваш застосунок (Node.js/Bun), що працює на локальному порту. Це стандартна практика для забезпечення безпеки та можливості горизонтального масштабування.
server {
listen 80;
server_name api.yourdomain.com;
location / {
proxy_pass http://localhost:3000;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
}
}
SSL та безпека
Для отримання безкоштовних SSL-сертифікатів використовуйте Certbot (Let's Encrypt). Також рекомендується залишити Cloudflare у режимі "Proxy" (помаранчева хмара), щоб використовувати їхній захист від DDoS та CDN, але спрямувати трафік на IP вашого нового VPS. Таким чином, ви зберігаєте переваги глобальної мережі Cloudflare, але позбуваєтеся обмежень Workers.
Порівняння вартості та продуктивності
Нижче наведено таблицю порівняння характеристик та вартості при використанні Cloudflare Workers та типового VPS від Valebyte. Дані ґрунтуються на середніх показниках для проєктів із навантаженням 5-10 млн запитів на місяць.
| Характеристика | Cloudflare Workers (Paid) | VPS (Standard Plan) | Перевага |
|---|---|---|---|
| Ліміт часу CPU | 30 секунд | Без обмежень | VPS |
| Оперативна пам'ять | 128 MB | 2 GB - 16 GB | VPS |
| Вартість (10M req) | ~$5.00 + витрати на KV/D1 | $5.00 - $12.00 (фікс) | VPS (при зростанні) |
| Зберігання даних | KV / D1 (платні ліміти) | SSD/NVMe (включено) | VPS |
| Cold Starts | 0-50ms | 0ms (завжди запущено) | VPS |
Як видно з таблиці, при порівнянній базовій ціні VPS пропонує на порядки більше ресурсів. Це особливо важливо для застосунків, що потребують постійного з'єднання (WebSockets), які у Workers коштують значно дорожче або мають обмеження щодо часу життя сесії.
Шукаєте сервер, який просто працює?
Valebyte VPS — NVMe, підтримка 24/7, розгортання за 60 секунд.
Моніторинг та логування після міграції
У Cloudflare Workers логи доступні через панель керування або wrangler tail. На VPS вам потрібно буде налаштувати власну систему моніторингу. Для початку достатньо PM2 для керування процесами Node.js та перегляду логів у реальному часі.
- PM2: Автоматично перезапускає застосунок при збоях та дозволяє дивитися логи командою
pm2 logs. - Grafana + Prometheus: Для глибокого моніторингу навантаження на CPU, RAM та мережевий трафік.
- Uptime Kuma: Простий self-hosted інструмент для перевірки доступності вашого API.
Не забувайте, що володіння інфраструктурою дає вам повний контроль над даними. Ви можете зберігати логи роками для аудиту безпеки, не переплачуючи за обсяг сховища у хмарі. Якщо ви раніше використовували Heroku, процес налаштування моніторингу на VPS буде вам знайомий, докладніше про це у статті Як переїхати з Heroku на VPS у 2026: покроковий гід.
Latency та георозподіл
Одним із головних аргументів за Workers є "Edge" — виконання коду максимально близько до користувача. При переїзді на одиночний VPS затримка (latency) для користувачів з іншого кінця світу може збільшитися. Однак для більшості застосунків затримка у 100-150 мс не є критичною, тоді як швидкість роботи бази даних на тому ж сервері (локально) значно вища, ніж звернення до віддаленого KV або D1 з Edge-функції.
Якщо ж низький latency критичний, ви можете орендувати два дешевих VPS у різних регіонах (наприклад, Європа та США) і налаштувати GeoDNS через той самий Cloudflare. Це все одно буде дешевше та потужніше, ніж використання Enterprise-планів Serverless-платформ.
Висновки
Міграція з Cloudflare Workers на VPS виправдана, якщо вашому застосунку потрібно більше 50 мс CPU-часу, доступ до файлової системи або передбачувана вартість при великих обсягах трафіку. Оптимальним вибором для перенесення коду буде середовище Bun або Node.js з фреймворком Hono, а як базу даних — зв'язка PostgreSQL та Redis на сервері з NVMe-диском.
Готові обрати сервер?
VPS та виділені сервери у 72+ країнах з миттєвою активацією та повним root-доступом.
Почати зараз →