pg_dump та pg_restore для баз даних до 100 ГБ, або логічну реплікацію для мінімізації простою (downtime), що дозволяє знизити щомісячні витрати на інфраструктуру в 5-8 разів при порівнянній продуктивності NVMe-дисків та виділених ядер CPU.
Чому варто migrate heroku postgres на VPS саме зараз?
Heroku довгий час залишався еталоном зручності для розробників, проте жорсткі ліміти на кількість з'єднань, відсутність доступу до файлової системи та висока вартість додаткових ресурсів роблять heroku pg migration логічним кроком для проєкту, що росте. Перехід на власну інфраструктуру або використання VPS з автоматизованим управлінням СУБД дає повний контроль над конфігурацією postgresql.conf і дозволяє впроваджувати розширення, які недоступні в закритій екосистемі Heroku.
Економічна ефективність та продуктивність
Вартість Heroku Postgres на тарифах Standard та Premium починається від $50 та $200 на місяць відповідно. За ці гроші ви отримуєте обмежені ресурси. Для порівняння, сучасний VPS на базі процесорів із частотою 3.4+ ГГц та NVMe-накопичувачами забезпечує у 2-3 рази більше IOPS (операцій введення-виведення на секунду), що критично для високонавантажених баз даних. Детальний розбір міграції інфраструктури можна знайти у статті як переїхати з Heroku на VPS у 2026: покроковий гід.
Зняття обмежень Heroku
Heroku накладає ліміти не лише на обсяг даних, але й на кількість одночасних підключень. У managed-конфігурації на VPS ви можете самостійно налаштувати pgBouncer або Odyssey, що дозволить обробляти тисячі з'єднань без деградації продуктивності. Крім того, ви не обмежені у виборі версії PostgreSQL — ви можете використовувати bleeding-edge можливості Postgres 16 або 17, не чекаючи, поки Heroku оновить свої образи.
Вибір конфігурації: heroku pg migration та системні вимоги
Перед тим як почати postgres migration vps, необхідно правильно підібрати параметри сервера. База даних — це найбільш ресурсомісткий компонент системи. Помилка у виборі дискової підсистеми або обсягу оперативної пам'яті призведе до того, що запити, які на Heroku виконувалися за мілісекунди, почнуть "гальмувати".
Рекомендовані характеристики VPS
- CPU: Мінімум 2 ядра для невеликих баз, 4-8 ядер для навантажених систем. PostgreSQL активно використовує багатопотоковість для фонових процесів (Background Writer, Checkpointer).
- RAM: Обсяг пам'яті має бути достатнім для того, щоб
shared_buffersвміщували "гарячі" дані (зазвичай 25% від загального обсягу RAM), плюс запас для операційної системи та кешу файлової системи. - Disk: Тільки NVMe. PostgreSQL чутливий до затримок запису WAL (Write Ahead Log). Швидкість лінійного запису має бути не нижчою за 500 МБ/с.
| Параметр | Heroku Standard 0 ($50/міс) | VPS Managed-PG ($25/міс) | Перевага VPS |
|---|---|---|---|
| RAM | 4 GB | 8-12 GB | У 2-3 рази більше |
| CPU | Shared (обмежено) | 4 Dedicated vCPU | Передбачуване навантаження |
| Disk | 256 GB (Standard) | 160 GB NVMe | Низький latency (IOPS) |
| Connections | 120 | Unlimited (via pgBouncer) | Масштабованість |
При виборі сервера для баз даних з інтенсивним читанням/записом варто враховувати архітектуру процесора. Якщо ви плануєте використовувати базу для аналітики або ML-завдань, ознайомтеся з матеріалом Bare-metal vs VPS для ML inference на CPU, щоб зрозуміти різницю в продуктивності обчислювальних ядер.
Шукаєте надійний сервер для ваших проєктів?
VPS від $10/міс та виділені сервери від $9/міс з NVMe, DDoS-захистом та підтримкою 24/7.
Дивитися пропозиції →Основні методи postgres migration vps: pg_dump vs pg_basebackup
Існує три основні способи перенести дані. Вибір залежить від розміру бази та допустимого часу простою додатка.
Метод 1: pg_dump та pg_restore (Логічний бекап)
Це стандартний і найпростіший спосіб. Він створює SQL-скрипт або архів з даними, який потім розгортається на новому сервері. Плюси: Простота, можливість зміни версії Postgres (наприклад, з 13 на 16). Мінуси: Вимагає зупинки запису в базу на час експорту, щоб дані були консистентними.
Метод 2: Логічна реплікація
Дозволяє передавати зміни з Heroku в реальному часі. Ви налаштовуєте VPS як передплатника (Subscriber), а Heroku як видавця (Publisher). Плюси: Мінімальний downtime (кілька секунд на перемикання DNS). Мінуси: Вимагає налаштування прав доступу, які на Heroku можуть бути обмежені на молодших тарифах.
Метод 3: pg_basebackup та фізична реплікація
Цей метод рідко застосовний для Heroku, оскільки сервіс не дає прямого доступу до файлової системи та протоколу потокової реплікації на рівні суперкористувача. Тому в контексті managed pg vps ми фокусуємося на логічних методах перенесення.
Need a dedicated server?
Compare prices from top providers. Configure and order in minutes.
Покрокова інструкція: як реалізувати managed pg vps через pg_dump
Для успішної міграції вам знадобиться встановлений heroku cli на локальній машині або проміжному сервері та доступ до нового VPS через SSH.
Крок 1: Підготовка цільового сервера
Встановіть PostgreSQL потрібної версії на ваш VPS. Ми рекомендуємо використовувати офіційні репозиторії PGDG (PostgreSQL Global Development Group) для отримання останніх патчів безпеки.
sudo apt update
sudo apt install -y postgresql-16 postgresql-client-16
Відредагуйте /etc/postgresql/16/main/postgresql.conf, щоб дозволити зовнішні підключення, якщо це необхідно, і налаштувати ліміти пам'яті:
listen_addresses = '*'
shared_buffers = 2GB # Для сервера з 8GB RAM
work_mem = 64MB
maintenance_work_mem = 512MB
Крок 2: Створення дампу з Heroku
Використовуйте прапор -Fc (custom format), який дозволяє виконувати відновлення у кілька потоків, що значно прискорює heroku pg migration.
# Отримуємо URL бази даних
heroku config:get DATABASE_URL -a your-app-name
# Створюємо дамп
pg_dump -Fc --no-acl --no-owner -d "postgres://user:pass@host:port/dbname" > heroku_db.dump
Крок 3: Відновлення даних на VPS
Перенесіть файл дампу на VPS і виконайте відновлення. Використання прапора -j (кількість ядер) прискорить процес створення індексів.
# Створюємо базу на новому сервері
sudo -u postgres createdb my_new_db
# Відновлюємо дані
pg_restore -v -d my_new_db -j 4 heroku_db.dump
Якщо ви раніше використовували інші хмарні платформи, процес буде схожим. Наприклад, вивчіть як переїхати з Render.com на VPS у 2026, щоб порівняти підходи до міграції баз даних та додатків.
Налаштування відмовостійкості за допомогою pgBackRest
На Heroku бекапи працюють "з коробки". При переїзді на managed pg vps відповідальність за збереження даних лягає на вас. Інструмент pgBackRest є золотим стандартом для управління резервним копіюванням PostgreSQL.
Переваги pgBackRest
- Паралельне копіювання та стиснення даних.
- Інкрементальні та диференціальні бекапи (економлять місце).
- Підтримка S3-сумісних сховищ для off-site бекапів.
- Point-in-Time Recovery (PITR) — можливість відкотити базу на будь-яку секунду в минулому.
Приклад конфігурації pgBackRest
Файл /etc/pgbackrest.conf на вашому VPS має виглядати приблизно так:
[main]
pg1-path=/var/lib/postgresql/16/main
[global]
repo1-path=/var/lib/pgbackrest
repo1-retention-full=2
process-max=4
log-level-file=info
[global:archive-push]
compress-level=3
Для налаштування архівації WAL-логів додайте в postgresql.conf:
archive_mode = on
archive_command = 'pgbackrest --stanza=main archive-push %p'
Оптимізація продуктивності після міграції
Після того як migrate heroku postgres завершено, важливо переконатися, що база працює оптимально. Heroku автоматично налаштовує багато параметрів, на VPS вам доведеться зробити це вручну.
Налаштування індексів та статистики
Одразу після імпорту даних виконайте команду ANALYZE. Це оновить статистику планувальника запитів, без якої Postgres може обирати неефективні плани виконання (наприклад, Sequential Scan замість Index Scan).
sudo -u postgres psql -d my_new_db -c "ANALYZE VERBOSE;"
Моніторинг та логування
Встановіть розширення pg_stat_statements, щоб відстежувати найповільніші запити. Це "must-have" для будь-якого managed pg vps. Додайте в конфігурацію:
shared_preload_libraries = 'pg_stat_statements'
pg_stat_statements.track = all
Якщо ваш додаток використовує архітектуру Serverless або Edge, як у випадку з Cloudflare, міграція бази на VPS може вимагати налаштування проксіювання. Перегляньте посібник як переїхати з Cloudflare Workers на VPS для розуміння мережевих нюансів.
Need a dedicated server?
Compare prices from top providers. Configure and order in minutes.
Порівняння вартості та характеристик
Розглянемо реальні цифри. Heroku стягує плату за зручність, але при зростанні бази даних (понад 50 ГБ) ціна стає непропорційною наданим ресурсам.
| Характеристика | Heroku Postgres Premium-2 | Valebyte VPS High-Perf | Локальний сервер (Bare Metal) |
|---|---|---|---|
| Щомісячний платіж | $350 | $45 | $120 |
| Оперативна пам'ять | 8 GB | 16 GB | 64 GB |
| Тип диска | EBS (Network storage) | NVMe (Local) | NVMe RAID-1 |
| Downtime при міграції | 0 (всередині Heroku) | ~5-10 хв (pg_dump) | ~5-10 хв |
Використання VPS дозволяє не лише економити, а й масштабуватися вертикально в один клік. На відміну від Heroku, де перехід на новий тариф може зайняти значний час через необхідність копіювання даних між інстансами, на сучасному хмарному хостингу розширення диска або додавання RAM відбувається практично миттєво.
Безпека та мережевий доступ
Однією з переваг Heroku є автоматична ізоляція бази. При налаштуванні managed pg vps вам необхідно самостійно подбати про безпеку.
- Firewall (UFW/iptables): Закрийте порт 5432 для всіх IP, крім вашого сервера додатків.
- SSL/TLS: Обов'язково налаштуйте сертифікати для шифрування трафіку між додатком і базою.
- Рольова модель: Не використовуйте користувача
postgresдля підключення з додатка. Створіть окрему роль з обмеженими правами. - Fail2Ban: Встановіть захист від брутфорсу на SSH і, за необхідності, на моніторинг портів БД.
# Приклад створення користувача з обмеженими правами
CREATE USER app_user WITH PASSWORD 'strong_password';
GRANT CONNECT ON DATABASE my_new_db TO app_user;
GRANT USAGE ON SCHEMA public TO app_user;
GRANT SELECT, INSERT, UPDATE, DELETE ON ALL TABLES IN SCHEMA public TO app_user;
Висновки
Перехід з Heroku Postgres на VPS — це найефективніший спосіб масштабування бази даних при одночасному зниженні витрат на 70-80%. Для стабільної роботи рекомендуємо використовувати зв'язку PostgreSQL 16+, NVMe-диски та інструмент pgBackRest для автоматизації резервного копіювання.
Готові вибрати сервер?
VPS та виділені сервери у 72+ країнах з миттєвою активацією та повним root-доступом.
Почати зараз →